Capabilities

Estrutura de dados do contrato OpenAPI.

Estrutura de dados do contrato OpenAPI.

Campos

CampoTipoPresençaDescrição
servicestringobrigatórioValores: "AtendroZAP"
statusstringobrigatórioValores: "laboratory"
workerstringopcional—
engineobjectopcional—
capabilitiesobjectobrigatório—
capabilities.callsbooleanopcionalHabilitado neste worker por ATENDROZAP_CALLS_ENABLED; exige instância calls.
capabilities.ptt_transcodingbooleanopcionalValores: false
capabilities.call_historybooleanopcional—
capabilities.call_recordingbooleanopcionalGravação automática das chamadas atendidas habilitada neste worker.
capabilities.calls_per_instance_limitbooleanopcionalPermite configurar callsMaxConcurrent por instância, sem reiniciar a sessão.
capabilities.calls_videobooleanopcionalChamadas de vídeo, upgrade no meio da ligação e ponte GET /call/{id}/video habilitados neste worker por ATENDROZAP_CALLS_VIDEO_ENABLED (exige calls). Recurso experimental até a homologação em laboratório.
capabilities.calls_settings_webhookbooleanopcionalAnuncia call_settings com limite/versionamento em outbox atômica e callsConfigVersion em objetos instance. Exige inscrição explícita em call_settings; connection pode trazer o snapshot opcional em instance.
capabilities.calls_video_recordingbooleanopcionalCaptura de vídeo e geração de MP4 lado a lado habilitadas neste worker por ATENDROZAP_CALLS_VIDEO_RECORDING_ENABLED. Opt-in: requer calls_video, call_recording, FFmpeg e ffprobe. Não implica homologação em celulares reais.
capabilities.calls_incoming_policybooleanopcionalPermite configurar incomingCallMode, comparar expectedCallsConfigVersion e receber decisões de recusa automática com metadados por chamada. Não garante envio de mensagem pelo consumidor nem homologação de áudio recebido.
interactiveobjectopcional—
webhookEventsobjectopcional—
webhookEvents.deliveredarray<string>opcional—
webhookEvents.ignoredarray<string>opcional—
instance_kindsarray<string>opcional—
calls_max_concurrentintegeropcionalPadrão do servidor usado na criação e em instâncias antigas sem limite próprio. Consulte instance.callsMaxConcurrent para o limite efetivo. Mínimo: 0
calls_recording_retention_daysintegeropcionalRetenção das gravações de áudio em dias; 0 desativa exclusão automática do áudio. Vídeo possui prazo independente. Histórico preservado. Mínimo: 0
calls_video_recording_retention_daysintegeropcionalRetenção das gravações MP4 em dias, contados do encerramento da chamada. Padrão 7, independente do áudio. Histórico preservado. Mínimo: 1. Máximo: 3650
calls_max_concurrent_rangeobjectopcional—
calls_max_concurrent_range.minintegerobrigatórioValor fixo: 1
calls_max_concurrent_range.maxintegerobrigatórioValor fixo: 8

Definição OpenAPI

json
{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "AtendroZAP"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "laboratory"
      ]
    },
    "worker": {
      "type": "string"
    },
    "engine": {
      "type": "object"
    },
    "capabilities": {
      "type": "object",
      "properties": {
        "calls": {
          "type": "boolean",
          "description": "Habilitado neste worker por ATENDROZAP_CALLS_ENABLED; exige instância calls."
        },
        "ptt_transcoding": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "call_history": {
          "type": "boolean"
        },
        "call_recording": {
          "type": "boolean",
          "description": "Gravação automática das chamadas atendidas habilitada neste worker."
        },
        "calls_per_instance_limit": {
          "type": "boolean",
          "description": "Permite configurar callsMaxConcurrent por instância, sem reiniciar a sessão."
        },
        "calls_video": {
          "type": "boolean",
          "description": "Chamadas de vídeo, upgrade no meio da ligação e ponte GET /call/{id}/video habilitados neste worker por ATENDROZAP_CALLS_VIDEO_ENABLED (exige calls). Recurso experimental até a homologação em laboratório."
        },
        "calls_settings_webhook": {
          "type": "boolean",
          "description": "Anuncia call_settings com limite/versionamento em outbox atômica e callsConfigVersion em objetos instance. Exige inscrição explícita em call_settings; connection pode trazer o snapshot opcional em instance."
        },
        "calls_video_recording": {
          "type": "boolean",
          "description": "Captura de vídeo e geração de MP4 lado a lado habilitadas neste worker por ATENDROZAP_CALLS_VIDEO_RECORDING_ENABLED. Opt-in: requer calls_video, call_recording, FFmpeg e ffprobe. Não implica homologação em celulares reais."
        },
        "calls_incoming_policy": {
          "type": "boolean",
          "description": "Permite configurar incomingCallMode, comparar expectedCallsConfigVersion e receber decisões de recusa automática com metadados por chamada. Não garante envio de mensagem pelo consumidor nem homologação de áudio recebido."
        }
      },
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "interactive": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "webhookEvents": {
      "type": "object",
      "properties": {
        "delivered": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ignored": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "instance_kinds": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "whatsapp",
          "calls"
        ]
      }
    },
    "calls_max_concurrent": {
      "type": "integer",
      "minimum": 0,
      "description": "Padrão do servidor usado na criação e em instâncias antigas sem limite próprio. Consulte instance.callsMaxConcurrent para o limite efetivo."
    },
    "calls_recording_retention_days": {
      "type": "integer",
      "minimum": 0,
      "description": "Retenção das gravações de áudio em dias; 0 desativa exclusão automática do áudio. Vídeo possui prazo independente. Histórico preservado."
    },
    "calls_video_recording_retention_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3650,
      "description": "Retenção das gravações MP4 em dias, contados do encerramento da chamada. Padrão 7, independente do áudio. Histórico preservado."
    },
    "calls_max_concurrent_range": {
      "type": "object",
      "properties": {
        "min": {
          "type": "integer",
          "const": 1
        },
        "max": {
          "type": "integer",
          "const": 8
        }
      },
      "required": [
        "min",
        "max"
      ]
    }
  },
  "required": [
    "service",
    "status",
    "capabilities"
  ]
}