Stack Moxie REST API

The hosted Stack Moxie REST API. Create, read, update and delete test Scenarios; run them synchronously or asynchronously and read their outcomes and logs; schedule recurring runs; manage Connections (stored credentials for Salesforce, Marketo, Pardot, Eloqua, Dynamics and HubSpot via Cogs); read the Cog registry; and administer Organizations, members and notification groups. OpenAPI 3.0.1, 25 paths, 43 operations, 17 schemas. All operations are authenticated with an account-issued JWT bearer token and scoped to an Organization UUID in the path.

OpenAPI Specification

stack-moxie-rest-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: 'Stack Moxie is a QA Automation platform for Marketing, Sales, and Enterprise

    Business technologists.


    This REST API can be used by developers like you to further automate, extend,

    and integrate quality into the workflows that matter most to you.


    Don''t have an account? [Sign up here](https://app.stackmoxie.com).


    # Authentication


    The Stack Moxie REST API uses HTTP Bearer Authentication, in the form of a

    JWT token, across all endpoints for authentication. You can manage your API

    tokens on your account settings page.


    <SecurityDefinitions />

    '
  title: Stack Moxie REST API
  x-logo:
    url: https://app.stackmoxie.com/api/logo.png
    altText": Stack Moxie Logo
servers:
- url: https://app.stackmoxie.com/api/
tags:
- name: 'How To: Integrate'
  description: 'Use these calls to connect an Organization with Marketing/Sales technologies supported
    by Stack Moxie.

    '
- name: 'How To: Test'
  description: 'Use these calls to define test Scenarios, Run them, and retrieve their results.

    '
- name: 'How To: Automate'
  description: 'Use these calls to Schedule Scenario runs.

    '
- name: 'How To: Organize'
  description: 'Use these calls to organize your test Scenarios into Folders.

    '
- name: 'How To: Administer'
  description: 'Use these calls to provision Organizations (e.g. for your own clients/customers), and
    automatically grant them (or your own team members) access.

    '
paths:
  /v1/organizations:
    post:
      summary: Create an Organization
      description: 'Creates an Organization under which Credentials, Scenarios, Schedules, and Runs can
        be created. The user making the call becomes the admin member of this organization.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Organization'
      tags:
      - 'How To: Administer'
      responses:
        '200':
          description: Returns the Organization just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: 'Returned if the currently authenticated user has exceeded the maximum number of
            trial organizations.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/organizations/{org}:
    patch:
      summary: Update an Organization
      description: 'Updates a given Organization and its details.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The Organization's name.
                statusPageIsPublic:
                  type: boolean
                  description: Whether or not the Organization's status dashboard can be viewed by unauthenticated
                    users.
                notificationEmailAddress:
                  type: string
                  format: email
                  description: The email address (most likely a group alias) where Run notifcations should
                    be sent for Scheduled runs.
                notificationSetting:
                  type: string
                  enum:
                  - never
                  - change
                  - every fail
                  - every error
                  - every run
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns the updated Organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/scenarios:
    get:
      summary: List Scenarios
      description: 'Retrieve the list of test Scenarios for the given Organization.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's test Scenarios.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      summary: Create a Scenario
      description: 'Creates a test Scenario for the given Organization.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenario'
      responses:
        '200':
          description: Returns the test Scenario just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          description: Returned if the provided scenario definition is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/organizations/{org}/scenarios/{id}:
    get:
      summary: Get a Scenario
      description: 'Retrieves an individual test Scenario by ID.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: The Scenario's ID.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Returns the test Scenario.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    patch:
      summary: Update a Scenario
      description: 'Updates an individual test Scenario by ID.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: The Scenario's ID.
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenario'
      responses:
        '200':
          description: Returns the updated test Scenario.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          description: Returned if the provided scenario definition is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete a Scenario
      description: 'Deletes an individual test scenario by ID.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: The Scenario's ID.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Scenario successfully deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/asyncScenario:
    post:
      summary: Create an Async Scenario
      description: 'Creates a Scenario Asynchronously.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scenario'
      responses:
        '200':
          description: Returns an async job.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobId:
                    type: string
                    format: uuid
        '400':
          description: Returned if the provided scenario definition does not match async requirements.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/job/{jobId}:
    get:
      summary: Get Async Job Status
      description: 'Retrieves the status of an async job, including the created scenario if finished.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: jobId
        in: path
        description: This Job's UUID.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Returns the job status, including the created scenario if finished.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/scenarios/allTemplates:
    get:
      summary: List Templates
      description: 'Retrieve the list of all Template Scenarios for the given Organization.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's Template Scenarios.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/scenarios/linkableTemplates:
    get:
      summary: List Linkable Templates
      description: 'Retrieve the list of all Linkable Template Scenarios for the given Organization.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's Linkable Template Scenarios.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/scenarios/exposedTemplates:
    get:
      summary: List Exposed Templates
      description: 'Retrieve the list of all Template Scenarios that are exposed to external APIs.

        '
      tags:
      - 'How To: Test'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of all Template Scenarios that are exposed to external APIs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Scenario'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/members:
    get:
      summary: List Team Members
      description: 'Retrieves the list of team members who have access to the given Organization.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns the list of team members in this Organization.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationMember'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      summary: Invite a Team Member
      description: 'Invites a given person to join the Organization.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                role:
                  type: string
                  enum:
                  - org-admin
                  - org-creator
      responses:
        '200':
          description: Returns the team membership just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/members/{id}:
    get:
      summary: Get a Team Member
      description: 'Retrieves an individual team membership by ID.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Numeric team membership ID.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Returns the team membership.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    patch:
      summary: Update a team Member
      description: 'Updates an individual team membership by ID.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Numeric team membership ID.
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationMember'
      responses:
        '200':
          description: Returns the updated team membership.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    delete:
      summary: Remove a Team Member
      description: 'Removes the team member from the organization.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Numeric team membership ID.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Team member was successfully removed.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/members/{id}/reinvite:
    post:
      summary: Re-Send Invitation
      description: 'Re-sends the invitation to the given team member.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Numeric team membership ID.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Invitation successfully re-sent.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: 'Invalid Action: can''t re-send an invitation to a User who has already activated.

            '
          content: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/notification-groups:
    get:
      summary: List Notification Groups
      description: 'Retrieves a list of Notification Groups that the Organization has set up.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's Notification Groups.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NotificationGroup'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      summary: Create a Notification Group
      description: 'Creates a Notification Group.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationGroup'
      responses:
        '200':
          description: Returns the Notification Group just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationGroup'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/notification-groups/{id}:
    patch:
      summary: Update a Notification Group
      description: 'Updates a Notification Group.

        '
      tags:
      - 'How To: Administer'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Notification Group's ID.
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationGroup'
      responses:
        '200':
          description: Returns the Notification Group just updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationGroup'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    delete:
      summary: Delete a Notification Group
      description: 'Removes a Notification Group given its ID.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Notification Group's ID.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Notification Group successfully removed.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/connections:
    get:
      summary: List Connections
      description: 'Retrieves a list of Connections that the Organization has configured with other platforms.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's Connections.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Connection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      summary: Create a Connection
      description: 'Integrates Stack Moxie with another platform given a set of authentication details.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Connection'
      responses:
        '200':
          description: Returns the Connection just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Returned when the given `cog` is unknown.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Returned when a connection for this cog already exists for this org/profile.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Returned when the details provided on the `auth` key do not match the fields required
            to connect the given `cog`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/organizations/{org}/connections/{id}:
    get:
      summary: Get a Connection
      description: 'Retrieves a single Connection given its ID.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Connection's ID.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Returns the Connection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    patch:
      summary: Update a Connection
      description: 'Replaces a single Connection''s authentication details given its ID.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Connection's ID.
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                auth:
                  type: object
      responses:
        '200':
          description: Returns the replaced Connection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          description: Returned when the details provided on the `auth` key do not match the fields required
            to connect the given `cog`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete a Connection
      description: 'Removes a Connection given its ID.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Connection's ID.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Connection successfully removed.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/registry:
    get:
      summary: Get the Cog Registry
      description: 'Retrieves a list of Crank Cog Registry entries corresponding to those the Organization
        has access to use.

        '
      tags:
      - 'How To: Integrate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of Crank Cog Registry entries for the Organization.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RegistryEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/folders:
    get:
      summary: List Folders
      description: 'Retrieves a list of this Organization''s Folders.

        '
      tags:
      - 'How To: Organize'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's Folders.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      summary: Create a Folder
      description: 'Creates a Folder.

        '
      tags:
      - 'How To: Organize'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Folder'
      responses:
        '200':
          description: Returns the Folder just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/folders/{id}:
    get:
      summary: Get a Folder
      description: 'Retrieves an individual Folder by ID.

        '
      tags:
      - 'How To: Organize'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Folder's ID.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Returns the Folder.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    patch:
      summary: Update a Folder
      description: 'Updates an individual Folder by ID.

        '
      tags:
      - 'How To: Organize'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Folder's ID.
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Folder'
      responses:
        '200':
          description: Returns the updated Folder.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    delete:
      summary: Delete a Folder
      tags:
      - 'How To: Organize'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Folder's ID.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Folder successfully deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/schedules:
    get:
      summary: List Schedules
      description: 'Retrieves a list of this Organization''s Schedules.

        '
      tags:
      - 'How To: Automate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      responses:
        '200':
          description: Returns a list of the Organization's Schedules.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Schedule'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      summary: Create a Schedule
      description: 'Creates a Schedule.

        '
      tags:
      - 'How To: Automate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Schedule'
      responses:
        '200':
          description: Returns the Schedule just created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schedule'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v1/organizations/{org}/schedules/{id}:
    get:
      summary: Get a Schedule
      description: 'Retrieves an individual Schedule by ID.

        '
      tags:
      - 'How To: Automate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Schedule's ID.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Returns the Schedule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schedule'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    patch:
      summary: Update a Schedule
      description: 'Updates an individual Schedule by ID.

        '
      tags:
      - 'How To: Automate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Schedule's ID.
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Schedule'
      responses:
        '200':
          description: Returns the updated Schedule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schedule'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    delete:
      summary: Delete a Schedule
      description: 'Deletes an individual Schedule by ID.

        '
      tags:
      - 'How To: Automate'
      parameters:
      - $ref: '#/components/parameters/OrgPathParam'
      - name: id
        in: path
        description: Schedule's ID.
        required

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stack-moxie/refs/heads/main/openapi/stack-moxie-rest-api-openapi.yml