{
  "openapi": "3.0.3",
  "info": {
    "title": "Matra Meta Hub API (/v1)",
    "version": "0.0.1",
    "description": "API pública do Matra Meta Hub para apps consumidores. Guia completo: https://metahub.matratecnologia.com/docs (índice para IA: https://metahub.matratecnologia.com/llms.txt)."
  },
  "servers": [
    {
      "url": "https://api.metahub.matratecnologia.com"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "paths": {
    "/v1/connections": {
      "get": {
        "summary": "Lista as conexões do app",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "schema": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "in": "query",
            "name": "page",
            "required": false
          },
          {
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "limit",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "query",
            "name": "workspaceId",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "active",
                "error",
                "disconnected"
              ]
            },
            "in": "query",
            "name": "status",
            "required": false
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "whatsapp"
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "active",
                              "error",
                              "disconnected"
                            ]
                          },
                          "errorCode": {
                            "nullable": true,
                            "type": "string"
                          },
                          "workspaceId": {
                            "type": "string"
                          },
                          "whatsapp": {
                            "nullable": true,
                            "type": "object",
                            "properties": {
                              "wabaId": {
                                "type": "string"
                              },
                              "phoneNumberId": {
                                "type": "string"
                              },
                              "displayPhoneNumber": {
                                "type": "string"
                              },
                              "verifiedName": {
                                "nullable": true,
                                "type": "string"
                              },
                              "isOnBizApp": {
                                "type": "boolean"
                              },
                              "qualityRating": {
                                "nullable": true,
                                "type": "string"
                              }
                            },
                            "required": [
                              "wabaId",
                              "phoneNumberId",
                              "displayPhoneNumber",
                              "verifiedName",
                              "isOnBizApp",
                              "qualityRating"
                            ],
                            "additionalProperties": false
                          },
                          "sync": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "status": {
                                  "type": "string"
                                },
                                "progress": {
                                  "nullable": true,
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "type",
                                "status",
                                "progress"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "tokenExpiresAt": {
                            "nullable": true,
                            "type": "string",
                            "format": "date-time"
                          },
                          "health": {
                            "nullable": true,
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string"
                              },
                              "issues": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "entityType": {
                                      "type": "string"
                                    },
                                    "canSendMessage": {
                                      "nullable": true,
                                      "type": "string"
                                    },
                                    "errors": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "code": {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          "description": {
                                            "nullable": true,
                                            "type": "string"
                                          },
                                          "solution": {
                                            "nullable": true,
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "code",
                                          "description",
                                          "solution"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalInfo": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "required": [
                                    "entityType",
                                    "canSendMessage",
                                    "errors",
                                    "additionalInfo"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "checkedAt": {
                                "nullable": true,
                                "type": "string",
                                "format": "date-time"
                              }
                            },
                            "required": [
                              "status",
                              "issues",
                              "checkedAt"
                            ],
                            "additionalProperties": false
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "kind",
                          "status",
                          "errorCode",
                          "workspaceId",
                          "whatsapp",
                          "sync",
                          "tokenExpiresAt",
                          "health",
                          "createdAt",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "page": {
                          "type": "number"
                        },
                        "limit": {
                          "type": "number"
                        },
                        "totalPages": {
                          "type": "number"
                        },
                        "hasNext": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "totalPages",
                        "hasNext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}": {
      "get": {
        "summary": "Busca uma conexão do app",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "whatsapp"
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "active",
                            "error",
                            "disconnected"
                          ]
                        },
                        "errorCode": {
                          "nullable": true,
                          "type": "string"
                        },
                        "workspaceId": {
                          "type": "string"
                        },
                        "whatsapp": {
                          "nullable": true,
                          "type": "object",
                          "properties": {
                            "wabaId": {
                              "type": "string"
                            },
                            "phoneNumberId": {
                              "type": "string"
                            },
                            "displayPhoneNumber": {
                              "type": "string"
                            },
                            "verifiedName": {
                              "nullable": true,
                              "type": "string"
                            },
                            "isOnBizApp": {
                              "type": "boolean"
                            },
                            "qualityRating": {
                              "nullable": true,
                              "type": "string"
                            }
                          },
                          "required": [
                            "wabaId",
                            "phoneNumberId",
                            "displayPhoneNumber",
                            "verifiedName",
                            "isOnBizApp",
                            "qualityRating"
                          ],
                          "additionalProperties": false
                        },
                        "sync": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "progress": {
                                "nullable": true,
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "type",
                              "status",
                              "progress"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "tokenExpiresAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "health": {
                          "nullable": true,
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string"
                            },
                            "issues": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "entityType": {
                                    "type": "string"
                                  },
                                  "canSendMessage": {
                                    "nullable": true,
                                    "type": "string"
                                  },
                                  "errors": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "code": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "description": {
                                          "nullable": true,
                                          "type": "string"
                                        },
                                        "solution": {
                                          "nullable": true,
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "code",
                                        "description",
                                        "solution"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "additionalInfo": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "entityType",
                                  "canSendMessage",
                                  "errors",
                                  "additionalInfo"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "checkedAt": {
                              "nullable": true,
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "status",
                            "issues",
                            "checkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "status",
                        "errorCode",
                        "workspaceId",
                        "whatsapp",
                        "sync",
                        "tokenExpiresAt",
                        "health",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "connection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Desconecta uma conexão",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "whatsapp"
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "active",
                            "error",
                            "disconnected"
                          ]
                        },
                        "errorCode": {
                          "nullable": true,
                          "type": "string"
                        },
                        "workspaceId": {
                          "type": "string"
                        },
                        "whatsapp": {
                          "nullable": true,
                          "type": "object",
                          "properties": {
                            "wabaId": {
                              "type": "string"
                            },
                            "phoneNumberId": {
                              "type": "string"
                            },
                            "displayPhoneNumber": {
                              "type": "string"
                            },
                            "verifiedName": {
                              "nullable": true,
                              "type": "string"
                            },
                            "isOnBizApp": {
                              "type": "boolean"
                            },
                            "qualityRating": {
                              "nullable": true,
                              "type": "string"
                            }
                          },
                          "required": [
                            "wabaId",
                            "phoneNumberId",
                            "displayPhoneNumber",
                            "verifiedName",
                            "isOnBizApp",
                            "qualityRating"
                          ],
                          "additionalProperties": false
                        },
                        "sync": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "progress": {
                                "nullable": true,
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "type",
                              "status",
                              "progress"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "tokenExpiresAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "health": {
                          "nullable": true,
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string"
                            },
                            "issues": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "entityType": {
                                    "type": "string"
                                  },
                                  "canSendMessage": {
                                    "nullable": true,
                                    "type": "string"
                                  },
                                  "errors": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "code": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "description": {
                                          "nullable": true,
                                          "type": "string"
                                        },
                                        "solution": {
                                          "nullable": true,
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "code",
                                        "description",
                                        "solution"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "additionalInfo": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "entityType",
                                  "canSendMessage",
                                  "errors",
                                  "additionalInfo"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "checkedAt": {
                              "nullable": true,
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "status",
                            "issues",
                            "checkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "status",
                        "errorCode",
                        "workspaceId",
                        "whatsapp",
                        "sync",
                        "tokenExpiresAt",
                        "health",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "connection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/consumption": {
      "get": {
        "summary": "Mensagens entregues no mês por categoria e tipo de cobrança, contadas pelo hub e pela Meta",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
            },
            "in": "query",
            "name": "month",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "consumption": {
                      "type": "object",
                      "properties": {
                        "month": {
                          "type": "string"
                        },
                        "timezone": {
                          "type": "string"
                        },
                        "currency": {
                          "nullable": true,
                          "type": "string"
                        },
                        "hub": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "category": {
                                "type": "string"
                              },
                              "type": {
                                "nullable": true,
                                "type": "string"
                              },
                              "delivered": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "category",
                              "type",
                              "delivered"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "meta": {
                          "nullable": true,
                          "type": "object",
                          "properties": {
                            "fetchedAt": {
                              "type": "string",
                              "format": "date-time"
                            },
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "category": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "type": "string"
                                  },
                                  "country": {
                                    "type": "string"
                                  },
                                  "tier": {
                                    "nullable": true,
                                    "type": "string"
                                  },
                                  "volume": {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "category",
                                  "type",
                                  "country",
                                  "tier",
                                  "volume"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "fetchedAt",
                            "items"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "month",
                        "timezone",
                        "currency",
                        "hub",
                        "meta"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "consumption"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/media": {
      "post": {
        "summary": "Sobe uma mídia de saída (corpo cru, Content-Type = MIME do arquivo, X-Filename opcional)",
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "media": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "mimeType": {
                          "type": "string"
                        },
                        "size": {
                          "nullable": true,
                          "type": "number"
                        },
                        "sha256": {
                          "nullable": true,
                          "type": "string"
                        },
                        "expiresAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "mimeType",
                        "size",
                        "sha256",
                        "expiresAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "media"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "411": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "413": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "415": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "422": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "429": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "502": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/messages": {
      "post": {
        "summary": "Enfileira o envio de uma mensagem (header Idempotency-Key)",
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "text"
                        ]
                      },
                      "text": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4096
                          },
                          "previewUrl": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "body"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "text"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "image"
                        ]
                      },
                      "image": {
                        "type": "object",
                        "properties": {
                          "mediaId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "caption": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          }
                        },
                        "required": [
                          "mediaId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "image"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "video"
                        ]
                      },
                      "video": {
                        "type": "object",
                        "properties": {
                          "mediaId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "caption": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          }
                        },
                        "required": [
                          "mediaId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "video"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "document"
                        ]
                      },
                      "document": {
                        "type": "object",
                        "properties": {
                          "mediaId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "caption": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "filename": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 240
                          }
                        },
                        "required": [
                          "mediaId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "document"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "audio"
                        ]
                      },
                      "audio": {
                        "type": "object",
                        "properties": {
                          "mediaId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "voice": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "mediaId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "audio"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "sticker"
                        ]
                      },
                      "sticker": {
                        "type": "object",
                        "properties": {
                          "mediaId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          }
                        },
                        "required": [
                          "mediaId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "sticker"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "location"
                        ]
                      },
                      "location": {
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "address": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "location"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "contacts"
                        ]
                      },
                      "contacts": {
                        "minItems": 1,
                        "maxItems": 257,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "object",
                              "properties": {
                                "formattedName": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "firstName": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "lastName": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "middleName": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "suffix": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "prefix": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "formattedName"
                              ],
                              "additionalProperties": false
                            },
                            "phones": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "type": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "waId": {
                                    "type": "string",
                                    "pattern": "^\\d{1,20}$"
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "emails": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "email": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "type": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "urls": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "url": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "type": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "addresses": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "street": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "city": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "state": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "zip": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "country": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "countryCode": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "type": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "org": {
                              "type": "object",
                              "properties": {
                                "company": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "department": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "title": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "additionalProperties": false
                            },
                            "birthday": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "contacts"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "interactive"
                        ]
                      },
                      "interactive": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "buttons"
                                ]
                              },
                              "header": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "enum": [
                                          "text"
                                        ]
                                      },
                                      "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 60
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "text"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "enum": [
                                          "image",
                                          "video",
                                          "document"
                                        ]
                                      },
                                      "mediaId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64
                                      },
                                      "filename": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 240
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "mediaId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "body": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "footer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 60
                              },
                              "buttons": {
                                "minItems": 1,
                                "maxItems": 3,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 256
                                    },
                                    "title": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 20
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "title"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "kind",
                              "body",
                              "buttons"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "list"
                                ]
                              },
                              "header": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "text"
                                    ]
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "required": [
                                  "type",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "body": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4096
                              },
                              "footer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 60
                              },
                              "button": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "sections": {
                                "minItems": 1,
                                "maxItems": 10,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "title": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 24
                                    },
                                    "rows": {
                                      "minItems": 1,
                                      "maxItems": 10,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 24
                                          },
                                          "description": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 72
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "rows"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "kind",
                              "body",
                              "button",
                              "sections"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "cta_url"
                                ]
                              },
                              "header": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "type": "string",
                                    "enum": [
                                      "text"
                                    ]
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "required": [
                                  "type",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "body": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "footer": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 60
                              },
                              "displayText": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "url": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "kind",
                              "body",
                              "displayText",
                              "url"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "interactive"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "reaction"
                        ]
                      },
                      "reaction": {
                        "type": "object",
                        "properties": {
                          "wamid": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "emoji": {
                            "type": "string",
                            "maxLength": 16
                          }
                        },
                        "required": [
                          "wamid",
                          "emoji"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "reaction"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "to": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
                          },
                          "phone": {
                            "type": "string",
                            "pattern": "^\\+?\\d{8,15}$"
                          }
                        },
                        "additionalProperties": false
                      },
                      "replyTo": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "template"
                        ]
                      },
                      "template": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "templateId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64
                              },
                              "parameters": {
                                "type": "object",
                                "properties": {
                                  "header": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "enum": [
                                              "text"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 60
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "value"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "enum": [
                                              "image",
                                              "video",
                                              "document"
                                            ]
                                          },
                                          "mediaId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 64
                                          },
                                          "filename": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 240
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "mediaId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "enum": [
                                              "location"
                                            ]
                                          },
                                          "latitude": {
                                            "type": "number",
                                            "minimum": -90,
                                            "maximum": 90
                                          },
                                          "longitude": {
                                            "type": "number",
                                            "minimum": -180,
                                            "maximum": 180
                                          },
                                          "name": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "address": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "latitude",
                                          "longitude"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "body": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "pattern": "^[a-z0-9_]{1,64}$"
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        }
                                      },
                                      "required": [
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "buttons": {
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "index": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9
                                        },
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "quick_reply",
                                            "url",
                                            "copy_code"
                                          ]
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "index",
                                        "type",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "templateId"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "pattern": "^[a-z0-9_]{1,512}$"
                              },
                              "language": {
                                "type": "string",
                                "pattern": "^[A-Za-z_-]{2,15}$"
                              },
                              "parameters": {
                                "type": "object",
                                "properties": {
                                  "header": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "enum": [
                                              "text"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 60
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "value"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "enum": [
                                              "image",
                                              "video",
                                              "document"
                                            ]
                                          },
                                          "mediaId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 64
                                          },
                                          "filename": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 240
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "mediaId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "enum": [
                                              "location"
                                            ]
                                          },
                                          "latitude": {
                                            "type": "number",
                                            "minimum": -90,
                                            "maximum": 90
                                          },
                                          "longitude": {
                                            "type": "number",
                                            "minimum": -180,
                                            "maximum": 180
                                          },
                                          "name": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "address": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "latitude",
                                          "longitude"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "body": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "pattern": "^[a-z0-9_]{1,64}$"
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        }
                                      },
                                      "required": [
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "buttons": {
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "index": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9
                                        },
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "quick_reply",
                                            "url",
                                            "copy_code"
                                          ]
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "index",
                                        "type",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "language"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "required": [
                      "to",
                      "type",
                      "template"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "connectionId": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "sending",
                            "accepted",
                            "failed",
                            "uncertain",
                            "abandoned"
                          ]
                        },
                        "route": {
                          "type": "string",
                          "enum": [
                            "messages",
                            "marketing_messages"
                          ]
                        },
                        "wamid": {
                          "nullable": true,
                          "type": "string"
                        },
                        "pacing": {
                          "nullable": true,
                          "type": "string"
                        },
                        "errorCode": {
                          "nullable": true,
                          "type": "string"
                        },
                        "metaErrorCode": {
                          "nullable": true,
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "deliveryState": {
                          "nullable": true,
                          "type": "string",
                          "enum": [
                            "sent",
                            "delivered",
                            "read",
                            "played",
                            "failed"
                          ]
                        },
                        "deliveryStateAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "connectionId",
                        "type",
                        "state",
                        "route",
                        "wamid",
                        "pacing",
                        "errorCode",
                        "metaErrorCode",
                        "deliveryState",
                        "deliveryStateAt",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "202": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "connectionId": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "sending",
                            "accepted",
                            "failed",
                            "uncertain",
                            "abandoned"
                          ]
                        },
                        "route": {
                          "type": "string",
                          "enum": [
                            "messages",
                            "marketing_messages"
                          ]
                        },
                        "wamid": {
                          "nullable": true,
                          "type": "string"
                        },
                        "pacing": {
                          "nullable": true,
                          "type": "string"
                        },
                        "errorCode": {
                          "nullable": true,
                          "type": "string"
                        },
                        "metaErrorCode": {
                          "nullable": true,
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "deliveryState": {
                          "nullable": true,
                          "type": "string",
                          "enum": [
                            "sent",
                            "delivered",
                            "read",
                            "played",
                            "failed"
                          ]
                        },
                        "deliveryStateAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "connectionId",
                        "type",
                        "state",
                        "route",
                        "wamid",
                        "pacing",
                        "errorCode",
                        "metaErrorCode",
                        "deliveryState",
                        "deliveryStateAt",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "410": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "422": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Lista as mensagens enviadas pela conexão",
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "schema": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "in": "query",
            "name": "page",
            "required": false
          },
          {
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "limit",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9._:-]{1,128}$"
            },
            "in": "query",
            "name": "idempotencyKey",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "sending",
                "accepted",
                "failed",
                "uncertain",
                "abandoned"
              ]
            },
            "in": "query",
            "name": "state",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "connectionId": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "sending",
                              "accepted",
                              "failed",
                              "uncertain",
                              "abandoned"
                            ]
                          },
                          "route": {
                            "type": "string",
                            "enum": [
                              "messages",
                              "marketing_messages"
                            ]
                          },
                          "wamid": {
                            "nullable": true,
                            "type": "string"
                          },
                          "pacing": {
                            "nullable": true,
                            "type": "string"
                          },
                          "errorCode": {
                            "nullable": true,
                            "type": "string"
                          },
                          "metaErrorCode": {
                            "nullable": true,
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "deliveryState": {
                            "nullable": true,
                            "type": "string",
                            "enum": [
                              "sent",
                              "delivered",
                              "read",
                              "played",
                              "failed"
                            ]
                          },
                          "deliveryStateAt": {
                            "nullable": true,
                            "type": "string",
                            "format": "date-time"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "connectionId",
                          "type",
                          "state",
                          "route",
                          "wamid",
                          "pacing",
                          "errorCode",
                          "metaErrorCode",
                          "deliveryState",
                          "deliveryStateAt",
                          "createdAt",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "page": {
                          "type": "number"
                        },
                        "limit": {
                          "type": "number"
                        },
                        "totalPages": {
                          "type": "number"
                        },
                        "hasNext": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "totalPages",
                        "hasNext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/messages/{messageId}": {
      "get": {
        "summary": "Busca uma mensagem enviada",
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "messageId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "connectionId": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "sending",
                            "accepted",
                            "failed",
                            "uncertain",
                            "abandoned"
                          ]
                        },
                        "route": {
                          "type": "string",
                          "enum": [
                            "messages",
                            "marketing_messages"
                          ]
                        },
                        "wamid": {
                          "nullable": true,
                          "type": "string"
                        },
                        "pacing": {
                          "nullable": true,
                          "type": "string"
                        },
                        "errorCode": {
                          "nullable": true,
                          "type": "string"
                        },
                        "metaErrorCode": {
                          "nullable": true,
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "deliveryState": {
                          "nullable": true,
                          "type": "string",
                          "enum": [
                            "sent",
                            "delivered",
                            "read",
                            "played",
                            "failed"
                          ]
                        },
                        "deliveryStateAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "connectionId",
                        "type",
                        "state",
                        "route",
                        "wamid",
                        "pacing",
                        "errorCode",
                        "metaErrorCode",
                        "deliveryState",
                        "deliveryStateAt",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/read-receipts": {
      "post": {
        "summary": "Marca uma mensagem recebida como lida",
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wamid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "typingIndicator": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "wamid"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "enum": [
                        true
                      ]
                    }
                  },
                  "required": [
                    "success"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "422": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "502": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/templates": {
      "get": {
        "summary": "Lista os templates da conta da conexão (cache do hub)",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "schema": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "in": "query",
            "name": "page",
            "required": false
          },
          {
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "limit",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "query",
            "name": "status",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "query",
            "name": "category",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 15
            },
            "in": "query",
            "name": "language",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "in": "query",
            "name": "name",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "language": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "parameterFormat": {
                            "type": "string"
                          },
                          "components": {
                            "type": "array",
                            "items": {}
                          },
                          "qualityScore": {
                            "nullable": true,
                            "type": "string"
                          },
                          "rejectedReason": {
                            "nullable": true,
                            "type": "string"
                          },
                          "correctCategory": {
                            "nullable": true,
                            "type": "string"
                          },
                          "pendingCategoryAt": {
                            "nullable": true,
                            "type": "string",
                            "format": "date-time"
                          },
                          "syncedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "language",
                          "category",
                          "status",
                          "parameterFormat",
                          "components",
                          "qualityScore",
                          "rejectedReason",
                          "correctCategory",
                          "pendingCategoryAt",
                          "syncedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "page": {
                          "type": "number"
                        },
                        "limit": {
                          "type": "number"
                        },
                        "totalPages": {
                          "type": "number"
                        },
                        "hasNext": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "totalPages",
                        "hasNext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Cria um template na conta (vai para a revisão da Meta)",
        "tags": [
          "Templates"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "pattern": "^[a-z0-9_]{1,512}$"
                      },
                      "language": {
                        "type": "string",
                        "enum": [
                          "af",
                          "sq",
                          "ar",
                          "ar_EG",
                          "ar_AE",
                          "ar_LB",
                          "ar_MA",
                          "ar_QA",
                          "az",
                          "be_BY",
                          "bn",
                          "bn_IN",
                          "bg",
                          "ca",
                          "zh_CN",
                          "zh_HK",
                          "zh_TW",
                          "hr",
                          "cs",
                          "da",
                          "prs_AF",
                          "nl",
                          "nl_BE",
                          "en",
                          "en_GB",
                          "en_US",
                          "en_AE",
                          "en_AU",
                          "en_CA",
                          "en_GH",
                          "en_IE",
                          "en_IN",
                          "en_JM",
                          "en_MY",
                          "en_NZ",
                          "en_QA",
                          "en_SG",
                          "en_UG",
                          "en_ZA",
                          "et",
                          "fil",
                          "fi",
                          "fr",
                          "fr_BE",
                          "fr_CA",
                          "fr_CH",
                          "fr_CI",
                          "fr_MA",
                          "ka",
                          "de",
                          "de_AT",
                          "de_CH",
                          "el",
                          "gu",
                          "ha",
                          "he",
                          "hi",
                          "hu",
                          "id",
                          "ga",
                          "it",
                          "ja",
                          "kn",
                          "kk",
                          "rw_RW",
                          "ko",
                          "ky_KG",
                          "lo",
                          "lv",
                          "lt",
                          "mk",
                          "ms",
                          "ml",
                          "mr",
                          "nb",
                          "ps_AF",
                          "fa",
                          "pl",
                          "pt_BR",
                          "pt_PT",
                          "pa",
                          "ro",
                          "ru",
                          "sr",
                          "si_LK",
                          "sk",
                          "sl",
                          "es",
                          "es_AR",
                          "es_CL",
                          "es_CO",
                          "es_CR",
                          "es_DO",
                          "es_EC",
                          "es_HN",
                          "es_MX",
                          "es_PA",
                          "es_PE",
                          "es_ES",
                          "es_UY",
                          "sw",
                          "sv",
                          "ta",
                          "te",
                          "th",
                          "tr",
                          "uk",
                          "ur",
                          "uz",
                          "vi",
                          "zu"
                        ]
                      },
                      "ttlSeconds": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "category": {
                        "type": "string",
                        "enum": [
                          "MARKETING",
                          "UTILITY"
                        ]
                      },
                      "parameterFormat": {
                        "default": "POSITIONAL",
                        "type": "string",
                        "enum": [
                          "POSITIONAL",
                          "NAMED"
                        ]
                      },
                      "header": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "format": {
                                "type": "string",
                                "enum": [
                                  "TEXT"
                                ]
                              },
                              "text": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 60
                              },
                              "example": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "format",
                              "text"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "format": {
                                "type": "string",
                                "enum": [
                                  "LOCATION"
                                ]
                              }
                            },
                            "required": [
                              "format"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "format": {
                                "type": "string",
                                "enum": [
                                  "IMAGE",
                                  "VIDEO",
                                  "DOCUMENT"
                                ]
                              }
                            },
                            "required": [
                              "format"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "body": {
                        "type": "object",
                        "properties": {
                          "text": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "examples": {
                            "anyOf": [
                              {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            ]
                          }
                        },
                        "required": [
                          "text"
                        ],
                        "additionalProperties": false
                      },
                      "footer": {
                        "type": "object",
                        "properties": {
                          "text": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          }
                        },
                        "required": [
                          "text"
                        ],
                        "additionalProperties": false
                      },
                      "buttons": {
                        "minItems": 1,
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "QUICK_REPLY"
                                  ]
                                },
                                "text": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 25
                                }
                              },
                              "required": [
                                "type",
                                "text"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "URL"
                                  ]
                                },
                                "text": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 25
                                },
                                "url": {
                                  "type": "string",
                                  "maxLength": 2000,
                                  "format": "uri"
                                },
                                "example": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "type",
                                "text",
                                "url"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "PHONE_NUMBER"
                                  ]
                                },
                                "text": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 25
                                },
                                "phoneNumber": {
                                  "type": "string",
                                  "pattern": "^\\+?\\d{6,20}$"
                                }
                              },
                              "required": [
                                "type",
                                "text",
                                "phoneNumber"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "COPY_CODE"
                                  ]
                                },
                                "example": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 20
                                }
                              },
                              "required": [
                                "type",
                                "example"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    },
                    "required": [
                      "name",
                      "language",
                      "category",
                      "body"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "pattern": "^[a-z0-9_]{1,512}$"
                      },
                      "language": {
                        "type": "string",
                        "enum": [
                          "af",
                          "sq",
                          "ar",
                          "ar_EG",
                          "ar_AE",
                          "ar_LB",
                          "ar_MA",
                          "ar_QA",
                          "az",
                          "be_BY",
                          "bn",
                          "bn_IN",
                          "bg",
                          "ca",
                          "zh_CN",
                          "zh_HK",
                          "zh_TW",
                          "hr",
                          "cs",
                          "da",
                          "prs_AF",
                          "nl",
                          "nl_BE",
                          "en",
                          "en_GB",
                          "en_US",
                          "en_AE",
                          "en_AU",
                          "en_CA",
                          "en_GH",
                          "en_IE",
                          "en_IN",
                          "en_JM",
                          "en_MY",
                          "en_NZ",
                          "en_QA",
                          "en_SG",
                          "en_UG",
                          "en_ZA",
                          "et",
                          "fil",
                          "fi",
                          "fr",
                          "fr_BE",
                          "fr_CA",
                          "fr_CH",
                          "fr_CI",
                          "fr_MA",
                          "ka",
                          "de",
                          "de_AT",
                          "de_CH",
                          "el",
                          "gu",
                          "ha",
                          "he",
                          "hi",
                          "hu",
                          "id",
                          "ga",
                          "it",
                          "ja",
                          "kn",
                          "kk",
                          "rw_RW",
                          "ko",
                          "ky_KG",
                          "lo",
                          "lv",
                          "lt",
                          "mk",
                          "ms",
                          "ml",
                          "mr",
                          "nb",
                          "ps_AF",
                          "fa",
                          "pl",
                          "pt_BR",
                          "pt_PT",
                          "pa",
                          "ro",
                          "ru",
                          "sr",
                          "si_LK",
                          "sk",
                          "sl",
                          "es",
                          "es_AR",
                          "es_CL",
                          "es_CO",
                          "es_CR",
                          "es_DO",
                          "es_EC",
                          "es_HN",
                          "es_MX",
                          "es_PA",
                          "es_PE",
                          "es_ES",
                          "es_UY",
                          "sw",
                          "sv",
                          "ta",
                          "te",
                          "th",
                          "tr",
                          "uk",
                          "ur",
                          "uz",
                          "vi",
                          "zu"
                        ]
                      },
                      "ttlSeconds": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "category": {
                        "type": "string",
                        "enum": [
                          "AUTHENTICATION"
                        ]
                      },
                      "addSecurityRecommendation": {
                        "type": "boolean"
                      },
                      "codeExpirationMinutes": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 90
                      },
                      "buttonText": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 25
                      }
                    },
                    "required": [
                      "name",
                      "language",
                      "category"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "template": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "language": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "parameterFormat": {
                          "type": "string"
                        },
                        "components": {
                          "type": "array",
                          "items": {}
                        },
                        "qualityScore": {
                          "nullable": true,
                          "type": "string"
                        },
                        "rejectedReason": {
                          "nullable": true,
                          "type": "string"
                        },
                        "correctCategory": {
                          "nullable": true,
                          "type": "string"
                        },
                        "pendingCategoryAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "syncedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "language",
                        "category",
                        "status",
                        "parameterFormat",
                        "components",
                        "qualityScore",
                        "rejectedReason",
                        "correctCategory",
                        "pendingCategoryAt",
                        "syncedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "template"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "403": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "422": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "429": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "502": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/templates/{templateId}": {
      "get": {
        "summary": "Busca um template do cache",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "templateId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "template": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "language": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "parameterFormat": {
                          "type": "string"
                        },
                        "components": {
                          "type": "array",
                          "items": {}
                        },
                        "qualityScore": {
                          "nullable": true,
                          "type": "string"
                        },
                        "rejectedReason": {
                          "nullable": true,
                          "type": "string"
                        },
                        "correctCategory": {
                          "nullable": true,
                          "type": "string"
                        },
                        "pendingCategoryAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        },
                        "syncedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "language",
                        "category",
                        "status",
                        "parameterFormat",
                        "components",
                        "qualityScore",
                        "rejectedReason",
                        "correctCategory",
                        "pendingCategoryAt",
                        "syncedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "template"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Exclui um template (só o idioma dele)",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "templateId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    null
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "422": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "429": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "502": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/templates/sync": {
      "post": {
        "summary": "Pede a sincronização dos templates da conta (no máximo uma a cada 5 min)",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "202": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "queued",
                        "recent"
                      ]
                    },
                    "syncedAt": {
                      "nullable": true,
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "status",
                    "syncedAt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/usage": {
      "get": {
        "summary": "Uso do nível gratuito de mensagens de serviço no mês",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "usage": {
                      "type": "object",
                      "properties": {
                        "month": {
                          "type": "string"
                        },
                        "timezone": {
                          "type": "string"
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "delivered": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "free": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "charged": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "remaining": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "exhausted": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "month",
                        "timezone",
                        "limit",
                        "delivered",
                        "free",
                        "charged",
                        "remaining",
                        "exhausted"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "usage"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connectionId}/windows": {
      "get": {
        "summary": "Janela de atendimento de 24 h de um contato",
        "tags": [
          "Messages"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
            },
            "in": "query",
            "name": "userId",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^\\+?\\d{8,15}$"
            },
            "in": "query",
            "name": "phone",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "connectionId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "window": {
                      "nullable": true,
                      "type": "object",
                      "properties": {
                        "open": {
                          "type": "boolean"
                        },
                        "expiresAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "freeEntryPoint": {
                          "nullable": true,
                          "type": "object",
                          "properties": {
                            "expiresAt": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "expiresAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "open",
                        "expiresAt",
                        "freeEntryPoint"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "window"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          }
        }
      }
    },
    "/v1/events": {
      "get": {
        "summary": "Lista as entregas de webhook do app",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "schema": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "in": "query",
            "name": "page",
            "required": false
          },
          {
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "limit",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "delivered",
                "failed"
              ]
            },
            "in": "query",
            "name": "status",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "query",
            "name": "type",
            "required": false
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "eventId": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "workspaceId": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "delivered",
                              "failed"
                            ]
                          },
                          "attempts": {
                            "type": "number"
                          },
                          "lastStatusCode": {
                            "nullable": true,
                            "type": "number"
                          },
                          "nextAttemptAt": {
                            "nullable": true,
                            "type": "string",
                            "format": "date-time"
                          },
                          "deliveredAt": {
                            "nullable": true,
                            "type": "string",
                            "format": "date-time"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "eventId",
                          "type",
                          "workspaceId",
                          "status",
                          "attempts",
                          "lastStatusCode",
                          "nextAttemptAt",
                          "deliveredAt",
                          "createdAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "page": {
                          "type": "number"
                        },
                        "limit": {
                          "type": "number"
                        },
                        "totalPages": {
                          "type": "number"
                        },
                        "hasNext": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "totalPages",
                        "hasNext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/events/{deliveryId}/redeliver": {
      "post": {
        "summary": "Reenvia uma entrega de webhook",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "deliveryId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "202": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "status"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/me": {
      "get": {
        "summary": "App autenticado pela chave de API",
        "tags": [
          "Me"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "app": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "app"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/media/{mediaId}": {
      "get": {
        "summary": "Busca uma mídia e a URL assinada de download",
        "tags": [
          "Media"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "mediaId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "media": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "direction": {
                          "type": "string",
                          "enum": [
                            "inbound",
                            "outbound"
                          ]
                        },
                        "mimeType": {
                          "type": "string"
                        },
                        "size": {
                          "nullable": true,
                          "type": "number"
                        },
                        "sha256": {
                          "nullable": true,
                          "type": "string"
                        },
                        "filename": {
                          "nullable": true,
                          "type": "string"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "url": {
                          "nullable": true,
                          "type": "string"
                        },
                        "urlExpiresAt": {
                          "nullable": true,
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "direction",
                        "mimeType",
                        "size",
                        "sha256",
                        "filename",
                        "createdAt",
                        "url",
                        "urlExpiresAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "media"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "410": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "errorCode": {
                      "nullable": true,
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message",
                    "errorCode"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces": {
      "post": {
        "summary": "Cria (ou devolve) o workspace de um cliente final",
        "tags": [
          "Workspaces"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "externalId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9._:-]+$"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "required": [
                  "externalId",
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "workspace": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "externalId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "active",
                            "disabled"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "externalId",
                        "name",
                        "status",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workspace"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "201": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "workspace": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "externalId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "active",
                            "disabled"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "externalId",
                        "name",
                        "status",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workspace"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Lista os workspaces do app",
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "schema": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "in": "query",
            "name": "page",
            "required": false
          },
          {
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "limit",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "in": "query",
            "name": "externalId",
            "required": false
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "externalId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "disabled"
                            ]
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "externalId",
                          "name",
                          "status",
                          "createdAt",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "page": {
                          "type": "number"
                        },
                        "limit": {
                          "type": "number"
                        },
                        "totalPages": {
                          "type": "number"
                        },
                        "hasNext": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "total",
                        "page",
                        "limit",
                        "totalPages",
                        "hasNext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "data",
                    "meta"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces/{workspaceId}": {
      "get": {
        "summary": "Busca um workspace do app",
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "workspaceId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "workspace": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "externalId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "active",
                            "disabled"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "externalId",
                        "name",
                        "status",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workspace"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Renomeia um workspace",
        "tags": [
          "Workspaces"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "workspaceId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "workspace": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "externalId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "active",
                            "disabled"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "externalId",
                        "name",
                        "status",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workspace"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces/{workspaceId}/connect-sessions": {
      "post": {
        "summary": "Abre uma sessão de conexão do WhatsApp para o workspace",
        "tags": [
          "Connections"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "whatsapp"
                    ]
                  },
                  "returnUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2048
                  }
                },
                "required": [
                  "kind",
                  "returnUrl"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "workspaceId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "url",
                    "expiresAt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "number"
                    },
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "statusCode",
                    "error",
                    "code",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces/{workspaceId}/deactivate": {
      "post": {
        "summary": "Desativa um workspace (idempotente)",
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "in": "path",
            "name": "workspaceId",
            "required": true
          }
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "workspace": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "externalId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "active",
                            "disabled"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "required": [
                        "id",
                        "externalId",
                        "name",
                        "status",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workspace"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    }
  }
}
