{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/transifex/main/json-schema/transifex-schema.json",
  "title": "Transifex API",
  "description": "JSON Schema for Transifex REST API v3 resources - localization management platform for projects, resources, translations, and language teams",
  "definitions": {
    "Project": {
      "type": "object",
      "description": "A Transifex localization project containing resources and language teams",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique project identifier"
        },
        "type": {
          "type": "string",
          "enum": [
            "projects"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Project name"
            },
            "slug": {
              "type": "string",
              "description": "URL-friendly project identifier"
            },
            "description": {
              "type": "string",
              "description": "Project description"
            },
            "private": {
              "type": "boolean",
              "description": "Whether the project is private"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "translation_memory_fillup": {
              "type": "boolean"
            },
            "machine_translation_fillup": {
              "type": "boolean"
            },
            "source_language": {
              "$ref": "#/definitions/LanguageRef"
            },
            "datetime_created": {
              "type": "string",
              "format": "date-time"
            },
            "datetime_modified": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "relationships": {
          "type": "object",
          "properties": {
            "organization": {
              "$ref": "#/definitions/RelationshipData"
            },
            "maintainers": {
              "$ref": "#/definitions/RelationshipData"
            },
            "team": {
              "$ref": "#/definitions/RelationshipData"
            }
          }
        }
      }
    },
    "Resource": {
      "type": "object",
      "description": "A translatable resource file within a Transifex project",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "resources"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string",
              "description": "URL-friendly resource identifier"
            },
            "name": {
              "type": "string"
            },
            "i18n_type": {
              "type": "string",
              "description": "Internationalization format (e.g., PO, XLIFF, JSON)"
            },
            "priority": {
              "type": "string",
              "enum": [
                "normal",
                "high",
                "urgent"
              ]
            },
            "datetime_created": {
              "type": "string",
              "format": "date-time"
            },
            "datetime_modified": {
              "type": "string",
              "format": "date-time"
            },
            "string_count": {
              "type": "integer"
            },
            "word_count": {
              "type": "integer"
            }
          }
        }
      }
    },
    "Language": {
      "type": "object",
      "description": "A language supported by Transifex",
      "properties": {
        "id": {
          "type": "string",
          "description": "BCP 47 language code (e.g., en, fr, es)"
        },
        "type": {
          "type": "string",
          "enum": [
            "languages"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "description": "Language code"
            },
            "name": {
              "type": "string",
              "description": "Language name in English"
            },
            "rtl": {
              "type": "boolean",
              "description": "Right-to-left language"
            },
            "plural_equation": {
              "type": "string"
            },
            "plural_rules": {
              "type": "object"
            }
          }
        }
      }
    },
    "LanguageRef": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "rtl": {
          "type": "boolean"
        }
      }
    },
    "Organization": {
      "type": "object",
      "description": "A Transifex organization that owns projects and teams",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "organizations"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "logo_url": {
              "type": "string",
              "format": "uri"
            },
            "private": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "Team": {
      "type": "object",
      "description": "A Transifex translation team for a specific language",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "teams"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "cla": {
              "type": "string",
              "description": "Contributor License Agreement text"
            },
            "auto_join": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "ResourceString": {
      "type": "object",
      "description": "A source string within a Transifex resource",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "resource_strings"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string",
              "description": "String key identifier"
            },
            "context": {
              "type": "string"
            },
            "strings": {
              "type": "object",
              "description": "Source string content by plural form",
              "properties": {
                "one": {
                  "type": "string"
                },
                "other": {
                  "type": "string"
                }
              }
            },
            "comment": {
              "type": "string",
              "description": "Translator comment"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "occurrences": {
              "type": "string"
            },
            "character_limit": {
              "type": "integer"
            },
            "datetime_created": {
              "type": "string",
              "format": "date-time"
            },
            "datetime_modified": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    },
    "ResourceTranslation": {
      "type": "object",
      "description": "A translation of a source string into a target language",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "resource_translations"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "strings": {
              "type": "object",
              "description": "Translated strings by plural form",
              "properties": {
                "one": {
                  "type": "string"
                },
                "other": {
                  "type": "string"
                }
              }
            },
            "reviewed": {
              "type": "boolean"
            },
            "proofread": {
              "type": "boolean"
            },
            "finalized": {
              "type": "boolean"
            },
            "datetime_created": {
              "type": "string",
              "format": "date-time"
            },
            "datetime_modified": {
              "type": "string",
              "format": "date-time"
            },
            "datetime_reviewed": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    },
    "Task": {
      "type": "object",
      "description": "A Transifex translation task assigned to a team member",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "tasks"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "due_date": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string",
              "enum": [
                "pending",
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "priority": {
              "type": "string",
              "enum": [
                "normal",
                "high",
                "urgent"
              ]
            },
            "type_attr": {
              "type": "string",
              "enum": [
                "translation",
                "review",
                "proofread"
              ]
            }
          }
        }
      }
    },
    "Glossary": {
      "type": "object",
      "description": "A terminology glossary for consistent translations",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "glossaries"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "language_codes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "User": {
      "type": "object",
      "description": "A Transifex platform user",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "users"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "username": {
              "type": "string"
            },
            "email": {
              "type": "string",
              "format": "email"
            },
            "display_name": {
              "type": "string"
            },
            "bio": {
              "type": "string"
            }
          }
        }
      }
    },
    "ProjectWebhook": {
      "type": "object",
      "description": "A webhook for receiving Transifex project event notifications",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "project_webhooks"
          ]
        },
        "attributes": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "format": "uri",
              "description": "Webhook endpoint URL"
            },
            "secret": {
              "type": "string",
              "description": "HMAC secret for payload signing"
            },
            "events": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "List of events that trigger the webhook"
            },
            "active": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "RelationshipData": {
      "type": "object",
      "properties": {
        "data": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              }
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        },
        "links": {
          "type": "object",
          "properties": {
            "related": {
              "type": "string",
              "format": "uri"
            },
            "self": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      }
    },
    "JsonApiError": {
      "type": "object",
      "description": "JSON:API error response",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "detail": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}