{
  "manifest_version": "1.0.0",
  "template": {
    "id": "9c08b02f-dfb6-4bcf-9d76-f4b48814d378",
    "slug": "bot-apisws",
    "name": "Bot-ApiSWS",
    "description": "Deploy and Host Bot-ApiSWS with Railway",
    "url": "https://railway.com/deploy/bot-apisws",
    "upstream": {
      "repo_url": "https://github.com/pereyrahugor/Bot-ApiSWS"
    }
  },
  "services": [
    {
      "name": "Bot-ApiSWS",
      "source": {
        "repo": "https://github.com/pereyrahugor/Bot-ApiSWS"
      },
      "needs_volume": false,
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "msjCierre",
      "service": "Bot-ApiSWS",
      "description": "Msj enviado al finalizar el hilo de conversación",
      "secret": false,
      "strategy": "default",
      "default": "Msj de cierre y envio de reporte. 😊 - TEST"
    },
    {
      "key": "ASSISTANT_ID",
      "service": "Bot-ApiSWS",
      "description": "ID de asistente creado en Platform OpenAI",
      "secret": false,
      "strategy": "default",
      "default": "asst_++++++++++"
    },
    {
      "key": "SUPABASE_KEY",
      "service": "Bot-ApiSWS",
      "description": "ApiKey Base de Datos",
      "secret": true,
      "strategy": "default",
      "default": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InlneWljb3pqZXd4YnlpeHRwamxvIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc2ODIzMTEwNSwiZXhwIjoyMDgzODA3MTA1fQ.p6GAb9R5agjjxnL3F_zMkL2CHGMTUK77TrKHn7qeq0o"
    },
    {
      "key": "SUPABASE_URL",
      "service": "Bot-ApiSWS",
      "description": "URL Base de Datos",
      "secret": false,
      "strategy": "default",
      "default": "https://ygyicozjewxbyixtpjlo.supabase.co"
    },
    {
      "key": "SWS_BASE_URL",
      "service": "Bot-ApiSWS",
      "description": "URL endpoint base de servidor SWS",
      "secret": false,
      "strategy": "default",
      "default": "http://demo.chatbot.sistemaws.com"
    },
    {
      "key": "SWS_PASSWORD",
      "service": "Bot-ApiSWS",
      "description": "Clave Bot SWS",
      "secret": true,
      "strategy": "default",
      "default": "demo2024"
    },
    {
      "key": "SWS_USERNAME",
      "service": "Bot-ApiSWS",
      "description": "Usuario Bot SWS",
      "secret": false,
      "strategy": "default",
      "default": "admin"
    },
    {
      "key": "RAILWAY_TOKEN",
      "service": "Bot-ApiSWS",
      "description": "Token API RailWay",
      "secret": true,
      "strategy": "default",
      "default": "d1a5a474-3a18-4f99-a144-19ffee362585"
    },
    {
      "key": "timeOutCierre",
      "service": "Bot-ApiSWS",
      "description": "Tiempo de espera entre el ultimo msj del usuario y el cierre de la comunicación (tambien es el tiempo del primer msj de reconexión)",
      "secret": false,
      "strategy": "default",
      "default": "7"
    },
    {
      "key": "ASSISTANT_NAME",
      "service": "Bot-ApiSWS",
      "description": "Nombre Visible del Asistente en WebChat",
      "secret": false,
      "strategy": "default",
      "default": "Asistente sin Nombre Definido "
    },
    {
      "key": "DOCX_ID_UPDATE",
      "service": "Bot-ApiSWS",
      "description": "ID´s del Documento Drive subidos al Asistente (separados por coma si son varios)",
      "secret": false,
      "strategy": "default",
      "default": "default"
    },
    {
      "key": "OPENAI_API_KEY",
      "service": "Bot-ApiSWS",
      "description": "APIKEY de asistente de Platform OpenAI",
      "secret": true,
      "strategy": "default",
      "default": "sk-proj-+++++++++"
    },
    {
      "key": "SHEET_ID_UPDATE",
      "service": "Bot-ApiSWS",
      "description": "ID´s del Sheets Drive subidos al Asistente como Json (separados por coma si son varios)",
      "secret": false,
      "strategy": "default",
      "default": "default"
    },
    {
      "key": "VECTOR_STORE_ID",
      "service": "Bot-ApiSWS",
      "description": "ID del Vector Store OpenAI",
      "secret": false,
      "strategy": "default",
      "default": "vs_++++++++++"
    },
    {
      "key": "msjSeguimiento1",
      "service": "Bot-ApiSWS",
      "description": "Personaliza el primer msj de seguimiento",
      "secret": false,
      "strategy": "default",
      "default": "MSJ 1 de Seguimiento.\\n(Este es un mensaje de seguimiento 😉)"
    },
    {
      "key": "msjSeguimiento2",
      "service": "Bot-ApiSWS",
      "description": "Personaliza el segundo msj de seguimiento",
      "secret": false,
      "strategy": "default",
      "default": "MSJ 2 de seguimiento, \\nSigo aquí para ayudarte a optimizar ventas"
    },
    {
      "key": "msjSeguimiento3",
      "service": "Bot-ApiSWS",
      "description": "Personaliza el msj de seguimiento Final",
      "secret": false,
      "strategy": "default",
      "default": "Msj 3 de seguimiento.\\n\\nAquí estoy para potenciar tus ventas, hablemos que puedo hacer por tu negocio."
    },
    {
      "key": "ASSISTANT_ID_IMG",
      "service": "Bot-ApiSWS",
      "description": "ID Asistente Especialista en Imagenes",
      "secret": false,
      "strategy": "default",
      "default": "asst_xHtjJK7Kt2mnw3jmiYa9PMyr"
    },
    {
      "key": "BACKOFFICE_TOKEN",
      "service": "Bot-ApiSWS",
      "description": "Token de acceso al BackOffice (CRM)",
      "secret": true,
      "strategy": "default",
      "default": "MonoTest2026"
    },
    {
      "key": "ID_GRUPO_RESUMEN",
      "service": "Bot-ApiSWS",
      "description": "JID (Identificador Unico) de Grupo WS donde enviar reportes",
      "secret": false,
      "strategy": "default",
      "default": "0000000000000@g.us"
    },
    {
      "key": "SHEET_ID_RESUMEN",
      "service": "Bot-ApiSWS",
      "description": "ID Sheets donde se guarda los resumen (Hoja1)",
      "secret": false,
      "strategy": "default",
      "default": "default"
    },
    {
      "key": "GOOGLE_CALENDAR_ID",
      "service": "Bot-ApiSWS",
      "description": "ID Calendar google",
      "secret": false,
      "strategy": "default",
      "default": "primary"
    },
    {
      "key": "GOOGLE_PRIVATE_KEY",
      "service": "Bot-ApiSWS",
      "description": "Clave Privada de Servico Google",
      "secret": true,
      "strategy": "default",
      "default": "-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6ifEL7kVO7ytN\\nN8MoSVcuUTgOvEl7nazqYEUoHCbwZp+2pHeMXuoYR2rQ9f939d50l7OyqeOs5YgK\\n8ly3vQOqNLt7FgagD16bJVnFbIN8TFcGbmFkitMUBVL4KM6WPZS3aprGzlyE0Bxu\\nC4vEb5K0dzOxkFuYkkPsIX5nAqGs5bCj+rg5s8jbJCvY+Ka74CsIeBnCWQVIMV5/\\nVOfcv5QEmXYoiLKt5xV/XeEih4YRXrQchIjxLCGeShgw7WI2CV3Y1YallRH1SOgc\\nF1gSxCnZNa0m0vJDYGmu7nV1EGO4VQwFnvFcgxrgzruQOVqncYZGNkVXkDefubKV\\n1pdc1h8rAgMBAAECggEAErwD34TgpRrUKH8vNH6ZKOezT5eNccLWOPvONkcNihtk\\ncv11nD10GVgi3DW4oJ2q597Mh2cUnKq4zRCmSzXKhm+hXK1LoQuqHr7Tk0Zgtj0c\\niGLRmT1wEZSvTokapnAs3XbxcIINPLGCCXNTaDkkbMeEA5NR/7LA65g5j7Lt9eU3\\ndhC9LFcbOyLxlJFFXxbq/B1zZh9sGqoHmn9yOcbHNQd3W9pMKqNIh90xzdkVr3E0\\nS8tv6wU56PRtcjEVKJxS3Qcxk41urju4DSKDo8K3PuZjna1uW6ymL1zMOOXZovnl\\nvmk4YcpEOdRcfGBWJepi3jp+cU0o4DcS6uObbvDXQQKBgQD1UtSZa2ua+i/FDvON\\nKGh6aCbZ8JVk1/I2NuOViTXRHJhpIL4GXjWgpOD/9S5skNW9NB/F5Pr82y3a3sRh\\nzyqiSE1gOm5pap/PUoX9QavtdrGbLlasbLizHsDeD390ihV4IuVYmqTnBiGJ62GH\\n0P7vu2mUMW5n9JqvAMqWZ5cwMQKBgQDCqC+P8fnJIkosd5wCxSmqcNmNd+MfOrky\\nOCTn3WrDdVGL2ekCdsOdBnLbnRg+HqSqytg12ENPThqrDjsS2XjF74I29VdESTmx\\nh5TnIq4r/IzXFSYBL8LJ7pMLAFx8Bb0tWWRPcRlSHCavtZz+2xgXGggsc2QUYSWU\\n+CDWnrwqGwKBgQDX1nRuNvCJfa0htzHY88BYUeI8xUrrWoMj58779ah/vqTpeYE2\\noRSVrfq3t8OMiTFEMePyfK/GYCBL/MrTMy3TccGB9GbIIKNSCM0SMQFO/6rrWS2w\\nrkcicOBHf2Mn6YVSGYGnHwgOqno/mfRJRjvGOCF/3K3CkJa3ef7DrYh7QQKBgENE\\ny+r6vE99whRL4WYzrIpyJTx2Sc7pBEcOj/Jw2gxh5qRl0dhAIqmJKPgr+cy92joL\\nj1xMODaXzy9943xIGyyL8Hv9nQLEK2PmbtbRbU9WH3XUoSWX08Dk6XvLzCov8YhS\\ndA/gDdgKUnQ2VuLb5B9Xp6t01QkV6V7pwK9qe6wxAoGBAKA2o4zvAhNXnAPcskmR\\nzDVdTQBZf49A4bfLLLfs7pxopgAZSOpD0pcU/jMoBww7Ko6xMnrpSP0kRO/LCvcq\\nQWzgkOl3iUhueVDSynlSarP+1g27wWNNGssN8xqwQ1nXdjLWEBRCqINMzCM/7B8Q\\naEi5S78wya5OZKMmoQcEDWhy\\n-----END PRIVATE KEY-----\\n"
    },
    {
      "key": "ID_GRUPO_RESUMEN_2",
      "service": "Bot-ApiSWS",
      "description": "JID (identificador unico) de Grupo WS donde enviar el reporte G2",
      "secret": false,
      "strategy": "default",
      "default": "000000000000@g.us"
    },
    {
      "key": "OPENAI_API_KEY_IMG",
      "service": "Bot-ApiSWS",
      "description": "APIKEY de ASISTENTE IMG OPENAI",
      "secret": true,
      "strategy": "default",
      "default": "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"
    },
    {
      "key": "EXTRA_SYSTEM_PROMPT",
      "service": "Bot-ApiSWS",
      "description": "Instruccion adicional de refuerzo que persiste en el contexto",
      "secret": false,
      "strategy": "default",
      "default": "\"\""
    },
    {
      "key": "GOOGLE_CLIENT_EMAIL",
      "service": "Bot-ApiSWS",
      "description": "Correo compartdo en el sheet",
      "secret": false,
      "strategy": "default",
      "default": "bot-ws-test-v1@bot-test-v1-450813.iam.gserviceaccount.com"
    },
    {
      "key": "GOOGLE_MAPS_API_KEY",
      "service": "Bot-ApiSWS",
      "description": "APIKEY Google Maps",
      "secret": true,
      "strategy": "default",
      "default": "AIzaSyCZWf1-se5psC7ae2f4ecFtYnOf0hmz1mw"
    },
    {
      "key": "timeOutSeguimiento2",
      "service": "Bot-ApiSWS",
      "description": "Personaliza el tiempo de espera entre el 1er y 2do msj de seguimiento",
      "secret": false,
      "strategy": "default",
      "default": "45"
    },
    {
      "key": "timeOutSeguimiento3",
      "service": "Bot-ApiSWS",
      "description": "Personaliza el tiempo de espera entre el 2do y 3er msj de seguimiento",
      "secret": false,
      "strategy": "default",
      "default": "120"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "bot-apisws"
      }
    },
    "cli": "railway deploy --template bot-apisws",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "9c08b02f-dfb6-4bcf-9d76-f4b48814d378",
            "serializedConfig": {
              "services": {
                "d9994216-6675-4b11-9d08-56e8458e59b8": {
                  "name": "Bot-ApiSWS",
                  "deploy": {
                    "restartPolicyType": "NEVER"
                  },
                  "source": {
                    "repo": "pereyrahugor/Bot-ApiSWS",
                    "branch": null,
                    "rootDirectory": null
                  },
                  "variables": {
                    "msjCierre": {
                      "description": "Msj enviado al finalizar el hilo de conversación",
                      "defaultValue": "Msj de cierre y envio de reporte. 😊 - TEST"
                    },
                    "ASSISTANT_ID": {
                      "description": "ID de asistente creado en Platform OpenAI",
                      "defaultValue": "asst_++++++++++"
                    },
                    "SUPABASE_KEY": {
                      "description": "ApiKey Base de Datos",
                      "defaultValue": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InlneWljb3pqZXd4YnlpeHRwamxvIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc2ODIzMTEwNSwiZXhwIjoyMDgzODA3MTA1fQ.p6GAb9R5agjjxnL3F_zMkL2CHGMTUK77TrKHn7qeq0o"
                    },
                    "SUPABASE_URL": {
                      "description": "URL Base de Datos",
                      "defaultValue": "https://ygyicozjewxbyixtpjlo.supabase.co"
                    },
                    "SWS_BASE_URL": {
                      "description": "URL endpoint base de servidor SWS",
                      "defaultValue": "http://demo.chatbot.sistemaws.com"
                    },
                    "SWS_PASSWORD": {
                      "description": "Clave Bot SWS",
                      "defaultValue": "demo2024"
                    },
                    "SWS_USERNAME": {
                      "description": "Usuario Bot SWS",
                      "defaultValue": "admin"
                    },
                    "RAILWAY_TOKEN": {
                      "description": "Token API RailWay",
                      "defaultValue": "d1a5a474-3a18-4f99-a144-19ffee362585"
                    },
                    "timeOutCierre": {
                      "description": "Tiempo de espera entre el ultimo msj del usuario y el cierre de la comunicación (tambien es el tiempo del primer msj de reconexión)",
                      "defaultValue": "7"
                    },
                    "ASSISTANT_NAME": {
                      "description": "Nombre Visible del Asistente en WebChat",
                      "defaultValue": "Asistente sin Nombre Definido "
                    },
                    "DOCX_ID_UPDATE": {
                      "description": "ID´s del Documento Drive subidos al Asistente (separados por coma si son varios)",
                      "defaultValue": "default"
                    },
                    "OPENAI_API_KEY": {
                      "description": "APIKEY de asistente de Platform OpenAI",
                      "defaultValue": "sk-proj-+++++++++"
                    },
                    "SHEET_ID_UPDATE": {
                      "description": "ID´s del Sheets Drive subidos al Asistente como Json (separados por coma si son varios)",
                      "defaultValue": "default"
                    },
                    "VECTOR_STORE_ID": {
                      "description": "ID del Vector Store OpenAI",
                      "defaultValue": "vs_++++++++++"
                    },
                    "msjSeguimiento1": {
                      "description": "Personaliza el primer msj de seguimiento",
                      "defaultValue": "MSJ 1 de Seguimiento.\\n(Este es un mensaje de seguimiento 😉)"
                    },
                    "msjSeguimiento2": {
                      "description": "Personaliza el segundo msj de seguimiento",
                      "defaultValue": "MSJ 2 de seguimiento, \\nSigo aquí para ayudarte a optimizar ventas"
                    },
                    "msjSeguimiento3": {
                      "description": "Personaliza el msj de seguimiento Final",
                      "defaultValue": "Msj 3 de seguimiento.\\n\\nAquí estoy para potenciar tus ventas, hablemos que puedo hacer por tu negocio."
                    },
                    "ASSISTANT_ID_IMG": {
                      "description": "ID Asistente Especialista en Imagenes",
                      "defaultValue": "asst_xHtjJK7Kt2mnw3jmiYa9PMyr"
                    },
                    "BACKOFFICE_TOKEN": {
                      "isOptional": false,
                      "description": "Token de acceso al BackOffice (CRM)",
                      "defaultValue": "MonoTest2026"
                    },
                    "ID_GRUPO_RESUMEN": {
                      "description": "JID (Identificador Unico) de Grupo WS donde enviar reportes",
                      "defaultValue": "0000000000000@g.us"
                    },
                    "SHEET_ID_RESUMEN": {
                      "description": "ID Sheets donde se guarda los resumen (Hoja1)",
                      "defaultValue": "default"
                    },
                    "GOOGLE_CALENDAR_ID": {
                      "description": "ID Calendar google",
                      "defaultValue": "primary"
                    },
                    "GOOGLE_PRIVATE_KEY": {
                      "description": "Clave Privada de Servico Google",
                      "defaultValue": "-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6ifEL7kVO7ytN\\nN8MoSVcuUTgOvEl7nazqYEUoHCbwZp+2pHeMXuoYR2rQ9f939d50l7OyqeOs5YgK\\n8ly3vQOqNLt7FgagD16bJVnFbIN8TFcGbmFkitMUBVL4KM6WPZS3aprGzlyE0Bxu\\nC4vEb5K0dzOxkFuYkkPsIX5nAqGs5bCj+rg5s8jbJCvY+Ka74CsIeBnCWQVIMV5/\\nVOfcv5QEmXYoiLKt5xV/XeEih4YRXrQchIjxLCGeShgw7WI2CV3Y1YallRH1SOgc\\nF1gSxCnZNa0m0vJDYGmu7nV1EGO4VQwFnvFcgxrgzruQOVqncYZGNkVXkDefubKV\\n1pdc1h8rAgMBAAECggEAErwD34TgpRrUKH8vNH6ZKOezT5eNccLWOPvONkcNihtk\\ncv11nD10GVgi3DW4oJ2q597Mh2cUnKq4zRCmSzXKhm+hXK1LoQuqHr7Tk0Zgtj0c\\niGLRmT1wEZSvTokapnAs3XbxcIINPLGCCXNTaDkkbMeEA5NR/7LA65g5j7Lt9eU3\\ndhC9LFcbOyLxlJFFXxbq/B1zZh9sGqoHmn9yOcbHNQd3W9pMKqNIh90xzdkVr3E0\\nS8tv6wU56PRtcjEVKJxS3Qcxk41urju4DSKDo8K3PuZjna1uW6ymL1zMOOXZovnl\\nvmk4YcpEOdRcfGBWJepi3jp+cU0o4DcS6uObbvDXQQKBgQD1UtSZa2ua+i/FDvON\\nKGh6aCbZ8JVk1/I2NuOViTXRHJhpIL4GXjWgpOD/9S5skNW9NB/F5Pr82y3a3sRh\\nzyqiSE1gOm5pap/PUoX9QavtdrGbLlasbLizHsDeD390ihV4IuVYmqTnBiGJ62GH\\n0P7vu2mUMW5n9JqvAMqWZ5cwMQKBgQDCqC+P8fnJIkosd5wCxSmqcNmNd+MfOrky\\nOCTn3WrDdVGL2ekCdsOdBnLbnRg+HqSqytg12ENPThqrDjsS2XjF74I29VdESTmx\\nh5TnIq4r/IzXFSYBL8LJ7pMLAFx8Bb0tWWRPcRlSHCavtZz+2xgXGggsc2QUYSWU\\n+CDWnrwqGwKBgQDX1nRuNvCJfa0htzHY88BYUeI8xUrrWoMj58779ah/vqTpeYE2\\noRSVrfq3t8OMiTFEMePyfK/GYCBL/MrTMy3TccGB9GbIIKNSCM0SMQFO/6rrWS2w\\nrkcicOBHf2Mn6YVSGYGnHwgOqno/mfRJRjvGOCF/3K3CkJa3ef7DrYh7QQKBgENE\\ny+r6vE99whRL4WYzrIpyJTx2Sc7pBEcOj/Jw2gxh5qRl0dhAIqmJKPgr+cy92joL\\nj1xMODaXzy9943xIGyyL8Hv9nQLEK2PmbtbRbU9WH3XUoSWX08Dk6XvLzCov8YhS\\ndA/gDdgKUnQ2VuLb5B9Xp6t01QkV6V7pwK9qe6wxAoGBAKA2o4zvAhNXnAPcskmR\\nzDVdTQBZf49A4bfLLLfs7pxopgAZSOpD0pcU/jMoBww7Ko6xMnrpSP0kRO/LCvcq\\nQWzgkOl3iUhueVDSynlSarP+1g27wWNNGssN8xqwQ1nXdjLWEBRCqINMzCM/7B8Q\\naEi5S78wya5OZKMmoQcEDWhy\\n-----END PRIVATE KEY-----\\n"
                    },
                    "ID_GRUPO_RESUMEN_2": {
                      "description": "JID (identificador unico) de Grupo WS donde enviar el reporte G2",
                      "defaultValue": "000000000000@g.us"
                    },
                    "OPENAI_API_KEY_IMG": {
                      "description": "APIKEY de ASISTENTE IMG OPENAI",
                      "defaultValue": "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"
                    },
                    "EXTRA_SYSTEM_PROMPT": {
                      "isOptional": false,
                      "description": "Instruccion adicional de refuerzo que persiste en el contexto",
                      "defaultValue": "\"\""
                    },
                    "GOOGLE_CLIENT_EMAIL": {
                      "description": "Correo compartdo en el sheet",
                      "defaultValue": "bot-ws-test-v1@bot-test-v1-450813.iam.gserviceaccount.com"
                    },
                    "GOOGLE_MAPS_API_KEY": {
                      "description": "APIKEY Google Maps",
                      "defaultValue": "AIzaSyCZWf1-se5psC7ae2f4ecFtYnOf0hmz1mw"
                    },
                    "timeOutSeguimiento2": {
                      "description": "Personaliza el tiempo de espera entre el 1er y 2do msj de seguimiento",
                      "defaultValue": "45"
                    },
                    "timeOutSeguimiento3": {
                      "description": "Personaliza el tiempo de espera entre el 2do y 3er msj de seguimiento",
                      "defaultValue": "120"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:8080": {
                        "port": 8080
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": false
  },
  "generated_at": "2026-09-20T16:14:49.616Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-18T14:07:50.613Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_3762bb28b34d47038e61",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 218,
    "typical_build_seconds": 124,
    "typical_start_seconds": 10,
    "slowest_service": "Bot-ApiSWS"
  }
}
