Skedulo Webhooks API

The Webhooks API from Skedulo — 6 operation(s) for webhooks.

OpenAPI Specification

skedulo-webhooks-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Authentication Admin Webhooks API
  description: Skedulo Authentication API
  version: 1.0.0
servers:
- url: https://api.skedulo.com/auth
- url: https://api.uk.skedulo.com/auth
- url: https://api.ca.skedulo.com/auth
- url: https://api.au.skedulo.com/auth
tags:
- name: Webhooks
paths:
  /webhooks:
    get:
      security:
      - Authorization: []
      summary: Get webhooks
      description: Get all existing webhooks
      operationId: webhooksFetch
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                required:
                - result
                properties:
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/Webhook'
        '403':
          description: If the user does not have the required permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Webhooks
    post:
      security:
      - Authorization: []
      summary: Create a new webhook
      description: Establish a new webhook.
      operationId: webhooksCreate
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                required:
                - result
                properties:
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/Webhook'
        '403':
          description: If the user does not have the required permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewWebhook'
        required: true
      tags:
      - Webhooks
  /webhooks/{id}:
    delete:
      security:
      - Authorization: []
      summary: Delete a webhook
      description: Delete a webhook using the webhook ID.
      operationId: webhooksDelete
      parameters:
      - name: id
        in: path
        description: Identifier of the webhook to delete.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: success
        '403':
          description: If the user does not have the required permissions.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Webhooks
  /webhooks/schema:
    get:
      security:
      - Authorization: []
      summary: Webhook GraphQL schema
      description: Retrieve the GraphQL schema that is used for webhooks with type `graphql`.
      operationId: webhookGraphQLSchema
      responses:
        '200':
          description: Schema was returned.
        default:
          description: Error
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Webhooks
  /webhooks/graphql:
    post:
      security:
      - Authorization: []
      summary: Webhook GraphQL introspection
      description: Perform an introspection query against the GraphQL query that is used for webhooks with type `graphql`.
      operationId: webhookGraphQLQuery
      responses:
        '200':
          description: Introspection query was returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResult'
        '400':
          description: Invalid query
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResult'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Webhooks
  /webhooks/deferred/schema:
    get:
      security:
      - Authorization: []
      summary: Webhook Deferred GraphQL schema
      description: Retrieve the GraphQL schema that is used for webhooks with type `graphql_deferred`.
      operationId: webhookDeferredGraphQLSchema
      responses:
        '200':
          description: Schema was returned.
        default:
          description: Error
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Webhooks
  /webhooks/deferred/graphql:
    post:
      security:
      - Authorization: []
      summary: Webhook Deferred GraphQL introspection
      description: Perform an introspection query against the GraphQL query that is used for webhooks with type `graphql_deferred`.
      operationId: webhookDeferredGraphQLQuery
      responses:
        '200':
          description: Introspection query was returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResult'
        '400':
          description: Invalid query
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResult'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Webhooks
components:
  schemas:
    WebhookBase:
      type: object
      required:
      - id
      - type
      - name
      - url
      - headers
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        url:
          type: string
          format: uri
          maxLength: 2048
        headers:
          type: object
          additionalProperties: true
    NewWebhook:
      oneOf:
      - $ref: '#/components/schemas/WebhookGraphQL'
      - $ref: '#/components/schemas/WebhookGraphQLDeferred'
      - $ref: '#/components/schemas/WebhookScheduled'
      - $ref: '#/components/schemas/WebhookInboundSMS'
      discriminator:
        propertyName: type
        mapping:
          graphql: '#/components/schemas/WebhookGraphQL'
          graphql_deferred: '#/components/schemas/WebhookGraphQLDeferred'
          scheduled: '#/components/schemas/WebhookScheduled'
          inbound_sms: '#/components/schemas/WebhookInboundSMS'
    Webhook:
      oneOf:
      - $ref: '#/components/schemas/WebhookGraphQL'
      - $ref: '#/components/schemas/WebhookGraphQLDeferred'
      - $ref: '#/components/schemas/WebhookScheduled'
      - $ref: '#/components/schemas/WebhookInboundSMS'
      discriminator:
        propertyName: type
        mapping:
          graphql: '#/components/schemas/WebhookGraphQL'
          graphql_deferred: '#/components/schemas/WebhookGraphQLDeferred'
          scheduled: '#/components/schemas/WebhookScheduled'
          inbound_sms: '#/components/schemas/WebhookInboundSMS'
    GraphQLResult:
      type: object
      properties:
        data:
          type: object
          description: Query result
          additionalProperties: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GraphQLError'
    WebhookGraphQL:
      allOf:
      - $ref: '#/components/schemas/WebhookBase'
      required:
      - type
      - query
      properties:
        type:
          type: string
          enum:
          - graphql
        query:
          type: string
    WebhookGraphQLDeferredOffset:
      oneOf:
      - type: integer
        format: int64
      - $ref: '#/components/schemas/WebhookGraphQLDeferredOffsetField'
    WebhookGraphQLDeferred:
      allOf:
      - $ref: '#/components/schemas/WebhookBase'
      required:
      - type
      - name
      - offset
      - query
      properties:
        type:
          type: string
          enum:
          - graphql_deferred
        filter:
          type: string
        name:
          type: string
        offset:
          $ref: '#/components/schemas/WebhookGraphQLDeferredOffset'
        query:
          type: string
    WebhookScheduled:
      allOf:
      - $ref: '#/components/schemas/WebhookBase'
      required:
      - type
      - cron
      properties:
        type:
          type: string
          enum:
          - scheduled
        cron:
          type: string
    GraphQLError:
      type: object
      description: errors
      properties:
        message:
          type: string
          description: Error message.
        location:
          type: object
          properties:
            line:
              type: string
              description: Line Number
            column:
              type: string
              description: Column number
    WebhookGraphQLDeferredOffsetField:
      required:
      - fieldName
      properties:
        fieldName:
          type: string
        default:
          type: integer
          format: int64
    Error:
      type: object
      required:
      - errorType
      - message
      properties:
        errorType:
          type: string
        message:
          type: string
        errorId:
          type: string
    WebhookInboundSMS:
      allOf:
      - $ref: '#/components/schemas/WebhookBase'
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - inbound_sms
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      bearerFormat: JWT