From 58f45178738d8964436ab480535835c5e2039d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Behrendt?= Date: Fri, 7 Feb 2025 15:21:32 +0100 Subject: [PATCH] chore: add webhook schemas --- webhook_schemas/README.md | 7 + webhook_schemas/branches_create.json | 193 ++++++++++++++ webhook_schemas/branches_create_example.json | 36 +++ webhook_schemas/branches_merge.json | 193 ++++++++++++++ webhook_schemas/branches_merge_example.json | 36 +++ webhook_schemas/comments_create.json | 239 +++++++++++++++++ webhook_schemas/comments_create_example.json | 38 +++ .../custom_metadata_values_batch_update.json | 146 +++++++++++ ..._metadata_values_batch_update_example.json | 39 +++ .../custom_metadata_values_update.json | 141 ++++++++++ ...custom_metadata_values_update_example.json | 37 +++ webhook_schemas/jobs_complete.json | 148 +++++++++++ webhook_schemas/jobs_complete_example.json | 33 +++ webhook_schemas/jobs_create.json | 148 +++++++++++ webhook_schemas/jobs_create_example.json | 33 +++ webhook_schemas/jobs_locale_complete.json | 244 ++++++++++++++++++ .../jobs_locale_complete_example.json | 50 ++++ webhook_schemas/jobs_locale_reopened.json | 244 ++++++++++++++++++ .../jobs_locale_reopened_example.json | 50 ++++ .../jobs_locale_review_complete.json | 244 ++++++++++++++++++ .../jobs_locale_review_complete_example.json | 50 ++++ .../jobs_locale_review_reopen.json | 244 ++++++++++++++++++ .../jobs_locale_review_reopen_example.json | 50 ++++ webhook_schemas/jobs_reopened.json | 148 +++++++++++ webhook_schemas/jobs_reopened_example.json | 33 +++ webhook_schemas/jobs_start.json | 148 +++++++++++ webhook_schemas/jobs_start_example.json | 33 +++ webhook_schemas/jobs_update.json | 148 +++++++++++ webhook_schemas/jobs_update_example.json | 33 +++ webhook_schemas/keys_batch_delete.json | 90 +++++++ .../keys_batch_delete_example.json | 23 ++ webhook_schemas/keys_create.json | 148 +++++++++++ webhook_schemas/keys_create_example.json | 36 +++ webhook_schemas/keys_delete.json | 148 +++++++++++ webhook_schemas/keys_delete_example.json | 36 +++ webhook_schemas/keys_update.json | 148 +++++++++++ webhook_schemas/keys_update_example.json | 36 +++ webhook_schemas/locales_create.json | 185 +++++++++++++ webhook_schemas/locales_create_example.json | 40 +++ webhook_schemas/locales_delete.json | 185 +++++++++++++ webhook_schemas/locales_delete_example.json | 40 +++ webhook_schemas/locales_update.json | 185 +++++++++++++ webhook_schemas/locales_update_example.json | 40 +++ webhook_schemas/project_update.json | 209 +++++++++++++++ webhook_schemas/project_update_example.json | 33 +++ webhook_schemas/releases_create.json | 32 +++ webhook_schemas/releases_create_example.json | 44 ++++ webhook_schemas/releases_delete.json | 32 +++ webhook_schemas/releases_delete_example.json | 44 ++++ webhook_schemas/screenshots_create.json | 128 +++++++++ .../screenshots_create_example.json | 32 +++ webhook_schemas/screenshots_delete.json | 128 +++++++++ .../screenshots_delete_example.json | 32 +++ webhook_schemas/screenshots_update.json | 128 +++++++++ .../screenshots_update_example.json | 32 +++ .../translations_batch_delete.json | 94 +++++++ .../translations_batch_delete_example.json | 24 ++ .../translations_batch_review.json | 220 ++++++++++++++++ .../translations_batch_review_example.json | 51 ++++ .../translations_batch_unreview.json | 220 ++++++++++++++++ .../translations_batch_unreview_example.json | 51 ++++ .../translations_batch_unverify.json | 220 ++++++++++++++++ .../translations_batch_unverify_example.json | 51 ++++ .../translations_batch_verify.json | 220 ++++++++++++++++ .../translations_batch_verify_example.json | 51 ++++ webhook_schemas/translations_create.json | 195 ++++++++++++++ .../translations_create_example.json | 49 ++++ webhook_schemas/translations_deliver.json | 195 ++++++++++++++ .../translations_deliver_example.json | 49 ++++ webhook_schemas/translations_review.json | 195 ++++++++++++++ .../translations_review_example.json | 49 ++++ webhook_schemas/translations_unreview.json | 195 ++++++++++++++ .../translations_unreview_example.json | 49 ++++ webhook_schemas/translations_unverify.json | 195 ++++++++++++++ .../translations_unverify_example.json | 49 ++++ webhook_schemas/translations_update.json | 195 ++++++++++++++ .../translations_update_example.json | 49 ++++ webhook_schemas/translations_verify.json | 195 ++++++++++++++ .../translations_verify_example.json | 49 ++++ webhook_schemas/uploads_create.json | 175 +++++++++++++ webhook_schemas/uploads_create_example.json | 35 +++ webhook_schemas/uploads_processing.json | 175 +++++++++++++ .../uploads_processing_example.json | 35 +++ 83 files changed, 8730 insertions(+) create mode 100644 webhook_schemas/README.md create mode 100644 webhook_schemas/branches_create.json create mode 100644 webhook_schemas/branches_create_example.json create mode 100644 webhook_schemas/branches_merge.json create mode 100644 webhook_schemas/branches_merge_example.json create mode 100644 webhook_schemas/comments_create.json create mode 100644 webhook_schemas/comments_create_example.json create mode 100644 webhook_schemas/custom_metadata_values_batch_update.json create mode 100644 webhook_schemas/custom_metadata_values_batch_update_example.json create mode 100644 webhook_schemas/custom_metadata_values_update.json create mode 100644 webhook_schemas/custom_metadata_values_update_example.json create mode 100644 webhook_schemas/jobs_complete.json create mode 100644 webhook_schemas/jobs_complete_example.json create mode 100644 webhook_schemas/jobs_create.json create mode 100644 webhook_schemas/jobs_create_example.json create mode 100644 webhook_schemas/jobs_locale_complete.json create mode 100644 webhook_schemas/jobs_locale_complete_example.json create mode 100644 webhook_schemas/jobs_locale_reopened.json create mode 100644 webhook_schemas/jobs_locale_reopened_example.json create mode 100644 webhook_schemas/jobs_locale_review_complete.json create mode 100644 webhook_schemas/jobs_locale_review_complete_example.json create mode 100644 webhook_schemas/jobs_locale_review_reopen.json create mode 100644 webhook_schemas/jobs_locale_review_reopen_example.json create mode 100644 webhook_schemas/jobs_reopened.json create mode 100644 webhook_schemas/jobs_reopened_example.json create mode 100644 webhook_schemas/jobs_start.json create mode 100644 webhook_schemas/jobs_start_example.json create mode 100644 webhook_schemas/jobs_update.json create mode 100644 webhook_schemas/jobs_update_example.json create mode 100644 webhook_schemas/keys_batch_delete.json create mode 100644 webhook_schemas/keys_batch_delete_example.json create mode 100644 webhook_schemas/keys_create.json create mode 100644 webhook_schemas/keys_create_example.json create mode 100644 webhook_schemas/keys_delete.json create mode 100644 webhook_schemas/keys_delete_example.json create mode 100644 webhook_schemas/keys_update.json create mode 100644 webhook_schemas/keys_update_example.json create mode 100644 webhook_schemas/locales_create.json create mode 100644 webhook_schemas/locales_create_example.json create mode 100644 webhook_schemas/locales_delete.json create mode 100644 webhook_schemas/locales_delete_example.json create mode 100644 webhook_schemas/locales_update.json create mode 100644 webhook_schemas/locales_update_example.json create mode 100644 webhook_schemas/project_update.json create mode 100644 webhook_schemas/project_update_example.json create mode 100644 webhook_schemas/releases_create.json create mode 100644 webhook_schemas/releases_create_example.json create mode 100644 webhook_schemas/releases_delete.json create mode 100644 webhook_schemas/releases_delete_example.json create mode 100644 webhook_schemas/screenshots_create.json create mode 100644 webhook_schemas/screenshots_create_example.json create mode 100644 webhook_schemas/screenshots_delete.json create mode 100644 webhook_schemas/screenshots_delete_example.json create mode 100644 webhook_schemas/screenshots_update.json create mode 100644 webhook_schemas/screenshots_update_example.json create mode 100644 webhook_schemas/translations_batch_delete.json create mode 100644 webhook_schemas/translations_batch_delete_example.json create mode 100644 webhook_schemas/translations_batch_review.json create mode 100644 webhook_schemas/translations_batch_review_example.json create mode 100644 webhook_schemas/translations_batch_unreview.json create mode 100644 webhook_schemas/translations_batch_unreview_example.json create mode 100644 webhook_schemas/translations_batch_unverify.json create mode 100644 webhook_schemas/translations_batch_unverify_example.json create mode 100644 webhook_schemas/translations_batch_verify.json create mode 100644 webhook_schemas/translations_batch_verify_example.json create mode 100644 webhook_schemas/translations_create.json create mode 100644 webhook_schemas/translations_create_example.json create mode 100644 webhook_schemas/translations_deliver.json create mode 100644 webhook_schemas/translations_deliver_example.json create mode 100644 webhook_schemas/translations_review.json create mode 100644 webhook_schemas/translations_review_example.json create mode 100644 webhook_schemas/translations_unreview.json create mode 100644 webhook_schemas/translations_unreview_example.json create mode 100644 webhook_schemas/translations_unverify.json create mode 100644 webhook_schemas/translations_unverify_example.json create mode 100644 webhook_schemas/translations_update.json create mode 100644 webhook_schemas/translations_update_example.json create mode 100644 webhook_schemas/translations_verify.json create mode 100644 webhook_schemas/translations_verify_example.json create mode 100644 webhook_schemas/uploads_create.json create mode 100644 webhook_schemas/uploads_create_example.json create mode 100644 webhook_schemas/uploads_processing.json create mode 100644 webhook_schemas/uploads_processing_example.json diff --git a/webhook_schemas/README.md b/webhook_schemas/README.md new file mode 100644 index 000000000..0f12efe46 --- /dev/null +++ b/webhook_schemas/README.md @@ -0,0 +1,7 @@ +# Webhook Schemas + +JSON schemas for the Phrase Strings webhooks + +https://support.phrase.com/hc/en-us/articles/5784125630620-Webhooks-Strings + + diff --git a/webhook_schemas/branches_create.json b/webhook_schemas/branches_create.json new file mode 100644 index 000000000..a2fb7a277 --- /dev/null +++ b/webhook_schemas/branches_create.json @@ -0,0 +1,193 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "base_project_id": { + "type": [ + "string", + "null" + ] + }, + "branch_project_id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "merged_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "merged_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "created_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "state": { + "type": "string" + } + }, + "required": [ + "name", + "base_project_id", + "branch_project_id", + "created_at", + "updated_at", + "merged_at", + "state", + "created_by", + "merged_by" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch" + ] +} diff --git a/webhook_schemas/branches_create_example.json b/webhook_schemas/branches_create_example.json new file mode 100644 index 000000000..fb42965dc --- /dev/null +++ b/webhook_schemas/branches_create_example.json @@ -0,0 +1,36 @@ +{ + "event": "branches:create", + "message": "john.smith created branch new-feature-1 in project Translation Project", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1", + "base_project_id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "branch_project_id": "8228978fc13f5eb3c4cbbe8ac9882b64", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "merged_at": null, + "state": "initialized", + "created_by": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "merged_by": null + } +} \ No newline at end of file diff --git a/webhook_schemas/branches_merge.json b/webhook_schemas/branches_merge.json new file mode 100644 index 000000000..a2fb7a277 --- /dev/null +++ b/webhook_schemas/branches_merge.json @@ -0,0 +1,193 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "base_project_id": { + "type": [ + "string", + "null" + ] + }, + "branch_project_id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "merged_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "merged_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "created_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "state": { + "type": "string" + } + }, + "required": [ + "name", + "base_project_id", + "branch_project_id", + "created_at", + "updated_at", + "merged_at", + "state", + "created_by", + "merged_by" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch" + ] +} diff --git a/webhook_schemas/branches_merge_example.json b/webhook_schemas/branches_merge_example.json new file mode 100644 index 000000000..8c2d7ac68 --- /dev/null +++ b/webhook_schemas/branches_merge_example.json @@ -0,0 +1,36 @@ +{ + "event": "branches:merge", + "message": "john.smith merged branch new-feature-1 in project Translation Project", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1", + "base_project_id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "branch_project_id": "8228978fc13f5eb3c4cbbe8ac9882b64", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "merged_at": null, + "state": "initialized", + "created_by": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "merged_by": null + } +} \ No newline at end of file diff --git a/webhook_schemas/comments_create.json b/webhook_schemas/comments_create.json new file mode 100644 index 000000000..e903069bc --- /dev/null +++ b/webhook_schemas/comments_create.json @@ -0,0 +1,239 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "comment": { + "type": "object", + "title": "comment", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "mentioned_users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + } + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "name_hash": { + "type": [ + "string", + "null" + ] + }, + "plural": { + "type": "boolean" + }, + "max_characters_allowed": { + "type": [ + "integer", + "null" + ] + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "description", + "name_hash", + "plural", + "max_characters_allowed", + "tags", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "id", + "message", + "user", + "created_at", + "updated_at", + "mentioned_users" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/comments_create_example.json b/webhook_schemas/comments_create_example.json new file mode 100644 index 000000000..1fedc4a72 --- /dev/null +++ b/webhook_schemas/comments_create_example.json @@ -0,0 +1,38 @@ +{ + "event": "comments:create", + "message": "john.smith commented on job \"Job 1\" in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "comment": { + "id": "68740d06f87390fd357f12e0d7ddb9a2", + "message": "Job is looking ready to go", + "has_replies": false, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "mentioned_users": [], + "locales": [] + } +} \ No newline at end of file diff --git a/webhook_schemas/custom_metadata_values_batch_update.json b/webhook_schemas/custom_metadata_values_batch_update.json new file mode 100644 index 000000000..f51f65f3b --- /dev/null +++ b/webhook_schemas/custom_metadata_values_batch_update.json @@ -0,0 +1,146 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "main_format": { + "type": "string" + }, + "project_image_url": { + "type": "null" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "point_of_contact": { + "type": "null" + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "custom_metadata_value": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "value" + ] + }, + "keys": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + }, + "data_type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "name", + "plural", + "data_type", + "tags" + ] + } + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "custom_metadata_value", + "keys" + ] +} \ No newline at end of file diff --git a/webhook_schemas/custom_metadata_values_batch_update_example.json b/webhook_schemas/custom_metadata_values_batch_update_example.json new file mode 100644 index 000000000..aba02f507 --- /dev/null +++ b/webhook_schemas/custom_metadata_values_batch_update_example.json @@ -0,0 +1,39 @@ +{ + "event": "custom_metadata_values:batch_update", + "message": "john.smith updated custom metadata value Platform for 1 keys in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "custom_metadata_value": { + "id": "2e7d22d447a0941ea534b09176da7b83", + "name": "Platform", + "value": "Android" + }, + "keys": [ + { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ] + } + ] +} \ No newline at end of file diff --git a/webhook_schemas/custom_metadata_values_update.json b/webhook_schemas/custom_metadata_values_update.json new file mode 100644 index 000000000..1800a0a7f --- /dev/null +++ b/webhook_schemas/custom_metadata_values_update.json @@ -0,0 +1,141 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "main_format": { + "type": "string" + }, + "project_image_url": { + "type": "null" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "point_of_contact": { + "type": "null" + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "custom_metadata_value": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "value" + ] + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + }, + "data_type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "name", + "plural", + "data_type", + "tags" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "custom_metadata_value", + "key" + ] +} \ No newline at end of file diff --git a/webhook_schemas/custom_metadata_values_update_example.json b/webhook_schemas/custom_metadata_values_update_example.json new file mode 100644 index 000000000..b009ecda3 --- /dev/null +++ b/webhook_schemas/custom_metadata_values_update_example.json @@ -0,0 +1,37 @@ +{ + "event": "custom_metadata_values:update", + "message": "john.smith updated custom metadata value Platform for key application.modal.header in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "custom_metadata_value": { + "id": "2e7d22d447a0941ea534b09176da7b83", + "name": "Platform", + "value": "Android" + }, + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ] + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_complete.json b/webhook_schemas/jobs_complete.json new file mode 100644 index 000000000..030c5278c --- /dev/null +++ b/webhook_schemas/jobs_complete.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/jobs_complete_example.json b/webhook_schemas/jobs_complete_example.json new file mode 100644 index 000000000..c27497d53 --- /dev/null +++ b/webhook_schemas/jobs_complete_example.json @@ -0,0 +1,33 @@ +{ + "event": "jobs:complete", + "message": "john.smith marked job Translation job for feature 1 in project Translation Project within branch new-feature-1 as completed", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_create.json b/webhook_schemas/jobs_create.json new file mode 100644 index 000000000..030c5278c --- /dev/null +++ b/webhook_schemas/jobs_create.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/jobs_create_example.json b/webhook_schemas/jobs_create_example.json new file mode 100644 index 000000000..e25793e75 --- /dev/null +++ b/webhook_schemas/jobs_create_example.json @@ -0,0 +1,33 @@ +{ + "event": "jobs:create", + "message": "john.smith created job Translation job for feature 1 in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_locale_complete.json b/webhook_schemas/jobs_locale_complete.json new file mode 100644 index 000000000..4c69eb8cb --- /dev/null +++ b/webhook_schemas/jobs_locale_complete.json @@ -0,0 +1,244 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "job", + "locale" + ] +} diff --git a/webhook_schemas/jobs_locale_complete_example.json b/webhook_schemas/jobs_locale_complete_example.json new file mode 100644 index 000000000..ca5821490 --- /dev/null +++ b/webhook_schemas/jobs_locale_complete_example.json @@ -0,0 +1,50 @@ +{ + "event": "jobs:locale:complete", + "message": "john.smith marked locale en of job Translation job for feature 1 in project Translation Project within branch new-feature-1 as completed", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_locale_reopened.json b/webhook_schemas/jobs_locale_reopened.json new file mode 100644 index 000000000..4c69eb8cb --- /dev/null +++ b/webhook_schemas/jobs_locale_reopened.json @@ -0,0 +1,244 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "job", + "locale" + ] +} diff --git a/webhook_schemas/jobs_locale_reopened_example.json b/webhook_schemas/jobs_locale_reopened_example.json new file mode 100644 index 000000000..db4c94259 --- /dev/null +++ b/webhook_schemas/jobs_locale_reopened_example.json @@ -0,0 +1,50 @@ +{ + "event": "jobs:locale:reopened", + "message": "john.smith reopened locale en of job Translation job for feature 1 in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_locale_review_complete.json b/webhook_schemas/jobs_locale_review_complete.json new file mode 100644 index 000000000..4c69eb8cb --- /dev/null +++ b/webhook_schemas/jobs_locale_review_complete.json @@ -0,0 +1,244 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "job", + "locale" + ] +} diff --git a/webhook_schemas/jobs_locale_review_complete_example.json b/webhook_schemas/jobs_locale_review_complete_example.json new file mode 100644 index 000000000..26f77f66a --- /dev/null +++ b/webhook_schemas/jobs_locale_review_complete_example.json @@ -0,0 +1,50 @@ +{ + "event": "jobs:locale:review:complete", + "message": "john.smith marked locale en of job Translation job for feature 1 in project Translation Project within branch new-feature-1 as reviewed", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_locale_review_reopen.json b/webhook_schemas/jobs_locale_review_reopen.json new file mode 100644 index 000000000..4c69eb8cb --- /dev/null +++ b/webhook_schemas/jobs_locale_review_reopen.json @@ -0,0 +1,244 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "job", + "locale" + ] +} diff --git a/webhook_schemas/jobs_locale_review_reopen_example.json b/webhook_schemas/jobs_locale_review_reopen_example.json new file mode 100644 index 000000000..548c2fa95 --- /dev/null +++ b/webhook_schemas/jobs_locale_review_reopen_example.json @@ -0,0 +1,50 @@ +{ + "event": "jobs:locale:review:reopen", + "message": "john.smith reopened locale en for review of job Translation job for feature 1 in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_reopened.json b/webhook_schemas/jobs_reopened.json new file mode 100644 index 000000000..030c5278c --- /dev/null +++ b/webhook_schemas/jobs_reopened.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/jobs_reopened_example.json b/webhook_schemas/jobs_reopened_example.json new file mode 100644 index 000000000..fbcf76c7f --- /dev/null +++ b/webhook_schemas/jobs_reopened_example.json @@ -0,0 +1,33 @@ +{ + "event": "jobs:reopened", + "message": "john.smith reopened job Translation job for feature 1 in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_start.json b/webhook_schemas/jobs_start.json new file mode 100644 index 000000000..030c5278c --- /dev/null +++ b/webhook_schemas/jobs_start.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/jobs_start_example.json b/webhook_schemas/jobs_start_example.json new file mode 100644 index 000000000..9b2b152e1 --- /dev/null +++ b/webhook_schemas/jobs_start_example.json @@ -0,0 +1,33 @@ +{ + "event": "jobs:start", + "message": "john.smith started job Translation job for feature 1 in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/jobs_update.json b/webhook_schemas/jobs_update.json new file mode 100644 index 000000000..030c5278c --- /dev/null +++ b/webhook_schemas/jobs_update.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "job": { + "type": "object", + "title": "job", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "briefing": { + "type": [ + "string", + "null" + ] + }, + "due_date": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "ticket_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "briefing", + "due_date", + "state", + "ticket_url", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/jobs_update_example.json b/webhook_schemas/jobs_update_example.json new file mode 100644 index 000000000..7531ec79b --- /dev/null +++ b/webhook_schemas/jobs_update_example.json @@ -0,0 +1,33 @@ +{ + "event": "jobs:update", + "message": "john.smith updated job Translation job for feature 1 in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "job": { + "id": "ad39faf87fb5af9aa9d9ab44a6c29899", + "name": "Translation job for feature 1", + "briefing": "Please translate everything!", + "due_date": "2025-02-07 16:18:13 UTC", + "state": "draft", + "ticket_url": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:05 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/keys_batch_delete.json b/webhook_schemas/keys_batch_delete.json new file mode 100644 index 000000000..ca4014de2 --- /dev/null +++ b/webhook_schemas/keys_batch_delete.json @@ -0,0 +1,90 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/keys_batch_delete_example.json b/webhook_schemas/keys_batch_delete_example.json new file mode 100644 index 000000000..50bfdc788 --- /dev/null +++ b/webhook_schemas/keys_batch_delete_example.json @@ -0,0 +1,23 @@ +{ + "event": "keys:batch_delete", + "message": "john.smith deleted 10 keys in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + } +} \ No newline at end of file diff --git a/webhook_schemas/keys_create.json b/webhook_schemas/keys_create.json new file mode 100644 index 000000000..5c1f6c3b3 --- /dev/null +++ b/webhook_schemas/keys_create.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "name_hash": { + "type": [ + "string", + "null" + ] + }, + "plural": { + "type": "boolean" + }, + "max_characters_allowed": { + "type": [ + "integer", + "null" + ] + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "description", + "name_hash", + "plural", + "max_characters_allowed", + "tags", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "key" + ] +} diff --git a/webhook_schemas/keys_create_example.json b/webhook_schemas/keys_create_example.json new file mode 100644 index 000000000..84b5815b9 --- /dev/null +++ b/webhook_schemas/keys_create_example.json @@ -0,0 +1,36 @@ +{ + "event": "keys:create", + "message": "john.smith created key application.modal.header in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "description": "Title for modal headers", + "name_hash": "d81d9a1934b7b02d008c58e9d322d557", + "plural": false, + "max_characters_allowed": 0, + "tags": [ + "web" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/keys_delete.json b/webhook_schemas/keys_delete.json new file mode 100644 index 000000000..5c1f6c3b3 --- /dev/null +++ b/webhook_schemas/keys_delete.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "name_hash": { + "type": [ + "string", + "null" + ] + }, + "plural": { + "type": "boolean" + }, + "max_characters_allowed": { + "type": [ + "integer", + "null" + ] + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "description", + "name_hash", + "plural", + "max_characters_allowed", + "tags", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "key" + ] +} diff --git a/webhook_schemas/keys_delete_example.json b/webhook_schemas/keys_delete_example.json new file mode 100644 index 000000000..ce17fe3c0 --- /dev/null +++ b/webhook_schemas/keys_delete_example.json @@ -0,0 +1,36 @@ +{ + "event": "keys:delete", + "message": "john.smith deleted key application.modal.header in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "description": "Title for modal headers", + "name_hash": "d81d9a1934b7b02d008c58e9d322d557", + "plural": false, + "max_characters_allowed": 0, + "tags": [ + "web" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/keys_update.json b/webhook_schemas/keys_update.json new file mode 100644 index 000000000..5c1f6c3b3 --- /dev/null +++ b/webhook_schemas/keys_update.json @@ -0,0 +1,148 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "name_hash": { + "type": [ + "string", + "null" + ] + }, + "plural": { + "type": "boolean" + }, + "max_characters_allowed": { + "type": [ + "integer", + "null" + ] + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "description", + "name_hash", + "plural", + "max_characters_allowed", + "tags", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "key" + ] +} diff --git a/webhook_schemas/keys_update_example.json b/webhook_schemas/keys_update_example.json new file mode 100644 index 000000000..ce21b1fdb --- /dev/null +++ b/webhook_schemas/keys_update_example.json @@ -0,0 +1,36 @@ +{ + "event": "keys:update", + "message": "john.smith updated key application.modal.header in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "description": "Title for modal headers", + "name_hash": "d81d9a1934b7b02d008c58e9d322d557", + "plural": false, + "max_characters_allowed": 0, + "tags": [ + "web" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/locales_create.json b/webhook_schemas/locales_create.json new file mode 100644 index 000000000..80083f496 --- /dev/null +++ b/webhook_schemas/locales_create.json @@ -0,0 +1,185 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "locale" + ] +} diff --git a/webhook_schemas/locales_create_example.json b/webhook_schemas/locales_create_example.json new file mode 100644 index 000000000..e3b5ce8cd --- /dev/null +++ b/webhook_schemas/locales_create_example.json @@ -0,0 +1,40 @@ +{ + "event": "locales:create", + "message": "john.smith created locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + } +} \ No newline at end of file diff --git a/webhook_schemas/locales_delete.json b/webhook_schemas/locales_delete.json new file mode 100644 index 000000000..80083f496 --- /dev/null +++ b/webhook_schemas/locales_delete.json @@ -0,0 +1,185 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "locale" + ] +} diff --git a/webhook_schemas/locales_delete_example.json b/webhook_schemas/locales_delete_example.json new file mode 100644 index 000000000..b6238bf00 --- /dev/null +++ b/webhook_schemas/locales_delete_example.json @@ -0,0 +1,40 @@ +{ + "event": "locales:delete", + "message": "john.smith deleted locale en from project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + } +} \ No newline at end of file diff --git a/webhook_schemas/locales_update.json b/webhook_schemas/locales_update.json new file mode 100644 index 000000000..80083f496 --- /dev/null +++ b/webhook_schemas/locales_update.json @@ -0,0 +1,185 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "main": { + "type": "boolean" + }, + "rtl": { + "type": "boolean" + }, + "plural_forms": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "fallback_locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "code", + "default", + "main", + "rtl", + "plural_forms", + "source_locale", + "fallback_locale", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "locale" + ] +} diff --git a/webhook_schemas/locales_update_example.json b/webhook_schemas/locales_update_example.json new file mode 100644 index 000000000..8bbaf735b --- /dev/null +++ b/webhook_schemas/locales_update_example.json @@ -0,0 +1,40 @@ +{ + "event": "locales:update", + "message": "john.smith updated locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en", + "default": false, + "main": false, + "rtl": false, + "plural_forms": [ + "zero", + "one", + "other" + ], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "source_locale": null, + "fallback_locale": null + } +} \ No newline at end of file diff --git a/webhook_schemas/project_update.json b/webhook_schemas/project_update.json new file mode 100644 index 000000000..023b3a794 --- /dev/null +++ b/webhook_schemas/project_update.json @@ -0,0 +1,209 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "const": "project:update" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": [ + "string", + "null" + ] + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "project_image_url": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "account": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": [ + "string", + "null" + ] + }, + "company": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "company_logo_url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "slug", + "company", + "created_at", + "updated_at", + "company_logo_url" + ] + }, + "space": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "projects_count": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "slug", + "created_at", + "updated_at", + "projects_count" + ] + }, + "point_of_contact": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "account", + "space", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project" + ] +} diff --git a/webhook_schemas/project_update_example.json b/webhook_schemas/project_update_example.json new file mode 100644 index 000000000..5a8574ebf --- /dev/null +++ b/webhook_schemas/project_update_example.json @@ -0,0 +1,33 @@ +{ + "event": "project:update", + "message": "john.smith updated project Translation Project", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "account": { + "id": "abcdef1", + "name": "Company account", + "slug": "company-account", + "company": "Pawtucket Brewery", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "company_logo_url": null + }, + "space": null, + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + } +} \ No newline at end of file diff --git a/webhook_schemas/releases_create.json b/webhook_schemas/releases_create.json new file mode 100644 index 000000000..4577075e2 --- /dev/null +++ b/webhook_schemas/releases_create.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "$ref": "user.json" + }, + "project": { + "$ref": "project.json" + }, + "branch": { + "$ref": "branch.json" + }, + "release": { + "$ref": "release.json" + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "release" + ] +} diff --git a/webhook_schemas/releases_create_example.json b/webhook_schemas/releases_create_example.json new file mode 100644 index 000000000..7c5db2d5a --- /dev/null +++ b/webhook_schemas/releases_create_example.json @@ -0,0 +1,44 @@ +{ + "event": "releases:create", + "message": "john.smith created a new release 48 in distribution Android Distribution in project Translation Project", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "release": { + "id": "97f8be200b23fa28f05bfcddfcb75869", + "version": 12, + "app_min_version": "1.0.0", + "app_max_version": "2.0.0", + "description": null, + "platforms": [ + "android", + "ios" + ], + "environments": [ + "development", + "production" + ], + "locale_codes": [ + "en" + ], + "tags": [], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/releases_delete.json b/webhook_schemas/releases_delete.json new file mode 100644 index 000000000..4577075e2 --- /dev/null +++ b/webhook_schemas/releases_delete.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "$ref": "user.json" + }, + "project": { + "$ref": "project.json" + }, + "branch": { + "$ref": "branch.json" + }, + "release": { + "$ref": "release.json" + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "release" + ] +} diff --git a/webhook_schemas/releases_delete_example.json b/webhook_schemas/releases_delete_example.json new file mode 100644 index 000000000..4fc486655 --- /dev/null +++ b/webhook_schemas/releases_delete_example.json @@ -0,0 +1,44 @@ +{ + "event": "releases:delete", + "message": "john.smith deleted a release 48 in distribution Android Distribution in project Translation Project", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "release": { + "id": "97f8be200b23fa28f05bfcddfcb75869", + "version": 12, + "app_min_version": "1.0.0", + "app_max_version": "2.0.0", + "description": null, + "platforms": [ + "android", + "ios" + ], + "environments": [ + "development", + "production" + ], + "locale_codes": [ + "en" + ], + "tags": [], + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC" + } +} \ No newline at end of file diff --git a/webhook_schemas/screenshots_create.json b/webhook_schemas/screenshots_create.json new file mode 100644 index 000000000..43821a8ce --- /dev/null +++ b/webhook_schemas/screenshots_create.json @@ -0,0 +1,128 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "screenshot": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "screenshot_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "markers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "name", + "description", + "screenshot_url", + "created_at", + "updated_at", + "markers_count" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "screenshot" + ] +} diff --git a/webhook_schemas/screenshots_create_example.json b/webhook_schemas/screenshots_create_example.json new file mode 100644 index 000000000..dc6f5217e --- /dev/null +++ b/webhook_schemas/screenshots_create_example.json @@ -0,0 +1,32 @@ +{ + "event": "screenshots:create", + "message": "john.smith created screenshot main_view_screenshot in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "screenshot": { + "id": "b827204f17cefe7fa3b6a8ced17ead26", + "name": "main_view_screenshot", + "description": "Showing the main screen", + "screenshot_url": "http://www.example.com/uploads/screenshots/b827204f17cefe7fa3b6a8ced17ead26/screenshot-7411f4f0a5c11802.jpg", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "markers_count": 0 + } +} \ No newline at end of file diff --git a/webhook_schemas/screenshots_delete.json b/webhook_schemas/screenshots_delete.json new file mode 100644 index 000000000..43821a8ce --- /dev/null +++ b/webhook_schemas/screenshots_delete.json @@ -0,0 +1,128 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "screenshot": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "screenshot_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "markers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "name", + "description", + "screenshot_url", + "created_at", + "updated_at", + "markers_count" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "screenshot" + ] +} diff --git a/webhook_schemas/screenshots_delete_example.json b/webhook_schemas/screenshots_delete_example.json new file mode 100644 index 000000000..bbd638c9c --- /dev/null +++ b/webhook_schemas/screenshots_delete_example.json @@ -0,0 +1,32 @@ +{ + "event": "screenshots:delete", + "message": "john.smith deleted a screenshot in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "screenshot": { + "id": "b827204f17cefe7fa3b6a8ced17ead26", + "name": "main_view_screenshot", + "description": "Showing the main screen", + "screenshot_url": "http://www.example.com/uploads/screenshots/b827204f17cefe7fa3b6a8ced17ead26/screenshot-7411f4f0a5c11802.jpg", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "markers_count": 0 + } +} \ No newline at end of file diff --git a/webhook_schemas/screenshots_update.json b/webhook_schemas/screenshots_update.json new file mode 100644 index 000000000..43821a8ce --- /dev/null +++ b/webhook_schemas/screenshots_update.json @@ -0,0 +1,128 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "screenshot": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "screenshot_url": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "markers_count": { + "type": "integer" + } + }, + "required": [ + "id", + "name", + "description", + "screenshot_url", + "created_at", + "updated_at", + "markers_count" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "screenshot" + ] +} diff --git a/webhook_schemas/screenshots_update_example.json b/webhook_schemas/screenshots_update_example.json new file mode 100644 index 000000000..f280f2322 --- /dev/null +++ b/webhook_schemas/screenshots_update_example.json @@ -0,0 +1,32 @@ +{ + "event": "screenshots:update", + "message": "john.smith updated screenshot main_view_screenshot in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "screenshot": { + "id": "b827204f17cefe7fa3b6a8ced17ead26", + "name": "main_view_screenshot", + "description": "Showing the main screen", + "screenshot_url": "http://www.example.com/uploads/screenshots/b827204f17cefe7fa3b6a8ced17ead26/screenshot-7411f4f0a5c11802.jpg", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "markers_count": 0 + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_batch_delete.json b/webhook_schemas/translations_batch_delete.json new file mode 100644 index 000000000..2088eddd5 --- /dev/null +++ b/webhook_schemas/translations_batch_delete.json @@ -0,0 +1,94 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "deleted_translations_count": { + "type": "integer" + } + }, + "required": [ + "event", + "message", + "user", + "project", + "deleted_translations_count" + ] +} \ No newline at end of file diff --git a/webhook_schemas/translations_batch_delete_example.json b/webhook_schemas/translations_batch_delete_example.json new file mode 100644 index 000000000..c6561666c --- /dev/null +++ b/webhook_schemas/translations_batch_delete_example.json @@ -0,0 +1,24 @@ +{ + "event": "translations:batch_delete", + "message": "10 Translations deleted in project Translation Project within branch new-feature-1", + "deleted_translations_count": 10, + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_batch_review.json b/webhook_schemas/translations_batch_review.json new file mode 100644 index 000000000..8bd99e142 --- /dev/null +++ b/webhook_schemas/translations_batch_review.json @@ -0,0 +1,220 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "email", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "main_format": { + "type": "string" + }, + "project_image_url": { + "type": "null" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "point_of_contact": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + } + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translations": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": "string" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "placeholders": { + "type": "array", + "items": {} + }, + "state": { + "type": "string" + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + }, + "data_type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "name", + "plural", + "data_type", + "tags" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "created_at", + "updated_at", + "placeholders", + "state", + "key", + "locale" + ] + } + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "translations" + ] +} diff --git a/webhook_schemas/translations_batch_review_example.json b/webhook_schemas/translations_batch_review_example.json new file mode 100644 index 000000000..059c16f61 --- /dev/null +++ b/webhook_schemas/translations_batch_review_example.json @@ -0,0 +1,51 @@ +{ + "event": "translations:batch_review", + "message": "1 translations reviewed in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "email": "john.smith@example.com", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translations": [ + { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07T16:18:13Z", + "updated_at": "2025-02-07T16:18:13Z", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ] + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } + ] +} \ No newline at end of file diff --git a/webhook_schemas/translations_batch_unreview.json b/webhook_schemas/translations_batch_unreview.json new file mode 100644 index 000000000..8bd99e142 --- /dev/null +++ b/webhook_schemas/translations_batch_unreview.json @@ -0,0 +1,220 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "email", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "main_format": { + "type": "string" + }, + "project_image_url": { + "type": "null" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "point_of_contact": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + } + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translations": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": "string" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "placeholders": { + "type": "array", + "items": {} + }, + "state": { + "type": "string" + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + }, + "data_type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "name", + "plural", + "data_type", + "tags" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "created_at", + "updated_at", + "placeholders", + "state", + "key", + "locale" + ] + } + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "translations" + ] +} diff --git a/webhook_schemas/translations_batch_unreview_example.json b/webhook_schemas/translations_batch_unreview_example.json new file mode 100644 index 000000000..1216e1b8b --- /dev/null +++ b/webhook_schemas/translations_batch_unreview_example.json @@ -0,0 +1,51 @@ +{ + "event": "translations:batch_unreview", + "message": "1 translations unreviewed in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "email": "john.smith@example.com", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translations": [ + { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07T16:18:13Z", + "updated_at": "2025-02-07T16:18:13Z", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ] + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } + ] +} \ No newline at end of file diff --git a/webhook_schemas/translations_batch_unverify.json b/webhook_schemas/translations_batch_unverify.json new file mode 100644 index 000000000..8bd99e142 --- /dev/null +++ b/webhook_schemas/translations_batch_unverify.json @@ -0,0 +1,220 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "email", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "main_format": { + "type": "string" + }, + "project_image_url": { + "type": "null" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "point_of_contact": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + } + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translations": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": "string" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "placeholders": { + "type": "array", + "items": {} + }, + "state": { + "type": "string" + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + }, + "data_type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "name", + "plural", + "data_type", + "tags" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "created_at", + "updated_at", + "placeholders", + "state", + "key", + "locale" + ] + } + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "translations" + ] +} diff --git a/webhook_schemas/translations_batch_unverify_example.json b/webhook_schemas/translations_batch_unverify_example.json new file mode 100644 index 000000000..b737921bd --- /dev/null +++ b/webhook_schemas/translations_batch_unverify_example.json @@ -0,0 +1,51 @@ +{ + "event": "translations:batch_unverify", + "message": "1 translations unverified in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "email": "john.smith@example.com", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translations": [ + { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07T16:18:13Z", + "updated_at": "2025-02-07T16:18:13Z", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ] + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } + ] +} \ No newline at end of file diff --git a/webhook_schemas/translations_batch_verify.json b/webhook_schemas/translations_batch_verify.json new file mode 100644 index 000000000..8bd99e142 --- /dev/null +++ b/webhook_schemas/translations_batch_verify.json @@ -0,0 +1,220 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "gravatar_uid": { + "type": "string" + } + }, + "required": [ + "id", + "username", + "name", + "email", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "main_format": { + "type": "string" + }, + "project_image_url": { + "type": "null" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "point_of_contact": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + } + } + }, + "required": [ + "id", + "name", + "slug", + "main_format", + "project_image_url", + "created_at", + "updated_at", + "point_of_contact" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translations": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": "string" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "placeholders": { + "type": "array", + "items": {} + }, + "state": { + "type": "string" + }, + "key": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + }, + "data_type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "name", + "plural", + "data_type", + "tags" + ] + }, + "locale": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "code" + ] + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "created_at", + "updated_at", + "placeholders", + "state", + "key", + "locale" + ] + } + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch", + "translations" + ] +} diff --git a/webhook_schemas/translations_batch_verify_example.json b/webhook_schemas/translations_batch_verify_example.json new file mode 100644 index 000000000..7211af6ec --- /dev/null +++ b/webhook_schemas/translations_batch_verify_example.json @@ -0,0 +1,51 @@ +{ + "event": "translations:batch_verify", + "message": "1 translations verified in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "email": "john.smith@example.com", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translations": [ + { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07T16:18:13Z", + "updated_at": "2025-02-07T16:18:13Z", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ] + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } + ] +} \ No newline at end of file diff --git a/webhook_schemas/translations_create.json b/webhook_schemas/translations_create.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_create.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_create_example.json b/webhook_schemas/translations_create_example.json new file mode 100644 index 000000000..11bea2fca --- /dev/null +++ b/webhook_schemas/translations_create_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:create", + "message": "john.smith created translation for key application.modal.header in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_deliver.json b/webhook_schemas/translations_deliver.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_deliver.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_deliver_example.json b/webhook_schemas/translations_deliver_example.json new file mode 100644 index 000000000..d8a59538b --- /dev/null +++ b/webhook_schemas/translations_deliver_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:deliver", + "message": "Translation delivered for key \"application.modal.header\" in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_review.json b/webhook_schemas/translations_review.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_review.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_review_example.json b/webhook_schemas/translations_review_example.json new file mode 100644 index 000000000..9711fc7c9 --- /dev/null +++ b/webhook_schemas/translations_review_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:review", + "message": "john.smith reviewed translation for key application.modal.header in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_unreview.json b/webhook_schemas/translations_unreview.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_unreview.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_unreview_example.json b/webhook_schemas/translations_unreview_example.json new file mode 100644 index 000000000..ed7df260a --- /dev/null +++ b/webhook_schemas/translations_unreview_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:unreview", + "message": "john.smith unreviewed translation for key application.modal.header in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_unverify.json b/webhook_schemas/translations_unverify.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_unverify.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_unverify_example.json b/webhook_schemas/translations_unverify_example.json new file mode 100644 index 000000000..7c0d773dc --- /dev/null +++ b/webhook_schemas/translations_unverify_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:unverify", + "message": "john.smith unverified translation for key application.modal.header in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_update.json b/webhook_schemas/translations_update.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_update.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_update_example.json b/webhook_schemas/translations_update_example.json new file mode 100644 index 000000000..9e163f458 --- /dev/null +++ b/webhook_schemas/translations_update_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:update", + "message": "john.smith updated translation for key application.modal.header in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/translations_verify.json b/webhook_schemas/translations_verify.json new file mode 100644 index 000000000..10daa9eab --- /dev/null +++ b/webhook_schemas/translations_verify.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "translation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "content": { + "type": [ + "string", + "null" + ], + "x-json-tag": "json:\"content\"" + }, + "unverified": { + "type": "boolean" + }, + "excluded": { + "type": "boolean" + }, + "plural_suffix": { + "type": [ + "string", + "null" + ] + }, + "key": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plural": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "plural" + ] + }, + "locale": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "code" + ] + }, + "placeholders": { + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "content", + "unverified", + "excluded", + "plural_suffix", + "key", + "locale", + "placeholders", + "state", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "translation" + ] +} diff --git a/webhook_schemas/translations_verify_example.json b/webhook_schemas/translations_verify_example.json new file mode 100644 index 000000000..49121532f --- /dev/null +++ b/webhook_schemas/translations_verify_example.json @@ -0,0 +1,49 @@ +{ + "event": "translations:verify", + "message": "john.smith verified translation for key application.modal.header in locale en in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "translation": { + "id": "89252e4570e73c051fce446c8c55670d", + "content": "Header title", + "unverified": false, + "excluded": false, + "plural_suffix": "", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "placeholders": [], + "state": "translated", + "key": { + "id": "fe5b97045d80f91dd950b695d5ebe607", + "name": "application.modal.header", + "plural": false, + "data_type": "string", + "tags": [ + "web" + ], + "description": "Title for modal headers" + }, + "locale": { + "id": "7d8614f35033cebada71d4471fd87518", + "name": "en", + "code": "en" + } + } +} \ No newline at end of file diff --git a/webhook_schemas/uploads_create.json b/webhook_schemas/uploads_create.json new file mode 100644 index 000000000..33dd17052 --- /dev/null +++ b/webhook_schemas/uploads_create.json @@ -0,0 +1,175 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "upload": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "format": { + "type": "string" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "tag": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "type": [ + "array" + ], + "items": { + "type": "string" + } + }, + "summary": { + "type": [ + "object", + "null" + ], + "properties": { + "locales_created": { + "type": "integer" + }, + "translation_keys_created": { + "type": "integer" + }, + "translation_keys_updated": { + "type": "integer" + }, + "translation_keys_unmentioned": { + "type": "integer" + }, + "translations_created": { + "type": "integer" + }, + "translations_updated": { + "type": "integer" + }, + "tags_created": { + "type": "integer" + }, + "translation_keys_ignored": { + "type": "integer" + } + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "filename", + "format", + "state", + "tag", + "summary", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "upload" + ] +} \ No newline at end of file diff --git a/webhook_schemas/uploads_create_example.json b/webhook_schemas/uploads_create_example.json new file mode 100644 index 000000000..a5cbfa171 --- /dev/null +++ b/webhook_schemas/uploads_create_example.json @@ -0,0 +1,35 @@ +{ + "event": "uploads:create", + "message": "john.smith uploaded file file.yml in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "upload": { + "id": "955ac73e72b75aae4fcaf2548798fe9c", + "filename": "file.yml", + "format": "yml", + "state": "initialized", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "summary": {}, + "tag": null, + "tags": [], + "url": "http://www.example.com/accounts/company-account/projects/translation-project/uploads/955ac73e72b75aae4fcaf2548798fe9c?branch=new-feature-1" + } +} \ No newline at end of file diff --git a/webhook_schemas/uploads_processing.json b/webhook_schemas/uploads_processing.json new file mode 100644 index 000000000..33dd17052 --- /dev/null +++ b/webhook_schemas/uploads_processing.json @@ -0,0 +1,175 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "upload": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "format": { + "type": "string" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "tag": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "type": [ + "array" + ], + "items": { + "type": "string" + } + }, + "summary": { + "type": [ + "object", + "null" + ], + "properties": { + "locales_created": { + "type": "integer" + }, + "translation_keys_created": { + "type": "integer" + }, + "translation_keys_updated": { + "type": "integer" + }, + "translation_keys_unmentioned": { + "type": "integer" + }, + "translations_created": { + "type": "integer" + }, + "translations_updated": { + "type": "integer" + }, + "tags_created": { + "type": "integer" + }, + "translation_keys_ignored": { + "type": "integer" + } + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "filename", + "format", + "state", + "tag", + "summary", + "created_at", + "updated_at" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "upload" + ] +} \ No newline at end of file diff --git a/webhook_schemas/uploads_processing_example.json b/webhook_schemas/uploads_processing_example.json new file mode 100644 index 000000000..5a99a833d --- /dev/null +++ b/webhook_schemas/uploads_processing_example.json @@ -0,0 +1,35 @@ +{ + "event": "uploads:processing", + "message": "john.smith initialized file upload file.yml in project Translation Project within branch new-feature-1", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1" + }, + "upload": { + "id": "955ac73e72b75aae4fcaf2548798fe9c", + "filename": "file.yml", + "format": "yml", + "state": "initialized", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "summary": {}, + "tag": null, + "tags": [], + "url": "http://www.example.com/accounts/company-account/projects/translation-project/uploads/955ac73e72b75aae4fcaf2548798fe9c?branch=new-feature-1" + } +} \ No newline at end of file