Oxide System/alerts API

Alerts deliver notifications for events that occur on the Oxide rack

Operations 16

GET /v1/alert-classes List alert classes #
GET /v1/alert-receivers List alert receivers #
GET /v1/alert-receivers/{receiver} Fetch alert receiver #
DELETE /v1/alert-receivers/{receiver} Delete alert receiver #
GET /v1/alert-receivers/{receiver}/deliveries List delivery attempts to alert receiver #
POST /v1/alert-receivers/{receiver}/probe Send liveness probe to alert receiver #
POST /v1/alert-receivers/{receiver}/subscriptions Add alert receiver subscription #
DELETE /v1/alert-receivers/{receiver}/subscriptions/{subscription} Remove alert receiver subscription #
GET /v1/alerts List alerts #
GET /v1/alerts/{alert_id} Fetch alert #
POST /v1/alerts/{alert_id}/resend Request re-delivery of alert #
POST /v1/webhook-receivers Create webhook receiver #
PUT /v1/webhook-receivers/{receiver} Update webhook receiver #
GET /v1/webhook-secrets List webhook receiver secret IDs #
POST /v1/webhook-secrets Add secret to webhook receiver #
DELETE /v1/webhook-secrets/{secret_id} Remove secret from webhook receiver #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/oxide-computer-system-alerts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

oxide-computer-system-alerts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Oxide Region System/alerts API
  description: API for interacting with the Oxide control plane
  contact:
    url: https://oxide.computer
    email: api@oxide.computer
  version: 2026081901.0.0
tags:
- name: system/alerts
  description: Alerts deliver notifications for events that occur on the Oxide rack
  externalDocs:
    url: http://docs.oxide.computer/api/alerts
