{
  "asyncapi": "3.0.0",
  "id": "https://arcenciel.io/developers/asyncapi/1.1.0.json",
  "info": {
    "title": "Arc en Ciel Developer Webhooks",
    "version": "1.1.0",
    "description": "Versioned, owner-scoped, at-least-once event deliveries. Receivers must verify the HMAC signature over timestamp.rawBody and deduplicate by event id.",
    "externalDocs": {
      "description": "Webhook setup, verification, retries, and signature guide",
      "url": "https://arcenciel.io/developers/webhooks/reference"
    }
  },
  "defaultContentType": "application/json",
  "servers": {
    "receiver": {
      "host": "developer-defined.example",
      "pathname": "/webhooks/arcenciel",
      "protocol": "https",
      "description": "The verified HTTPS port-443 receiver URL registered by the developer."
    }
  },
  "channels": {
    "developerEndpoint": {
      "address": "/webhooks/arcenciel",
      "description": "One verified developer-owned receiver. Delivery is at least once and ordering is not guaranteed.",
      "messages": {
        "modelPublished": {
          "$ref": "#/components/messages/modelPublished"
        },
        "modelVersionPublished": {
          "$ref": "#/components/messages/modelVersionPublished"
        },
        "imagePublished": {
          "$ref": "#/components/messages/imagePublished"
        },
        "videoPublished": {
          "$ref": "#/components/messages/videoPublished"
        },
        "articlePublished": {
          "$ref": "#/components/messages/articlePublished"
        },
        "collectionCreated": {
          "$ref": "#/components/messages/collectionCreated"
        },
        "collectionUpdated": {
          "$ref": "#/components/messages/collectionUpdated"
        },
        "collectionDeleted": {
          "$ref": "#/components/messages/collectionDeleted"
        },
        "generatorJobCompleted": {
          "$ref": "#/components/messages/generatorJobCompleted"
        },
        "generatorJobFailed": {
          "$ref": "#/components/messages/generatorJobFailed"
        },
        "generatorVideoJobCompleted": {
          "$ref": "#/components/messages/generatorVideoJobCompleted"
        },
        "generatorVideoJobFailed": {
          "$ref": "#/components/messages/generatorVideoJobFailed"
        },
        "generatorVideoJobCancelled": {
          "$ref": "#/components/messages/generatorVideoJobCancelled"
        },
        "feedbackStatusChanged": {
          "$ref": "#/components/messages/feedbackStatusChanged"
        }
      }
    }
  },
  "operations": {
    "receiveModelPublished": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/modelPublished"
        }
      ]
    },
    "receiveModelVersionPublished": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/modelVersionPublished"
        }
      ]
    },
    "receiveImagePublished": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/imagePublished"
        }
      ]
    },
    "receiveVideoPublished": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/videoPublished"
        }
      ]
    },
    "receiveArticlePublished": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/articlePublished"
        }
      ]
    },
    "receiveCollectionCreated": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/collectionCreated"
        }
      ]
    },
    "receiveCollectionUpdated": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/collectionUpdated"
        }
      ]
    },
    "receiveCollectionDeleted": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/collectionDeleted"
        }
      ]
    },
    "receiveGeneratorJobCompleted": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/generatorJobCompleted"
        }
      ]
    },
    "receiveGeneratorJobFailed": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/generatorJobFailed"
        }
      ]
    },
    "receiveGeneratorVideoJobCompleted": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/generatorVideoJobCompleted"
        }
      ]
    },
    "receiveGeneratorVideoJobFailed": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/generatorVideoJobFailed"
        }
      ]
    },
    "receiveGeneratorVideoJobCancelled": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/generatorVideoJobCancelled"
        }
      ]
    },
    "receiveFeedbackStatusChanged": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/developerEndpoint"
      },
      "messages": [
        {
          "$ref": "#/channels/developerEndpoint/messages/feedbackStatusChanged"
        }
      ]
    }
  },
  "components": {
    "messages": {
      "modelPublished": {
        "name": "model.published",
        "title": "Model published",
        "summary": "A model owned by the endpoint owner became publicly available.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/ModelPublishedEnvelope"
        },
        "examples": [
          {
            "name": "model-1",
            "payload": {
              "id": "evt_a77159bc6b8bf81cf9c484c38d5afc52",
              "type": "model.published",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 123,
                  "type": "model",
                  "title": "Example model",
                  "status": "PUBLISHED",
                  "publishedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/models/123"
              }
            }
          }
        ]
      },
      "modelVersionPublished": {
        "name": "model.version.published",
        "title": "Model version published",
        "summary": "A version of a model owned by the endpoint owner became publicly available.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/ModelVersionPublishedEnvelope"
        },
        "examples": [
          {
            "name": "model_version-2",
            "payload": {
              "id": "evt_77adeb8c4a1e8fca00e64da9087ff8e2",
              "type": "model.version.published",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 456,
                  "type": "model_version",
                  "modelId": 123,
                  "modelTitle": "Example model",
                  "versionName": "v2",
                  "status": "PUBLISHED",
                  "publishedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/models/123"
              }
            }
          }
        ]
      },
      "imagePublished": {
        "name": "image.published",
        "title": "Image published",
        "summary": "An image owned by the endpoint owner became publicly available.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/ImagePublishedEnvelope"
        },
        "examples": [
          {
            "name": "image-3",
            "payload": {
              "id": "evt_8cdc88b2646e4a1cab6fcb20d5e6cd7b",
              "type": "image.published",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 789,
                  "type": "image",
                  "title": "Example image",
                  "status": "PUBLISHED",
                  "publishedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/images/789"
              }
            }
          }
        ]
      },
      "videoPublished": {
        "name": "video.published",
        "title": "Video published",
        "summary": "A video owned by the endpoint owner became publicly available.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/VideoPublishedEnvelope"
        },
        "examples": [
          {
            "name": "video-4",
            "payload": {
              "id": "evt_c5ee305e57aa8d9f848e188b9dd435f0",
              "type": "video.published",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 987,
                  "type": "video",
                  "title": "Example video",
                  "status": "PUBLISHED",
                  "publishedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/videos/987"
              }
            }
          }
        ]
      },
      "articlePublished": {
        "name": "article.published",
        "title": "Article published",
        "summary": "An article owned by the endpoint owner became publicly available.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/ArticlePublishedEnvelope"
        },
        "examples": [
          {
            "name": "article-5",
            "payload": {
              "id": "evt_3189b84b7145a7a23e6b2dfe26b8eb0f",
              "type": "article.published",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 321,
                  "type": "article",
                  "title": "Example article",
                  "status": "PUBLISHED",
                  "updatedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/articles/321"
              }
            }
          }
        ]
      },
      "collectionCreated": {
        "name": "collection.created",
        "title": "Collection created",
        "summary": "A collection owned by the endpoint owner was created.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/CollectionCreatedEnvelope"
        },
        "examples": [
          {
            "name": "collection-6",
            "payload": {
              "id": "evt_ea08e702c7a9f57b84755adc82874f23",
              "type": "collection.created",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 22,
                  "type": "collection",
                  "name": "Favorites",
                  "slug": "favorites",
                  "visibility": "PUBLIC"
                },
                "resourceUrl": "https://arcenciel.io/collections/favorites"
              }
            }
          }
        ]
      },
      "collectionUpdated": {
        "name": "collection.updated",
        "title": "Collection updated",
        "summary": "A collection owned by the endpoint owner changed.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/CollectionUpdatedEnvelope"
        },
        "examples": [
          {
            "name": "collection-7",
            "payload": {
              "id": "evt_d5b10593c5849cffaf86349866e9f4d7",
              "type": "collection.updated",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 22,
                  "type": "collection",
                  "name": "Favorites 2026",
                  "slug": "favorites",
                  "visibility": "PUBLIC",
                  "updatedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/collections/favorites"
              }
            }
          }
        ]
      },
      "collectionDeleted": {
        "name": "collection.deleted",
        "title": "Collection deleted",
        "summary": "A collection owned by the endpoint owner was deleted.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/CollectionDeletedEnvelope"
        },
        "examples": [
          {
            "name": "collection-8",
            "payload": {
              "id": "evt_3f0b98032e4b6ef561e8ffadc67d152a",
              "type": "collection.deleted",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": 22,
                  "type": "collection",
                  "name": "Favorites 2026",
                  "slug": "favorites",
                  "visibility": "PUBLIC",
                  "deletedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/collections/favorites"
              }
            }
          }
        ]
      },
      "generatorJobCompleted": {
        "name": "generator.job.completed",
        "title": "Generator job completed",
        "summary": "An image generator job owned by the endpoint owner completed successfully.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/GeneratorJobCompletedEnvelope"
        },
        "examples": [
          {
            "name": "generator_job-9",
            "payload": {
              "id": "evt_307a9ed275966515de3b8a46a8a1be9e",
              "type": "generator.job.completed",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": "job_01J4V8S8F5D0",
                  "type": "generator_job",
                  "mode": "txt2img",
                  "status": "COMPLETED",
                  "outputCount": 2,
                  "completedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/generator/jobs/job_01J4V8S8F5D0"
              }
            }
          }
        ]
      },
      "generatorJobFailed": {
        "name": "generator.job.failed",
        "title": "Generator job failed",
        "summary": "An image generator job owned by the endpoint owner failed or was cancelled.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/GeneratorJobFailedEnvelope"
        },
        "examples": [
          {
            "name": "generator_job-10",
            "payload": {
              "id": "evt_38d3918b8072103848a4213f29d6e71d",
              "type": "generator.job.failed",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": "job_01J4V8S8F5D1",
                  "type": "generator_job",
                  "mode": "txt2img",
                  "status": "FAILED",
                  "outputCount": 0,
                  "error": "Generation was cancelled",
                  "completedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/generator/jobs/job_01J4V8S8F5D1"
              }
            }
          }
        ]
      },
      "generatorVideoJobCompleted": {
        "name": "generator.video_job.completed",
        "title": "Video generator job completed",
        "summary": "A video generator job owned by the endpoint owner completed successfully.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/GeneratorVideoJobCompletedEnvelope"
        },
        "examples": [
          {
            "name": "generator_video_job-11",
            "payload": {
              "id": "evt_33a47c93808f09e45cf2c2d3a369681e",
              "type": "generator.video_job.completed",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": "vjob_01J4V8S8F5D0",
                  "type": "generator_video_job",
                  "mode": "TXT2VIDEO",
                  "status": "COMPLETED",
                  "completedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/generator/video/jobs/vjob_01J4V8S8F5D0"
              }
            }
          }
        ]
      },
      "generatorVideoJobFailed": {
        "name": "generator.video_job.failed",
        "title": "Video generator job failed",
        "summary": "A video generator job owned by the endpoint owner failed.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/GeneratorVideoJobFailedEnvelope"
        },
        "examples": [
          {
            "name": "generator_video_job-12",
            "payload": {
              "id": "evt_4dd7b823595751ffad321d5299779583",
              "type": "generator.video_job.failed",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": "vjob_01J4V8S8F5D1",
                  "type": "generator_video_job",
                  "mode": "TXT2VIDEO",
                  "status": "FAILED",
                  "error": "Remote renderer unavailable",
                  "completedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/generator/video/jobs/vjob_01J4V8S8F5D1"
              }
            }
          }
        ]
      },
      "generatorVideoJobCancelled": {
        "name": "generator.video_job.cancelled",
        "title": "Video generator job cancelled",
        "summary": "A video generator job owned by the endpoint owner was cancelled.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/GeneratorVideoJobCancelledEnvelope"
        },
        "examples": [
          {
            "name": "generator_video_job-13",
            "payload": {
              "id": "evt_a035290653d979a73b5500467115a8cd",
              "type": "generator.video_job.cancelled",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": "vjob_01J4V8S8F5D2",
                  "type": "generator_video_job",
                  "mode": "TXT2VIDEO",
                  "status": "CANCELLED",
                  "completedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/generator/video/jobs/vjob_01J4V8S8F5D2"
              }
            }
          }
        ]
      },
      "feedbackStatusChanged": {
        "name": "feedback.status_changed",
        "title": "Feedback status changed",
        "summary": "The status of a feedback case submitted by the endpoint owner changed.",
        "headers": {
          "$ref": "#/components/schemas/deliveryHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/FeedbackStatusChangedEnvelope"
        },
        "examples": [
          {
            "name": "feedback-14",
            "payload": {
              "id": "evt_f842a425086c0ee58ab75abd5bdedbe9",
              "type": "feedback.status_changed",
              "version": "1",
              "createdAt": "2026-08-09T00:00:00.000Z",
              "livemode": true,
              "data": {
                "object": {
                  "id": "fb_01J4V8S8F5D0",
                  "type": "feedback",
                  "status": "RESOLVED",
                  "updatedAt": "2026-08-08T00:00:00.000Z"
                },
                "resourceUrl": "https://arcenciel.io/feedback/fb_01J4V8S8F5D0"
              }
            }
          }
        ]
      }
    },
    "schemas": {
      "deliveryHeaders": {
        "type": "object",
        "required": ["X-AEC-Event", "X-AEC-Event-Version", "X-AEC-Event-Id", "X-AEC-Delivery-Id", "X-AEC-Timestamp", "X-AEC-Signature"],
        "properties": {
          "X-AEC-Event": {
            "type": "string"
          },
          "X-AEC-Event-Version": {
            "type": "string",
            "const": "1"
          },
          "X-AEC-Event-Id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "X-AEC-Delivery-Id": {
            "type": "string",
            "pattern": "^dly_"
          },
          "X-AEC-Timestamp": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "X-AEC-Signature": {
            "type": "string",
            "pattern": "^t=[0-9]+,v1=[a-f0-9]{64}(,v1=[a-f0-9]{64})?$"
          }
        }
      },
      "ModelPublishedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "model.published"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "model"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "publishedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "title", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "ModelVersionPublishedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "model.version.published"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "model_version"
                  },
                  "modelId": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "modelTitle": {
                    "type": "string",
                    "minLength": 1
                  },
                  "versionName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "publishedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "modelId", "modelTitle", "versionName", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "ImagePublishedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "image.published"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "publishedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "VideoPublishedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "video.published"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "video"
                  },
                  "title": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "publishedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "ArticlePublishedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "article.published"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "article"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "updatedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "title", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "CollectionCreatedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "collection.created"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "collection"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "slug": {
                    "type": "string",
                    "minLength": 1
                  },
                  "visibility": {
                    "type": "string",
                    "minLength": 1
                  },
                  "updatedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "deletedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "name", "slug", "visibility"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "CollectionUpdatedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "collection.updated"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "collection"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "slug": {
                    "type": "string",
                    "minLength": 1
                  },
                  "visibility": {
                    "type": "string",
                    "minLength": 1
                  },
                  "updatedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "deletedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "name", "slug", "visibility"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "CollectionDeletedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "collection.deleted"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "type": {
                    "type": "string",
                    "const": "collection"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "slug": {
                    "type": "string",
                    "minLength": 1
                  },
                  "visibility": {
                    "type": "string",
                    "minLength": 1
                  },
                  "updatedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "deletedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "name", "slug", "visibility"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "GeneratorJobCompletedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "generator.job.completed"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "const": "generator_job"
                  },
                  "mode": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "enum": ["COMPLETED", "FAILED"]
                  },
                  "outputCount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "error": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "completedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "mode", "status", "outputCount"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "GeneratorJobFailedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "generator.job.failed"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "const": "generator_job"
                  },
                  "mode": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "enum": ["COMPLETED", "FAILED"]
                  },
                  "outputCount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "error": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "completedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "mode", "status", "outputCount"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "GeneratorVideoJobCompletedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "generator.video_job.completed"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "const": "generator_video_job"
                  },
                  "mode": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "enum": ["COMPLETED", "FAILED", "CANCELLED"]
                  },
                  "error": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "completedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "mode", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "GeneratorVideoJobFailedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "generator.video_job.failed"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "const": "generator_video_job"
                  },
                  "mode": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "enum": ["COMPLETED", "FAILED", "CANCELLED"]
                  },
                  "error": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "completedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "mode", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "GeneratorVideoJobCancelledEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "generator.video_job.cancelled"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "const": "generator_video_job"
                  },
                  "mode": {
                    "type": "string",
                    "minLength": 1
                  },
                  "status": {
                    "type": "string",
                    "enum": ["COMPLETED", "FAILED", "CANCELLED"]
                  },
                  "error": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "completedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "mode", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      },
      "FeedbackStatusChangedEnvelope": {
        "type": "object",
        "required": ["id", "type", "version", "createdAt", "livemode", "data"],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_"
          },
          "type": {
            "type": "string",
            "const": "feedback.status_changed"
          },
          "version": {
            "type": "string",
            "const": "1"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "object": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "const": "feedback"
                  },
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "updatedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": ["id", "type", "status"],
                "additionalProperties": {}
              },
              "resourceUrl": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": ["object", "resourceUrl"],
            "additionalProperties": false
          }
        }
      }
    }
  }
}
