{
  "components": {
    "schemas": {
      "AccountBalanceOut": {
        "properties": {
          "buckets": {
            "additionalProperties": {
              "type": "integer"
            },
            "description": "seconds left in each bucket: plan, promo, purchased",
            "type": "object"
          },
          "totalSeconds": {
            "type": "integer"
          }
        },
        "required": [
          "buckets",
          "totalSeconds"
        ],
        "title": "AccountBalanceOut",
        "type": "object"
      },
      "AccountBuyOut": {
        "properties": {
          "clientSecret": {
            "description": "pending card charge: confirm it with Stripe.js (stripe.handleNextAction)",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "hostedInvoiceUrl": {
            "description": "pending, invoice billing: Stripe's invoice page",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "purchaseId": {
            "type": "string"
          },
          "seconds": {
            "type": "integer"
          },
          "status": {
            "description": "paid: the credits are in | pending: the bank wants 3-D Secure, then poll the purchase",
            "type": "string"
          }
        },
        "required": [
          "clientSecret",
          "hostedInvoiceUrl",
          "purchaseId",
          "seconds",
          "status"
        ],
        "title": "AccountBuyOut",
        "type": "object"
      },
      "AccountCheckoutIn": {
        "properties": {
          "bundleId": {
            "maxLength": 20,
            "type": "string"
          }
        },
        "required": [
          "bundleId"
        ],
        "title": "AccountCheckoutIn",
        "type": "object"
      },
      "AccountInvoicingOut": {
        "properties": {
          "enabled": {
            "description": "an admin turned on invoice billing for this account",
            "type": "boolean"
          },
          "limitCents": {
            "description": "what the account may owe on invoices at once",
            "type": "integer"
          },
          "netDays": {
            "description": "an invoice is due this many days after it's sent",
            "type": "integer"
          },
          "open": {
            "description": "sent and not yet paid, oldest first",
            "items": {
              "$ref": "#/components/schemas/AccountOpenInvoice"
            },
            "type": "array"
          },
          "overdue": {
            "description": "an invoice is past due: no new invoices until it's paid",
            "type": "boolean"
          },
          "owedCents": {
            "description": "sent and not yet paid",
            "type": "integer"
          }
        },
        "required": [
          "enabled",
          "limitCents",
          "netDays",
          "open",
          "overdue",
          "owedCents"
        ],
        "title": "AccountInvoicingOut",
        "type": "object"
      },
      "AccountLedgerLine": {
        "properties": {
          "bucket": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "deltaSeconds": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "kind": {
            "type": "string"
          },
          "note": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "orderAccessToken": {
            "description": "opens the order's status page, like an order in the list",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "orderId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "projectId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "purchase": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AccountLedgerPurchase"
              },
              {
                "type": "null"
              }
            ]
          },
          "purchaseId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "bucket",
          "createdAt",
          "deltaSeconds",
          "id",
          "kind",
          "note",
          "orderAccessToken",
          "orderId",
          "projectId",
          "purchase",
          "purchaseId"
        ],
        "title": "AccountLedgerLine",
        "type": "object"
      },
      "AccountLedgerPurchase": {
        "properties": {
          "amountCents": {
            "description": "before tax",
            "type": "integer"
          },
          "invoiceDueAt": {
            "description": "a net-30 invoice's due date",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "paidAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "product": {
            "type": "string"
          },
          "reference": {
            "description": "Stripe's id for the payment (pi_\u2026, or in_\u2026 for an invoice): what support looks it up by",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "refundedCents": {
            "type": "integer"
          },
          "status": {
            "description": "pending | invoiced (a net-30 invoice, sent and unpaid) | paid | failed | cancelled",
            "type": "string"
          },
          "taxCents": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "amountCents",
          "invoiceDueAt",
          "paidAt",
          "product",
          "reference",
          "refundedCents",
          "status",
          "taxCents"
        ],
        "title": "AccountLedgerPurchase",
        "type": "object"
      },
      "AccountMe": {
        "properties": {
          "accountId": {
            "type": "string"
          },
          "accounts": {
            "oneOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/AccountMembershipOut"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "actorId": {
            "type": "string"
          },
          "actorType": {
            "type": "string"
          },
          "mode": {
            "default": "live",
            "description": "live | test: a test key's requests are simulated and never charged",
            "type": "string"
          },
          "role": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "show": {
            "description": "a show's key or app: the show it's limited to",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AccountUserOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "accountId",
          "actorId",
          "actorType",
          "scopes"
        ],
        "title": "AccountMe",
        "type": "object"
      },
      "AccountMembershipOut": {
        "properties": {
          "accountId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "kind",
          "name",
          "role"
        ],
        "title": "AccountMembershipOut",
        "type": "object"
      },
      "AccountOpenInvoice": {
        "properties": {
          "amountCents": {
            "description": "before tax",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "dueAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "overdue": {
            "type": "boolean"
          },
          "purchaseId": {
            "type": "string"
          },
          "seconds": {
            "type": "integer"
          }
        },
        "required": [
          "amountCents",
          "createdAt",
          "dueAt",
          "overdue",
          "purchaseId",
          "seconds"
        ],
        "title": "AccountOpenInvoice",
        "type": "object"
      },
      "AccountPurchaseOut": {
        "properties": {
          "amountCents": {
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "invoiceDueAt": {
            "description": "a net-30 invoice's due date",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "description": "bundle | plan | topup | invoice (a net-30 invoice)",
            "type": "string"
          },
          "paidAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "product": {
            "type": "string"
          },
          "refundedCents": {
            "type": "integer"
          },
          "seconds": {
            "type": "integer"
          },
          "status": {
            "description": "pending | invoiced (a net-30 invoice, sent and unpaid: the hours are in) | paid | failed | cancelled",
            "type": "string"
          }
        },
        "required": [
          "amountCents",
          "createdAt",
          "id",
          "invoiceDueAt",
          "kind",
          "paidAt",
          "product",
          "refundedCents",
          "seconds",
          "status"
        ],
        "title": "AccountPurchaseOut",
        "type": "object"
      },
      "AccountUserOut": {
        "properties": {
          "email": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "email",
          "emailVerified",
          "id",
          "name"
        ],
        "title": "AccountUserOut",
        "type": "object"
      },
      "AutoTopUpIn": {
        "properties": {
          "bundleId": {
            "description": "the bundle bought each time",
            "maxLength": 20,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "type": "boolean"
          },
          "monthlyCap": {
            "default": 3,
            "description": "at most this many automatic purchases a month (1\u201320)",
            "type": "integer"
          },
          "thresholdSeconds": {
            "description": "buy when the balance drops below this",
            "type": "integer"
          }
        },
        "required": [
          "enabled",
          "thresholdSeconds"
        ],
        "title": "AutoTopUpIn",
        "type": "object"
      },
      "AutoTopUpOut": {
        "properties": {
          "bundleId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "chargesThisMonth": {
            "description": "automatic purchases this month (paid or under way)",
            "type": "integer"
          },
          "enabled": {
            "type": "boolean"
          },
          "monthlyCap": {
            "type": "integer"
          },
          "pausedAt": {
            "description": "a purchase failed: off until the settings are saved again",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "pausedReason": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "thresholdSeconds": {
            "type": "integer"
          }
        },
        "required": [
          "bundleId",
          "chargesThisMonth",
          "enabled",
          "monthlyCap",
          "pausedAt",
          "pausedReason",
          "thresholdSeconds"
        ],
        "title": "AutoTopUpOut",
        "type": "object"
      },
      "ConnectionOut": {
        "properties": {
          "connectedByFormerMember": {
            "default": false,
            "description": "the person who connected it has left the team: files still go there until an owner disconnects it or reconnects it with another login",
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "externalAccount": {
            "description": "the login's email",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "lastError": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "provider": {
            "description": "google_drive | dropbox",
            "type": "string"
          },
          "status": {
            "description": "active | needs_reconnect (reconnect it in account settings)",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "externalAccount",
          "id",
          "lastError",
          "provider",
          "status"
        ],
        "title": "ConnectionOut",
        "type": "object"
      },
      "DeliveryDefaultIn": {
        "properties": {
          "destinationId": {
            "description": "one of the account's destinations",
            "maxLength": 40,
            "type": "string"
          }
        },
        "required": [
          "destinationId"
        ],
        "title": "DeliveryDefaultIn",
        "type": "object"
      },
      "DeliveryDefaultOut": {
        "properties": {
          "destinationId": {
            "type": "string"
          }
        },
        "required": [
          "destinationId"
        ],
        "title": "DeliveryDefaultOut",
        "type": "object"
      },
      "DeliveryDestinationRefOut": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "DeliveryDestinationRefOut",
        "type": "object"
      },
      "DeliveryListOut": {
        "properties": {
          "deliveries": {
            "items": {
              "$ref": "#/components/schemas/DeliveryOut"
            },
            "type": "array"
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "deliveries",
          "nextCursor"
        ],
        "title": "DeliveryListOut",
        "type": "object"
      },
      "DeliveryOut": {
        "properties": {
          "attempts": {
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "durationMs": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "description": "when there was no answer: a timeout, a refused connection, ...",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "eventId": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "lastAttemptAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "nextAttemptAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "responseBody": {
            "description": "the start of what your endpoint answered",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "responseStatus": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "pending (will be tried again) | succeeded | failed (gave up)",
            "type": "string"
          }
        },
        "required": [
          "attempts",
          "createdAt",
          "durationMs",
          "error",
          "eventId",
          "eventType",
          "id",
          "lastAttemptAt",
          "nextAttemptAt",
          "responseBody",
          "responseStatus",
          "status"
        ],
        "title": "DeliveryOut",
        "type": "object"
      },
      "DestinationCreateIn": {
        "properties": {
          "connectionId": {
            "maxLength": 40,
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "target": {
            "additionalProperties": {},
            "description": "Drive: {\"folderId\": \"<from Google Picker>\", \"path\": \"Podcasts\"}; Dropbox: {\"path\": \"/Podcasts\"}",
            "type": "object"
          }
        },
        "required": [
          "connectionId",
          "name",
          "target"
        ],
        "title": "DestinationCreateIn",
        "type": "object"
      },
      "DestinationOut": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "connectionId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "target": {
            "additionalProperties": {},
            "description": "the folder: {\"folderId\", \"path\"} for Drive, {\"path\"} for Dropbox",
            "type": "object"
          }
        },
        "required": [
          "archived",
          "connectionId",
          "createdAt",
          "id",
          "name",
          "provider",
          "target"
        ],
        "title": "DestinationOut",
        "type": "object"
      },
      "DestinationUpdateIn": {
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "target": {
            "oneOf": [
              {
                "additionalProperties": {},
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "DestinationUpdateIn",
        "type": "object"
      },
      "EventListOut": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/EventOut"
            },
            "type": "array"
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "events",
          "nextCursor"
        ],
        "title": "EventListOut",
        "type": "object"
      },
      "EventOut": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "mode": {
            "type": "string"
          },
          "object": {
            "default": "event",
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "data",
          "id",
          "mode",
          "type"
        ],
        "title": "EventOut",
        "type": "object"
      },
      "FailureOut": {
        "properties": {
          "code": {
            "description": "processing_failed",
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "FailureOut",
        "type": "object"
      },
      "FileErrorOut": {
        "properties": {
          "code": {
            "description": "unreadable_file | file_too_large | import_failed",
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "FileErrorOut",
        "type": "object"
      },
      "FileListOut": {
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileOut"
            },
            "type": "array"
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "files",
          "nextCursor"
        ],
        "title": "FileListOut",
        "type": "object"
      },
      "FileOut": {
        "properties": {
          "channels": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "durationSeconds": {
            "description": "ready: its length, measured by us",
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "description": "failed: why",
            "oneOf": [
              {
                "$ref": "#/components/schemas/FileErrorOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "expiresAt": {
            "description": "ready: when it's deleted (30 days after it's checked); null while a kept project uses it",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "fileName": {
            "type": "string"
          },
          "id": {
            "description": "null only for a project's file from before files were their own resource",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "sampleRate": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "sizeBytes": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "upload | url | dropbox | googleDrive",
            "type": "string"
          },
          "status": {
            "description": "awaiting_upload (PUT it to uploadUrl) | importing | checking | ready | failed | expired | deleted",
            "type": "string"
          },
          "twoSpeakers": {
            "description": "ready, stereo: a different speaker on each side, so a project processes it as two tracks (left and right) and bills both. Null: not stereo, or not known",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "uploadExpiresAt": {
            "description": "when uploadUrl stops working (read the file for a new one)",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "uploadUrl": {
            "description": "awaiting_upload: PUT the file's bytes here, as the whole request body (curl -T file URL). No headers needed; a new URL on every read",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "channels",
          "createdAt",
          "durationSeconds",
          "error",
          "expiresAt",
          "fileName",
          "id",
          "sampleRate",
          "sizeBytes",
          "source",
          "status",
          "uploadExpiresAt",
          "uploadUrl"
        ],
        "title": "FileOut",
        "type": "object"
      },
      "KeepOut": {
        "properties": {
          "error": {
            "description": "why keeping it at completion didn't happen: insufficient_credits | files_gone | access_revoked | spend_cap_reached. Ask again to retry",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RejectionOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "feeSeconds": {
            "description": "Keep's fee in credits: charged when kept (test: what live would charge)",
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "inputsKeptAt": {
            "description": "when the files it was made from were kept too, so it can be copied and processed again at any time; null if they were already gone",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "keptAt": {
            "description": "when its files were kept and the fee charged",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "requested": {
            "description": "asked to be kept (kept at completion, if it isn't completed yet)",
            "type": "boolean"
          }
        },
        "required": [
          "error",
          "feeSeconds",
          "inputsKeptAt",
          "keptAt",
          "requested"
        ],
        "title": "KeepOut",
        "type": "object"
      },
      "KeepSettingsOut": {
        "properties": {
          "defaultKeep": {
            "description": "new projects keep their files unless their show or the project says not",
            "type": "boolean"
          },
          "feeMinimumSeconds": {
            "description": "...and at least this many seconds of credits",
            "type": "integer"
          },
          "feePercent": {
            "description": "Keep's fee: this share of a project's credits...",
            "type": "integer"
          }
        },
        "required": [
          "defaultKeep",
          "feeMinimumSeconds",
          "feePercent"
        ],
        "title": "KeepSettingsOut",
        "type": "object"
      },
      "NewFileIn": {
        "properties": {
          "fileName": {
            "description": "e.g. host.wav; outputs are named after it",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "source": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "{\"type\": \"upload\"} (the default: PUT the file to its uploadUrl), {\"type\": \"url\", \"url\": \"https://\u2026\"} (any public https file), {\"type\": \"dropbox\", \"url\": \"<a Dropbox share link>\"} or {\"type\": \"googleDrive\", \"fileId\": \"\u2026\", \"accessToken\": \"<an OAuth token that can read it>\"}. Imports start right away.",
            "type": "object"
          }
        },
        "required": [
          "fileName"
        ],
        "title": "NewFileIn",
        "type": "object"
      },
      "OutputOut": {
        "properties": {
          "kind": {
            "description": "audio | video | transcript",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sizeBytes": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "description": "valid for an hour; GET the project again for a new one",
            "type": "string"
          },
          "variant": {
            "description": "vs: the cleaned audio, its length kept so it fits back under a video; ae: the audio edit, with filler words and long pauses cut. A transcript follows its audio's timing",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "kind",
          "name",
          "sizeBytes",
          "url",
          "variant"
        ],
        "title": "OutputOut",
        "type": "object"
      },
      "ProgressOut": {
        "properties": {
          "cap": {
            "description": "...but not past this percent before the next poll",
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "percent": {
            "description": "0\u2013100, approximate",
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "rate": {
            "description": "percent per second it's moving at; animate at most this fast",
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "step": {
            "description": "what's happening, e.g. \"Isolating and enhancing dialogue\"",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "cap",
          "percent",
          "rate",
          "step"
        ],
        "title": "ProgressOut",
        "type": "object"
      },
      "ProjectCopyIn": {
        "properties": {
          "clientRef": {
            "description": "your own id; unique within the account (a copy starts without one)",
            "maxLength": 100,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "deliveries": {
            "maxLength": 5,
            "oneOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "description": "the project's files in track order: an id from POST /v1/files, or a new file ({\"fileName\"} to upload, {\"fileName\", \"source\"} to import), which comes back with its uploadUrl; unsaid: the same files",
            "maxLength": 8,
            "oneOf": [
              {
                "items": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "$ref": "#/components/schemas/NewFileIn"
                    }
                  ]
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "keep": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "description": "up to 20 keys; unsaid: the project's",
            "oneOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "maxLength": 200,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProjectSettingsPatch"
              },
              {
                "type": "null"
              }
            ]
          },
          "show": {
            "maxLength": 40,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "submit": {
            "default": false,
            "description": "submit the copy too",
            "type": "boolean"
          },
          "testOutcome": {
            "description": "test keys only",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ProjectCopyIn",
        "type": "object"
      },
      "ProjectCreateIn": {
        "properties": {
          "clientRef": {
            "description": "your own id; unique within the account",
            "maxLength": 100,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "deliveries": {
            "description": "destination ids its files are sent to when it completes (unsaid: its show's)",
            "maxLength": 5,
            "oneOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "description": "the project's files in track order: an id from POST /v1/files, or a new file ({\"fileName\"} to upload, {\"fileName\", \"source\"} to import), which comes back with its uploadUrl. 1 file: processed alone; 2\u20138: tracks of one recording. May be empty on a draft",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "$ref": "#/components/schemas/NewFileIn"
                }
              ]
            },
            "maxItems": 8,
            "type": "array"
          },
          "keep": {
            "description": "keep its files past 30 days, for a credit fee charged when it completes (unsaid: the show's default, else the account's)",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "description": "up to 20 keys, returned as given",
            "oneOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "maxLength": 200,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "$ref": "#/components/schemas/ProjectSettingsIn"
          },
          "show": {
            "description": "a show's id: the project joins it and starts with its defaults (a show's key: its show, always)",
            "maxLength": 40,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "submit": {
            "default": false,
            "description": "submit it too: at once if its files are ready, otherwise as soon as they are (within 24 hours)",
            "type": "boolean"
          },
          "testOutcome": {
            "description": "test keys only: \"completed\" (the default), \"failed\" (fails while processing) or \"slow\" (about 10 minutes)",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ProjectCreateIn",
        "type": "object"
      },
      "ProjectDeliveryOut": {
        "properties": {
          "attempts": {
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "destination": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DeliveryDestinationRefOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "description": "why it's waiting to try again, or why it failed",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RejectionOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalUrl": {
            "description": "delivered: the folder, to open it",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "finishedAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "kind": {
            "description": "google_drive | dropbox",
            "type": "string"
          },
          "status": {
            "description": "waiting | sending | delivered | failed | cancelled",
            "type": "string"
          },
          "trigger": {
            "description": "default (the show's) | chosen | resend | retry",
            "type": "string"
          }
        },
        "required": [
          "attempts",
          "createdAt",
          "destination",
          "error",
          "externalUrl",
          "finishedAt",
          "id",
          "kind",
          "status",
          "trigger"
        ],
        "title": "ProjectDeliveryOut",
        "type": "object"
      },
      "ProjectListOut": {
        "properties": {
          "nextCursor": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "projects": {
            "items": {
              "$ref": "#/components/schemas/ProjectOut"
            },
            "type": "array"
          }
        },
        "required": [
          "nextCursor",
          "projects"
        ],
        "title": "ProjectListOut",
        "type": "object"
      },
      "ProjectOut": {
        "properties": {
          "clientRef": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "completedAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "copiedFrom": {
            "description": "the project this one was copied from",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "creditsSeconds": {
            "description": "what it costs (charged when live); on a draft, once every file is ready",
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "deliveries": {
            "description": "where its files are being sent, or were",
            "items": {
              "$ref": "#/components/schemas/ProjectDeliveryOut"
            },
            "type": "array"
          },
          "downloadUrl": {
            "description": "completed: the output zip; valid for an hour, GET again for a new one",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "estimatedCompletionAt": {
            "description": "queued or processing: when we expect it done, from the queue and our boxes; approximate",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "failure": {
            "description": "failed: why",
            "oneOf": [
              {
                "$ref": "#/components/schemas/FailureOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "description": "its files in track order",
            "items": {
              "$ref": "#/components/schemas/FileOut"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "keep": {
            "$ref": "#/components/schemas/KeepOut"
          },
          "manifestUrl": {
            "description": "completed: manifest.json, the files and what they came from",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "oneOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "mode": {
            "description": "live | test",
            "type": "string"
          },
          "name": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "outputs": {
            "description": "completed: each delivered file (test projects; live projects soon)",
            "items": {
              "$ref": "#/components/schemas/OutputOut"
            },
            "type": "array"
          },
          "progress": {
            "description": "processing: the step and how far along",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProgressOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "queuedAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "rejection": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/RejectionOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "$ref": "#/components/schemas/ProjectSettingsIn"
          },
          "show": {
            "description": "the show it belongs to",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "startedAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "draft | validating | rejected | queued | processing | completed | failed | cancelled",
            "type": "string"
          },
          "testOutcome": {
            "description": "test projects: what the simulator does with it",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tracks": {
            "description": "what's processed and billed, in order: one per file, except a stereo file with a different speaker on each side (twoSpeakers), which is two once the project is submitted, its left and right side",
            "items": {
              "$ref": "#/components/schemas/TrackOut"
            },
            "type": "array"
          }
        },
        "required": [
          "clientRef",
          "completedAt",
          "copiedFrom",
          "createdAt",
          "creditsSeconds",
          "deliveries",
          "downloadUrl",
          "estimatedCompletionAt",
          "failure",
          "files",
          "id",
          "keep",
          "manifestUrl",
          "metadata",
          "mode",
          "name",
          "outputs",
          "progress",
          "queuedAt",
          "rejection",
          "settings",
          "show",
          "startedAt",
          "status",
          "testOutcome",
          "tracks"
        ],
        "title": "ProjectOut",
        "type": "object"
      },
      "ProjectSettingsIn": {
        "properties": {
          "mergeOutput": {
            "default": false,
            "description": "2-track projects: one merged file instead of two",
            "type": "boolean"
          }
        },
        "required": [],
        "title": "ProjectSettingsIn",
        "type": "object"
      },
      "ProjectSettingsPatch": {
        "properties": {
          "mergeOutput": {
            "description": "2-track projects: one merged file instead of two",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ProjectSettingsPatch",
        "type": "object"
      },
      "ProjectUpdateIn": {
        "properties": {
          "clientRef": {
            "description": "your own id; unique within the account",
            "maxLength": 100,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "description": "the project's files in track order: an id from POST /v1/files, or a new file ({\"fileName\"} to upload, {\"fileName\", \"source\"} to import), which comes back with its uploadUrl; the whole list, replacing it",
            "maxLength": 8,
            "oneOf": [
              {
                "items": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "$ref": "#/components/schemas/NewFileIn"
                    }
                  ]
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "description": "up to 20 keys; replaces the project's",
            "oneOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "maxLength": 200,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProjectSettingsPatch"
              },
              {
                "type": "null"
              }
            ]
          },
          "show": {
            "maxLength": 40,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "testOutcome": {
            "description": "test keys only",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ProjectUpdateIn",
        "type": "object"
      },
      "RejectionOut": {
        "properties": {
          "code": {
            "description": "upload_missing | unreadable_file | file_too_large | import_failed | file_expired | insufficient_credits | measurement_unavailable | test_limit_reached | access_revoked | spend_cap_reached",
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "RejectionOut",
        "type": "object"
      },
      "SendIn": {
        "properties": {
          "destinations": {
            "items": {
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "destinations"
        ],
        "title": "SendIn",
        "type": "object"
      },
      "ShowCreateIn": {
        "properties": {
          "defaults": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ShowDefaultsIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "description": "unique among the account's shows",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "ShowCreateIn",
        "type": "object"
      },
      "ShowDefaultsIn": {
        "properties": {
          "delivery": {
            "description": "where the show's new projects' files are sent when they complete",
            "maxLength": 5,
            "oneOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/DeliveryDefaultIn"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "keep": {
            "description": "the show's projects keep their files past 30 days (Keep), or don't; unsaid: the account's default",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "description": "added to each new project's metadata (the project's own keys win); up to 20 keys",
            "oneOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ShowDefaultsIn",
        "type": "object"
      },
      "ShowDefaultsOut": {
        "properties": {
          "delivery": {
            "oneOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/DeliveryDefaultOut"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "keep": {
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "oneOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ShowDefaultsOut",
        "type": "object"
      },
      "ShowOut": {
        "properties": {
          "archived": {
            "description": "off the lists; no new projects",
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "defaults": {
            "$ref": "#/components/schemas/ShowDefaultsOut"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "archived",
          "createdAt",
          "defaults",
          "id",
          "name",
          "updatedAt"
        ],
        "title": "ShowOut",
        "type": "object"
      },
      "ShowRefOut": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "ShowRefOut",
        "type": "object"
      },
      "ShowUpdateIn": {
        "properties": {
          "archived": {
            "description": "true archives it; false brings it back",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaults": {
            "description": "replaces the defaults; new projects only",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ShowDefaultsIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "ShowUpdateIn",
        "type": "object"
      },
      "SubscriptionOut": {
        "properties": {
          "amountCents": {
            "description": "each month, before tax",
            "type": "integer"
          },
          "cancelAtPeriodEnd": {
            "type": "boolean"
          },
          "canceledAt": {
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "currentPeriodEnd": {
            "description": "when it renews (or ends, if cancelAtPeriodEnd)",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "live": {
            "description": "the account's plan now (not ended)",
            "type": "boolean"
          },
          "planId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "seconds": {
            "description": "credits granted each month, in seconds",
            "type": "integer"
          },
          "status": {
            "description": "active | past_due (a payment failed; Stripe retries) | canceled | trialing | incomplete | unpaid | paused",
            "type": "string"
          }
        },
        "required": [
          "amountCents",
          "cancelAtPeriodEnd",
          "canceledAt",
          "currentPeriodEnd",
          "id",
          "live",
          "planId",
          "seconds",
          "status"
        ],
        "title": "SubscriptionOut",
        "type": "object"
      },
      "SubscriptionStateOut": {
        "properties": {
          "subscription": {
            "description": "the account's plan, or the last one it had; null: none",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SubscriptionOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "subscription"
        ],
        "title": "SubscriptionStateOut",
        "type": "object"
      },
      "TrackOut": {
        "properties": {
          "channel": {
            "description": "the side of a stereo file it processes: 0 left, 1 right; null: the whole file",
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "fileId": {
            "description": "the file it processes",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "channel",
          "fileId",
          "name"
        ],
        "title": "TrackOut",
        "type": "object"
      },
      "UsageOut": {
        "properties": {
          "from": {
            "description": "the first day (US Central)",
            "format": "date",
            "type": "string"
          },
          "groupBy": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "mode": {
            "description": "live: charged credits; test: what live would have charged",
            "type": "string"
          },
          "rows": {
            "description": "one per day or show with usage; empty without groupBy",
            "items": {
              "$ref": "#/components/schemas/UsageRowOut"
            },
            "type": "array"
          },
          "to": {
            "description": "the last day, included",
            "format": "date",
            "type": "string"
          },
          "total": {
            "$ref": "#/components/schemas/UsageRowOut"
          }
        },
        "required": [
          "from",
          "groupBy",
          "mode",
          "rows",
          "to",
          "total"
        ],
        "title": "UsageOut",
        "type": "object"
      },
      "UsageRowOut": {
        "properties": {
          "date": {
            "description": "groupBy=day: the day (YYYY-MM-DD, US Central)",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "projects": {
            "description": "projects charged",
            "type": "integer"
          },
          "seconds": {
            "description": "credits used, in seconds (refunds taken off)",
            "type": "integer"
          },
          "show": {
            "description": "groupBy=show: the show (null: projects in no show)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ShowRefOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "projects",
          "seconds"
        ],
        "title": "UsageRowOut",
        "type": "object"
      },
      "WebhookEndpointCreateIn": {
        "properties": {
          "description": {
            "maxLength": 200,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "eventTypes": {
            "description": "\"*\" (everything, including types added later) or any of project.validating, project.rejected, project.queued, project.processing, project.completed, project.failed, project.stopped, project.cancelled, project.kept, project.keep_failed, file.ready, file.failed, credits.added, credits.low, subscription.renewed, subscription.payment_failed, subscription.canceled, billing.topup_failed, delivery.succeeded, delivery.failed, connection.needs_reconnect",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mode": {
            "description": "signed in: which mode (default live); a key: its own mode",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "show": {
            "description": "a show's id: send only that show's projects' events (a show's key: its show, always)",
            "maxLength": 40,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "description": "https only; a public address",
            "maxLength": 2048,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "title": "WebhookEndpointCreateIn",
        "type": "object"
      },
      "WebhookEndpointOut": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "disabledReason": {
            "description": "user (turned off) | failing (no success for 3 days)",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "type": "boolean"
          },
          "eventTypes": {
            "description": "\"*\" (everything, including types added later) or any of project.validating, project.rejected, project.queued, project.processing, project.completed, project.failed, project.stopped, project.cancelled, project.kept, project.keep_failed, file.ready, file.failed, credits.added, credits.low, subscription.renewed, subscription.payment_failed, subscription.canceled, billing.topup_failed, delivery.succeeded, delivery.failed, connection.needs_reconnect",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "failingSince": {
            "description": "the first failed attempt since the last success",
            "oneOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "mode": {
            "description": "live | test: test events go to test endpoints only",
            "type": "string"
          },
          "show": {
            "description": "a show's id: only that show's projects' events come here",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "description",
          "disabledReason",
          "enabled",
          "eventTypes",
          "failingSince",
          "id",
          "mode",
          "show",
          "url"
        ],
        "title": "WebhookEndpointOut",
        "type": "object"
      },
      "WebhookEndpointSecretOut": {
        "properties": {
          "endpoint": {
            "$ref": "#/components/schemas/WebhookEndpointOut"
          },
          "secret": {
            "description": "verifies the Podsworth-Signature header; GET doesn't return it again",
            "type": "string"
          }
        },
        "required": [
          "endpoint",
          "secret"
        ],
        "title": "WebhookEndpointSecretOut",
        "type": "object"
      },
      "WebhookEndpointUpdateIn": {
        "properties": {
          "description": {
            "maxLength": 200,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "description": "false turns it off; true turns it back on and clears failures",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "eventTypes": {
            "oneOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "maxLength": 2048,
            "minLength": 8,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [],
        "title": "WebhookEndpointUpdateIn",
        "type": "object"
      }
    },
    "securitySchemes": {
      "apiKey": {
        "description": "An API key from your account page: `Authorization: Bearer pw_test_\u2026`",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Send podcast audio for processing from your own software. Live keys (`pw_live_\u2026`) process real projects paid with the account's credits; test keys (`pw_test_\u2026`) are simulated and never charged. Guides: https://docs.podsworth.com",
    "title": "Podsworth API",
    "version": "v1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v1/auto-top-up": {
      "get": {
        "deprecated": false,
        "operationId": "V1AutoTopUpGetAutotopup",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoTopUpOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "Get auto top-up",
        "tags": [
          "Account"
        ]
      },
      "put": {
        "deprecated": false,
        "operationId": "V1AutoTopUpSetAutotopup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoTopUpIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoTopUpOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Set auto top-up",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/balance": {
      "get": {
        "deprecated": false,
        "operationId": "V1BalanceBalance",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountBalanceOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "Get the balance",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/connections": {
      "get": {
        "deprecated": false,
        "operationId": "V1ConnectionsListConnections",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConnectionOut"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "List connections",
        "tags": [
          "Delivery"
        ]
      }
    },
    "/v1/credits/buy": {
      "post": {
        "deprecated": false,
        "operationId": "V1CreditsBuyBuy",
        "parameters": [
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountCheckoutIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountBuyOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Buy credits",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/credits/invoicing": {
      "get": {
        "deprecated": false,
        "operationId": "V1CreditsInvoicingInvoicing",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInvoicingOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "Get invoice terms",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/credits/purchases": {
      "get": {
        "deprecated": false,
        "operationId": "V1CreditsPurchasesPurchases",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AccountPurchaseOut"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "List purchases",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/credits/purchases/{purchase_id}": {
      "get": {
        "deprecated": false,
        "operationId": "V1CreditsPurchasesPurchaseIdPurchase",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "purchase_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountPurchaseOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get a purchase",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/deliveries/{delivery_id}/retry": {
      "post": {
        "deprecated": false,
        "operationId": "V1DeliveriesDeliveryIdRetryRetryDelivery",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "delivery_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDeliveryOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Retry a delivery",
        "tags": [
          "Delivery"
        ]
      }
    },
    "/v1/destinations": {
      "get": {
        "deprecated": false,
        "operationId": "V1DestinationsListDestinations",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "archived",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DestinationOut"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List destinations",
        "tags": [
          "Delivery"
        ]
      },
      "post": {
        "deprecated": false,
        "operationId": "V1DestinationsCreateDestination",
        "parameters": [
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationCreateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationOut"
                }
              }
            },
            "description": "Document created, URL follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Add a destination",
        "tags": [
          "Delivery"
        ]
      }
    },
    "/v1/destinations/{destination_id}": {
      "delete": {
        "deprecated": false,
        "operationId": "V1DestinationsDestinationIdRemoveDestination",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "destination_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Remove a destination",
        "tags": [
          "Delivery"
        ]
      },
      "get": {
        "deprecated": false,
        "operationId": "V1DestinationsDestinationIdGetDestination",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "destination_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get a destination",
        "tags": [
          "Delivery"
        ]
      },
      "patch": {
        "deprecated": false,
        "operationId": "V1DestinationsDestinationIdUpdateDestination",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "destination_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DestinationUpdateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Update a destination",
        "tags": [
          "Delivery"
        ]
      }
    },
    "/v1/events": {
      "get": {
        "deprecated": false,
        "operationId": "V1EventsListEvents",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventListOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List events",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/files": {
      "get": {
        "deprecated": false,
        "operationId": "V1FilesListFiles",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileListOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List files",
        "tags": [
          "Files"
        ]
      },
      "post": {
        "deprecated": false,
        "operationId": "V1FilesCreate",
        "parameters": [
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewFileIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileOut"
                }
              }
            },
            "description": "Document created, URL follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Create a file",
        "tags": [
          "Files"
        ]
      }
    },
    "/v1/files/{file_id}": {
      "delete": {
        "deprecated": false,
        "operationId": "V1FilesFileIdDeleteFile",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Delete a file",
        "tags": [
          "Files"
        ]
      },
      "get": {
        "deprecated": false,
        "operationId": "V1FilesFileIdGetFile",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get a file",
        "tags": [
          "Files"
        ]
      }
    },
    "/v1/keep-settings": {
      "get": {
        "deprecated": false,
        "operationId": "V1KeepSettingsGetSettings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeepSettingsOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "Get Keep's settings",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/ledger": {
      "get": {
        "deprecated": false,
        "operationId": "V1LedgerLedger",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "before",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AccountLedgerLine"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List credit history",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/me": {
      "get": {
        "deprecated": false,
        "operationId": "V1MeMe",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountMe"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "Who this key is",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/projects": {
      "get": {
        "deprecated": false,
        "operationId": "V1ProjectsListProjects",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "clientRef",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "show",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectListOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List projects",
        "tags": [
          "Projects"
        ]
      },
      "post": {
        "deprecated": false,
        "operationId": "V1ProjectsCreate",
        "parameters": [
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectCreateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Document created, URL follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Create a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}": {
      "get": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdGetProject",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get a project",
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdUpdate",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectUpdateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Update a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}/cancel": {
      "post": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdCancelCancel",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Cancel a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}/copy": {
      "post": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdCopyCopy",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectCopyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Document created, URL follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Copy a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}/deliveries": {
      "post": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdDeliveriesSend",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Send a project's files",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}/keep": {
      "post": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdKeepKeep",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Keep a project's files",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}/outputs": {
      "delete": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdOutputsPurgeOutputs",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Delete a project's outputs",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/projects/{project_id}/submit": {
      "post": {
        "deprecated": false,
        "operationId": "V1ProjectsProjectIdSubmitSubmit",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Request accepted, processing continues off-line",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Submit a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v1/shows": {
      "get": {
        "deprecated": false,
        "operationId": "V1ShowsListShows",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "archived",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ShowOut"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List shows",
        "tags": [
          "Shows"
        ]
      },
      "post": {
        "deprecated": false,
        "operationId": "V1ShowsCreateShow",
        "parameters": [
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShowCreateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowOut"
                }
              }
            },
            "description": "Document created, URL follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Create a show",
        "tags": [
          "Shows"
        ]
      }
    },
    "/v1/shows/{show_id}": {
      "get": {
        "deprecated": false,
        "operationId": "V1ShowsShowIdGetShow",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "show_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get a show",
        "tags": [
          "Shows"
        ]
      },
      "patch": {
        "deprecated": false,
        "operationId": "V1ShowsShowIdUpdateShow",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "show_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShowUpdateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Update a show",
        "tags": [
          "Shows"
        ]
      }
    },
    "/v1/subscription": {
      "get": {
        "deprecated": false,
        "operationId": "V1SubscriptionSubscription",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionStateOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "Get the monthly plan",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/usage": {
      "get": {
        "deprecated": false,
        "operationId": "V1UsageUsage",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "first day, YYYY-MM-DD (default: the 1st of this month)",
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "description": "first day, YYYY-MM-DD (default: the 1st of this month)",
              "oneOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "last day, included (default: today); at most 366 days",
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "description": "last day, included (default: today); at most 366 days",
              "oneOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "one show's projects only",
            "in": "query",
            "name": "show",
            "required": false,
            "schema": {
              "description": "one show's projects only",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "day | show",
            "in": "query",
            "name": "groupBy",
            "required": false,
            "schema": {
              "description": "day | show",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get usage",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/usage.csv": {
      "get": {
        "deprecated": false,
        "operationId": "V1UsageCsvUsageCsv",
        "parameters": [
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "first day, YYYY-MM-DD (default: the 1st of this month)",
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "description": "first day, YYYY-MM-DD (default: the 1st of this month)",
              "oneOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "last day, included (default: today); at most 366 days",
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "description": "last day, included (default: today); at most 366 days",
              "oneOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "one show's projects only",
            "in": "query",
            "name": "show",
            "required": false,
            "schema": {
              "description": "one show's projects only",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "description": "day | show",
            "in": "query",
            "name": "groupBy",
            "required": false,
            "schema": {
              "description": "day | show",
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get usage as CSV",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/webhook-endpoints": {
      "get": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsListEndpoints",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WebhookEndpointOut"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          }
        },
        "summary": "List webhook endpoints",
        "tags": [
          "Webhooks"
        ]
      },
      "post": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsCreateEndpoint",
        "parameters": [
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointCreateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointSecretOut"
                }
              }
            },
            "description": "Document created, URL follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Add a webhook endpoint",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}": {
      "delete": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdDeleteEndpoint",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Request fulfilled, nothing follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Delete a webhook endpoint",
        "tags": [
          "Webhooks"
        ]
      },
      "get": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdGetEndpoint",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Get a webhook endpoint",
        "tags": [
          "Webhooks"
        ]
      },
      "patch": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdUpdateEndpoint",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointUpdateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Update a webhook endpoint",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}/deliveries": {
      "get": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdDeliveriesListDeliveries",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "allowEmptyValue": false,
            "allowReserved": false,
            "deprecated": false,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryListOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "List deliveries",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}/deliveries/{delivery_id}/retry": {
      "post": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdDeliveriesDeliveryIdRetryRetryDelivery",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "deprecated": false,
            "in": "path",
            "name": "delivery_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryOut"
                }
              }
            },
            "description": "Request accepted, processing continues off-line",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Retry a delivery",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}/rotate-secret": {
      "post": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdRotateSecretRotateSecret",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointSecretOut"
                }
              }
            },
            "description": "Request fulfilled, document follows",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Roll the signing secret",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}/test": {
      "post": {
        "deprecated": false,
        "operationId": "V1WebhookEndpointsEndpointIdTestSendTest",
        "parameters": [
          {
            "deprecated": false,
            "in": "path",
            "name": "endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Any unique string. A retry with the same key and body within 24 hours gets the first response again (Idempotent-Replayed: true) instead of acting twice.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryOut"
                }
              }
            },
            "description": "Request accepted, processing continues off-line",
            "headers": {}
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validation Exception",
                  "examples": [
                    {
                      "detail": "Bad Request",
                      "extra": {},
                      "status_code": 400
                    }
                  ],
                  "properties": {
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    },
                    "status_code": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad request syntax or unsupported method"
          }
        },
        "summary": "Send a test event",
        "tags": [
          "Webhooks"
        ]
      }
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ],
  "servers": [
    {
      "url": "https://api.podsworth.com"
    }
  ],
  "tags": [
    {
      "description": "Your input files: upload one with a single PUT, or have us import it, and use it in any project.",
      "name": "Files"
    },
    {
      "description": "Make a project of your files, change it until you submit it, follow it, download the result, copy it to process it again.",
      "name": "Projects"
    },
    {
      "description": "Endpoints we POST your account's events to, their deliveries, and the events feed.",
      "name": "Webhooks"
    },
    {
      "description": "A network's shows: projects, keys and webhook endpoints can belong to one.",
      "name": "Shows"
    },
    {
      "description": "Send finished projects' files to Google Drive or Dropbox folders.",
      "name": "Delivery"
    },
    {
      "description": "Who a key is, the account's credits, their history and usage, buying credits.",
      "name": "Account"
    }
  ]
}