paths:
  /v1/alert-classes:
    get:
      tags:
      - system/alerts
      summary: List alert classes
      operationId: alert_class_list
      parameters:
      - in: query
        name: limit
        description: Maximum number of items returned by a single call
        schema:
          type:
          - integer
          - 'null'
          format: uint32
          minimum: 1
      - in: query
        name: page_token
        description: Token returned by previous call to retrieve the subsequent page
        schema:
          type:
          - string
          - 'null'
      - in: query
        name: filter
        description: 'An optional glob pattern for filtering alert class names.


          If provided, only alert classes which match this glob pattern will be included in the response.'
        schema:
          $ref: '#/components/schemas/AlertSubscription'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertClassResultsPage'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
      x-dropshot-pagination:
        required: []
  /v1/alert-receivers:
    get:
      tags:
      - system/alerts
      summary: List alert receivers
      operationId: alert_receiver_list
      parameters:
      - in: query
        name: limit
        description: Maximum number of items returned by a single call
        schema:
          type:
          - integer
          - 'null'
          format: uint32
          minimum: 1
      - in: query
        name: page_token
        description: Token returned by previous call to retrieve the subsequent page
        schema:
          type:
          - string
          - 'null'
      - in: query
        name: sort_by
        schema:
          $ref: '#/components/schemas/NameOrIdSortMode'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertReceiverResultsPage'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
      x-dropshot-pagination:
        required: []
  /v1/alert-receivers/{receiver}:
    get:
      tags:
      - system/alerts
      summary: Fetch alert receiver
      operationId: alert_receiver_view
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertReceiver'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
    delete:
      tags:
      - system/alerts
      summary: Delete alert receiver
      operationId: alert_receiver_delete
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      responses:
        '204':
          description: successful deletion
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/alert-receivers/{receiver}/deliveries:
    get:
      tags:
      - system/alerts
      summary: List delivery attempts to alert receiver
      description: Optional query parameters to this endpoint may be used to filter deliveries by state. If none of the `failed`, `pending` or `delivered` query parameters are present, all deliveries are returned. If one or more of these parameters are provided, only those which are set to "true" are included in the response.
      operationId: alert_delivery_list
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      - in: query
        name: delivered
        description: 'If true, include deliveries which have succeeded.


          If any of the "pending", "failed", or "delivered" query parameters are set to true, only deliveries matching those state(s) will be included in the response. If NO state filter parameters are set, then all deliveries are included.'
        schema:
          type:
          - boolean
          - 'null'
      - in: query
        name: failed
        description: 'If true, include deliveries which have failed permanently.


          If any of the "pending", "failed", or "delivered" query parameters are set to true, only deliveries matching those state(s) will be included in the response. If NO state filter parameters are set, then all deliveries are included.


          A delivery fails permanently when the retry limit of three total attempts is reached without a successful delivery.'
        schema:
          type:
          - boolean
          - 'null'
      - in: query
        name: pending
        description: 'If true, include deliveries which are currently in progress.


          If any of the "pending", "failed", or "delivered" query parameters are set to true, only deliveries matching those state(s) will be included in the response. If NO state filter parameters are set, then all deliveries are included.


          A delivery is considered "pending" if it has not yet been sent at all, or if a delivery attempt has failed but the delivery has retries remaining.'
        schema:
          type:
          - boolean
          - 'null'
      - in: query
        name: limit
        description: Maximum number of items returned by a single call
        schema:
          type:
          - integer
          - 'null'
          format: uint32
          minimum: 1
      - in: query
        name: page_token
        description: Token returned by previous call to retrieve the subsequent page
        schema:
          type:
          - string
          - 'null'
      - in: query
        name: sort_by
        schema:
          $ref: '#/components/schemas/TimeAndIdSortMode'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertDeliveryResultsPage'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
      x-dropshot-pagination:
        required: []
  /v1/alert-receivers/{receiver}/probe:
    post:
      tags:
      - system/alerts
      summary: Send liveness probe to alert receiver
      description: 'This endpoint synchronously sends a liveness probe to the selected alert receiver. The response message describes the outcome of the probe: either the successful response (as appropriate), or indication of why the probe failed.


        The result of the probe is represented as an `AlertDelivery` model. Details relating to the status of the probe depend on the alert delivery mechanism, and are included in the `AlertDeliveryAttempts` model. For example, webhook receiver liveness probes include the HTTP status code returned by the receiver endpoint.


        Note that the response status is `200 OK` as long as a probe request was able to be sent to the receiver endpoint. If an HTTP-based receiver, such as a webhook, responds to the another status code, including an error, this will be indicated by the response body, *not* the status of the response.


        The `resend` query parameter can be used to request re-delivery of failed events if the liveness probe succeeds. If it is set to true and the liveness probe succeeds, any alerts for which delivery to this receiver has failed will be queued for re-delivery.'
      operationId: alert_receiver_probe
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      - in: query
        name: resend
        description: If true, resend all events that have not been delivered successfully if the probe request succeeds.
        schema:
          type: boolean
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertProbeResult'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/alert-receivers/{receiver}/subscriptions:
    post:
      tags:
      - system/alerts
      summary: Add alert receiver subscription
      operationId: alert_receiver_subscription_add
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlertSubscriptionCreate'
        required: true
      responses:
        '201':
          description: successful creation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertSubscriptionCreated'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/alert-receivers/{receiver}/subscriptions/{subscription}:
    delete:
      tags:
      - system/alerts
      summary: Remove alert receiver subscription
      operationId: alert_receiver_subscription_remove
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      - in: path
        name: subscription
        description: The event class subscription itself.
        required: true
        schema:
          $ref: '#/components/schemas/AlertSubscription'
      responses:
        '204':
          description: successful deletion
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/alerts:
    get:
      tags:
      - system/alerts
      summary: List alerts
      description: Alerts may be filtered by alert class or alert class glob and by an inclusive creation time range.
      operationId: alert_list
      parameters:
      - in: query
        name: alert_class
        description: 'Optional alert class or glob pattern used to filter alerts.


          If this is included, only alerts with the specified class or matching the glob pattern (as appropriate) will be returned. Otherwise, alerts of all classes will be returned.


          See the guide-level documentation on alerts for details on alert classes and alert class glob patterns.'
        schema:
          $ref: '#/components/schemas/AlertSubscription'
      - in: query
        name: end_time
        description: 'Inclusive upper bound on the alert creation time


          If this is included, only alerts created at or before this time will be returned.'
        schema:
          type:
          - string
          - 'null'
          format: date-time
      - in: query
        name: limit
        description: Maximum number of items returned by a single call
        schema:
          type:
          - integer
          - 'null'
          format: uint32
          minimum: 1
      - in: query
        name: page_token
        description: Token returned by previous call to retrieve the subsequent page
        schema:
          type:
          - string
          - 'null'
      - in: query
        name: sort_by
        schema:
          $ref: '#/components/schemas/TimeAndIdSortMode'
      - in: query
        name: start_time
        description: 'Inclusive lower bound on the alert creation time.


          If this is included, only alerts created at or after this time will be returned.'
        schema:
          type:
          - string
          - 'null'
          format: date-time
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertResultsPage'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
      x-dropshot-pagination:
        required: []
  /v1/alerts/{alert_id}:
    get:
      tags:
      - system/alerts
      summary: Fetch alert
      operationId: alert_view
      parameters:
      - in: path
        name: alert_id
        description: UUID of the alert
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alert'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/alerts/{alert_id}/resend:
    post:
      tags:
      - system/alerts
      summary: Request re-delivery of alert
      operationId: alert_delivery_resend
      parameters:
      - in: path
        name: alert_id
        description: UUID of the alert
        required: true
        schema:
          type: string
          format: uuid
      - in: query
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      responses:
        '201':
          description: successful creation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertDeliveryId'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/webhook-receivers:
    post:
      tags:
      - system/alerts
      summary: Create webhook receiver
      operationId: webhook_receiver_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookCreate'
        required: true
      responses:
        '201':
          description: successful creation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookReceiver'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/webhook-receivers/{receiver}:
    put:
      tags:
      - system/alerts
      summary: Update webhook receiver
      description: Note that receiver secrets are NOT added or removed using this endpoint. Instead, use the `/v1/webhooks/{secrets}/?receiver={receiver}` endpoint to add and remove secrets.
      operationId: webhook_receiver_update
      parameters:
      - in: path
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookReceiverUpdate'
        required: true
      responses:
        '204':
          description: resource updated
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/webhook-secrets:
    get:
      tags:
      - system/alerts
      summary: List webhook receiver secret IDs
      operationId: webhook_secrets_list
      parameters:
      - in: query
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSecrets'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
    post:
      tags:
      - system/alerts
      summary: Add secret to webhook receiver
      operationId: webhook_secrets_add
      parameters:
      - in: query
        name: receiver
        description: The name or ID of the webhook receiver.
        required: true
        schema:
          $ref: '#/components/schemas/NameOrId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookSecretCreate'
        required: true
      responses:
        '201':
          description: successful creation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSecret'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/webhook-secrets/{secret_id}:
    delete:
      tags:
      - system/alerts
      summary: Remove secret from webhook receiver
      operationId: webhook_secrets_delete
      parameters:
      - in: path
        name: secret_id
        description: ID of the secret.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: successful deletion
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
components:
  schemas:
    AlertSubscriptionCreated:
      type: object
      properties:
        subscription:
          description: The new subscription added to the receiver.
          allOf:
          - $ref: '#/components/schemas/AlertSubscription'
      required:
      - subscription
    AlertReceiverResultsPage:
      description: A single page of results
      type: object
      properties:
        items:
          description: list of items on this page of results
          type: array
          items:
            $ref: '#/components/schemas/AlertReceiver'
        next_page:
          description: token used to fetch the next page of results (if any)
          type:
          - string
          - 'null'
      required:
      - items
    AlertDeliveryResultsPage:
      description: A single page of results
      type: object
      properties:
        items:
          description: list of items on this page of results
          type: array
          items:
            $ref: '#/components/schemas/AlertDelivery'
        next_page:
          description: token used to fetch the next page of results (if any)
          type:
          - string
          - 'null'
      required:
      - items
    WebhookDeliveryAttemptResult:
      oneOf:
      - description: The webhook event has been delivered successfully.
        type: string
        enum:
        - succeeded
      - description: A webhook request was sent to the endpoint, and it returned a HTTP error status code indicating an error.
        type: string
        enum:
        - failed_http_error
      - description: The webhook request could not be sent to the receiver endpoint.
        type: string
        enum:
        - failed_unreachable
      - description: A connection to the receiver endpoint was successfully established, but no response was received within the delivery timeout.
        type: string
        enum:
        - failed_timeout
    AlertSubscriptionCreate:
      type: object
      properties:
        subscription:
          description: The event class pattern to subscribe to.
          allOf:
          - $ref: '#/components/schemas/AlertSubscription'
      required:
      - subscription
    NameOrIdSortMode:
      description: Supported set of sort modes for scanning by name or id
      oneOf:
      - description: Sort in increasing order of "name"
        type: string
        enum:
        - name_ascending
      - description: Sort in decreasing order of "name"
        type: string
        enum:
        - name_descending
      - description: Sort in increasing order of "id"
        type: string
        enum:
        - id_ascending
    AlertReceiverKind:
      description: The possible alert delivery mechanisms for an alert receiver.
      oneOf:
      - description: Webhook-specific alert receiver configuration.
        type: object
        properties:
          endpoint:
            description: The URL that webhook notification requests are sent to.
            type: string
            format: uri
          kind:
            type: string
            enum:
            - webhook
          secrets:
            description: A list containing the IDs of the secret keys used to sign payloads sent to this receiver.
            type: array
            items:
              $ref: '#/components/schemas/WebhookSecret'
        required:
        - endpoint
        - kind
        - secrets
    WebhookSecrets:
      description: A list of the IDs of secrets associated with a webhook receiver.
      type: object
      properties:
        secrets:
          type: array
          items:
            $ref: '#/components/schemas/WebhookSecret'
      required:
      - secrets
    WebhookSecret:
      description: 'A view of a shared secret key assigned to a webhook receiver.


        Once a secret is created, the value of the secret is not available in the API, as it must remain secret. Instead, secrets are referenced by their unique IDs assigned when they are created.'
      type: object
      properties:
        id:
          description: The public unique ID of the secret.
          type: string
          format: uuid
        time_created:
          description: The UTC timestamp at which this secret was created.
          type: string
          format: date-time
      required:
      - id
      - time_created
    AlertDelivery:
      description: A delivery of a webhook event.
      type: object
      properties:
        alert_class:
          description: The event class.
          type: string
        alert_id:
          description: The UUID of the event.
          type: string
          format: uuid
        attempts:
          description: Individual attempts to deliver this webhook event, and their outcomes.
          allOf:
          - $ref: '#/components/schemas/AlertDeliveryAttempts'
        id:
          description: The UUID of this delivery attempt.
          type: string
          format: uuid
        receiver_id:
          description: The UUID of the alert receiver that this event was delivered to.
          type: string
          format: uuid
        state:
          description: The state of this delivery.
          allOf:
          - $ref: '#/components/schemas/AlertDeliveryState'
        time_started:
          description: The time at which this delivery began (i.e. the event was dispatched to the receiver).
          type: string
          format: date-time
        trigger:
          description: Why this delivery was performed.
          allOf:
          - $ref: '#/components/schemas/AlertDeliveryTrigger'
      required:
      - alert_class
      - alert_id
      - attempts
      - id
      - receiver_id
      - state
      - time_started
      - trigger
    AlertClassResultsPage:
      description: A single page of results
      type: object
      properties:
        items:
          description: list of items on this page of results
          type: array
          items:
            $ref: '#/components/schemas/AlertClass'
        next_page:
          description: token used to fetch the next page of results (if any)
          type:
          - string
          - 'null'
      required:
      - items
    AlertResultsPage:
      description: A single page of results
      type: object
      properties:
        items:
          description: list of items on this page of results
          type: array
          items:
            $ref: '#/components/schemas/Alert'
        next_page:
          description: token used to fetch the next page of results (if any)
          type:
          - string
          - 'null'
      required:
      - items
    AlertDeliveryAttempts:
      description: 'A list of attempts to deliver an alert to a receiver.


        The type of the delivery attempt model depends on the receiver type, as it may contain information specific to that delivery mechanism. For example, webhook delivery attempts contain the HTTP status code of the webhook request.'
      oneOf:
      - description: A list of attempts to deliver an alert to a webhook receiver.
        type: object
        properties:
          webhook:
            type: array
            items:
              $ref: '#/components/schemas/WebhookDeliveryAttempt'
        required:
        - webhook
        additionalProperties: false
    WebhookCreate:
      description: Create-time identity-related parameters
      type: object
      properties:
        description:
          type: string
        endpoint:
          description: The URL that webhook notification requests should be sent to
          type: string
          format: uri
        name:
          $ref: '#/components/schemas/Name'
        secrets:
          description: A non-empty list of secret keys used to sign webhook payloads.
          type: array
          items:
            type: string
        subscriptions:
          description: 'A list of webhook event class subscriptions.


            If this list is empty or is not included in the request body, the webhook will not be subscribed to any events.'
          default: []
          type: array
          items:
            $ref: '#/components/schemas/AlertSubscription'
      required:
      - description
      - endpoint
      - name
      - secrets
    Error:
      description: Error information from a response.
      type: object
      properties:
        error_code:
          type: string
        message:
          type: string
        request_id:
          type: string
      required:
      - message
      - request_id
    AlertDeliveryState:
      description: The state of a webhook delivery attempt.
      oneOf:
      - description: 'The webhook event has not yet been delivered successfully.


          Either no delivery attempts have yet been performed, or the delivery has failed at least once but has retries remaining.'
        type: string
        enum:
        - pending
      - description: The webhook event has been delivered successfully.
        type: string
        enum:
        - delivered
      - description: The webhook delivery attempt has failed permanently and will not be retried again.
        type: string
        enum:
        - failed
    AlertDeliveryTrigger:
      description: The reason an alert was delivered
      oneOf:
      - description: Delivery was triggered by the alert itself.
        type: string
        enum:
        - alert
      - description: Delivery was triggered by a request to resend the alert.
        type: string
        enum:
        - resend
      - description: This delivery is a liveness probe.
        type: string
        enum:
        - probe
    WebhookDeliveryResponse:
      description: The response received from a webhook receiver endpoint.
      type: object
      properties:
        duration_ms:
          description: The response time of the webhook endpoint, in milliseconds.
          type: integer
          format: uint
          minimum: 0
        status:
          description: The HTTP status code returned from the webhook endpoint.
          type: integer
          format: uint16
          minimum: 0
      required:
      - duration_ms
      - status
    WebhookSecretCreate:
      type: object
      properties:
        secret:
          description: The value of the shared secret key.
          type: string
      required:
      - secret
    NameOrId:
      oneOf:
      - title: id
        allOf:
        - type: string
          format: uuid
      - title: name
        allOf:
        - $ref: '#/components/schemas/Name'
    WebhookReceiverUpdate:
      description: Parameters to update a webhook configuration.
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
        endpoint:
          description: The URL that webhook notification requests should be sent to
          type:
          - string
          - 'null'
          format: uri
        name:
          allOf:
          - $ref: '#/components/schemas/Name'
    AlertDeliveryId:
      type: object
      properties:
        delivery_id:
          type: string
          format: uuid
      required:
      - delivery_id
    WebhookReceiver:
      description: The configuration for a webhook alert receiver.
      type: object
      properties:
        description:
          description: Human-readable free-form text about a resource
          type: string
        endpoint:
          description: The URL that webhook notification requests are sent to.
          type: string
          format: uri
        id:
          description: Unique, immutable, system-controlled identifier for each resource
          type: string
          format: uuid
        name:
          description: Unique, mutable, user-controlled identifier for each resource
          allOf:
          - $ref: '#/components/schemas/Name'
        secrets:
          description: A list containing the IDs of the secret keys used to sign payloads sent to this receiver.
          type: array
          items:
            $ref: '#/components/schemas/WebhookSecret'
        subscriptions:
          description: The list of alert classes to which this receiver is subscribed.
          type: array
          items:
            $ref: '#/components/schemas/AlertSubscription'
        time_created:
          description: Timestamp when this resource was created
          type: string
          format: date-time
        time_modified:
          description: Timestamp when this resource was last modified
          type: string
          format: date-time
      required:
      - description
      - endpoint
      - id
      - name
      - secrets
      - subscriptions
      - time_created
      - time_modified
    Name:
      title: A name unique within the parent collection
      description: Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long.
      type: string
      pattern: ^(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)^[a-z]([a-zA-Z0-9-]*[a-zA-Z0-9]+)?$
      minLength: 1
      maxLength: 63
    AlertSubscription:
      title: A webhook event class subscription
      description: A webhook event class subscription matches either a single event class exactly, or a glob pattern including wildcards that may match multiple event classes
      type: string
      pattern: ^([a-zA-Z0-9_]+|\*|\*\*)(\.([a-zA-Z0-9_]+|\*|\*\*))*$
    AlertClass:
      description: An alert class.
      type: object
      properties:
        description:
          description: A description of what this alert class represents.
          type: string
        name:
          description: The name of the alert class.
          type: string
      required:
      - description
      - name
    WebhookDeliveryAttempt:
      description: 'An individual delivery attempt for a webhook event.


        This represents a single HTTP request that was sent to the receiver, and its outcome.'
      type: object
      properties:
        attempt:
          description: The attempt number.
          type: integer
          format: uint
          minimum: 0
        response:
          allOf:
          - $ref: '#/components/schemas/WebhookDeliveryResponse'
        

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oxide-computer/refs/heads/main/openapi/oxide-computer-system-alerts-api-openapi.yml