> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar automatizaciones

> Lista todas las automatizaciones de la organización, de la más reciente a la más antigua.

Admite parámetros de consulta `metadata.<key>=<value>` para filtrar por
etiquetas de metadatos (coincidencia exacta; varios filtros se combinan mediante AND).

`agent_types` filtra las automatizaciones que contienen al menos una acción de un
tipo de agente determinado; repite el parámetro para que coincida con cualquiera de varios tipos
(OR). Las cargas útiles de las acciones se almacenan en el almacenamiento de datos del cliente, no en
columnas consultables, por lo que este filtro analiza las páginas en el servidor. `total` solo se
devuelve cuando un único análisis sin filtros abarcó todo el conjunto de resultados
(primera página, sin más páginas y sin nada oculto); de lo contrario, se omite
en lugar de informar un recuento que incluya automatizaciones que la API nunca devolverá.

<div id="permissions">
  ## Permisos
</div>

Requiere un usuario de servicio con el permiso `ViewOrgAutomations` en el nivel de organización.

<div id="filtering">
  ## Filtrado
</div>

Permite filtrar por `search`, `creator_id`, `enabled`, `event_type` y `agent_types` (repítelo para incluir cualquiera de varios tipos). Los parámetros de consulta `metadata.<key>=<value>` filtran por etiquetas de metadatos (coincidencia exacta; varios filtros se combinan con AND).

Los resultados se ordenan del más reciente al más antiguo mediante paginación basada en cursor (`after`, `first`). `total` solo se devuelve cuando un único escaneo sin filtros abarca todo el conjunto de resultados.


## OpenAPI

````yaml es/v3-openapi.yaml GET /v3/organizations/{org_id}/automations
openapi: 3.1.0
info:
  description: API de Devin v3 con autenticación mediante usuario de servicio y RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/automations:
    get:
      tags:
        - automations
      summary: Listar automatizaciones
      description: >-
        Lista todas las automatizaciones de la organización, de la más reciente
        a la más antigua.


        Admite parámetros de consulta `metadata.<key>=<value>` para filtrar por

        etiquetas de metadatos (coincidencia exacta; varios filtros se combinan
        mediante AND).


        `agent_types` filtra las automatizaciones que contienen al menos una
        acción de un

        tipo de agente determinado; repite el parámetro para que coincida con
        cualquiera de varios tipos

        (OR). Las cargas útiles de las acciones se almacenan en el
        almacenamiento de datos del cliente, no en

        columnas consultables, por lo que este filtro analiza las páginas en el
        servidor. `total` solo se

        devuelve cuando un único análisis sin filtros abarcó todo el conjunto de
        resultados

        (primera página, sin más páginas y sin nada oculto); de lo contrario, se
        omite

        en lugar de informar un recuento que incluya automatizaciones que la API
        nunca devolverá.
      operationId: handle_list_automations_v3_organizations__org_id__automations_get
      parameters:
        - description: 'ID de organización (prefijo: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
        - in: query
          name: after
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: After
        - in: query
          name: first
          required: false
          schema:
            default: 100
            maximum: 200
            minimum: 1
            title: First
            type: integer
        - in: query
          name: search
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Search
        - in: query
          name: creator_id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Creator Id
        - in: query
          name: enabled
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            title: Enabled
        - in: query
          name: event_type
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Event Type
        - in: query
          name: agent_types
          required: false
          schema:
            anyOf:
              - items:
                  enum:
                    - new_session
                    - long_running
                    - auto_triage
                    - remediate_finding
                    - triage_session
                    - incident_session
                  type: string
                type: array
              - type: 'null'
            title: Agent Types
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_AutomationResponse_'
          description: Respuesta correcta
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: No autorizado
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Prohibido
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: No encontrado
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflicto
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenido no procesable
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Demasiadas solicitudes
components:
  schemas:
    PaginatedResponse_AutomationResponse_:
      properties:
        end_cursor:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Cursor para obtener la página siguiente, o None si esta es la última
            página.
          title: End Cursor
        has_next_page:
          default: false
          description: Indica si hay más elementos disponibles después de esta página.
          title: Has Next Page
          type: boolean
        items:
          items:
            $ref: '#/components/schemas/AutomationResponse'
          title: Items
          type: array
        total:
          anyOf:
            - type: integer
            - type: 'null'
          description: Recuento total opcional (puede omitirse por rendimiento).
          title: Total
      required:
        - items
      title: PaginatedResponse[AutomationResponse]
      type: object
    ProblemDetail:
      description: >-
        Cuerpo de error RFC 9457 application/problem+json para la API v3.


        detail se conserva del cuerpo heredado {"detail": ...} por
        compatibilidad con versiones anteriores; los

        otros miembros son adicionales. errors contiene errores de validación

        a nivel de campo (solo 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Explicación legible para humanos específica de esta ocurrencia.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Errores de validación por campo (solo en respuestas 422).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: Una referencia URI (la ruta de la solicitud) para esta ocurrencia.
          title: Instance
        status:
          description: El código de estado HTTP.
          title: Status
          type: integer
        title:
          description: Un breve resumen del tipo de problema, legible para humanos.
          title: Title
          type: string
        type:
          default: about:blank
          description: Una referencia URI que identifica el tipo de problema.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    AutomationResponse:
      additionalProperties: false
      properties:
        actions:
          items:
            discriminator:
              mapping:
                message_session:
                  $ref: '#/components/schemas/AutomationMessageSessionAction'
                monitor_session:
                  $ref: '#/components/schemas/AutomationMonitorSessionAction'
                start_session:
                  $ref: '#/components/schemas/AutomationStartSessionAction-Output'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/AutomationStartSessionAction-Output'
              - $ref: '#/components/schemas/AutomationMessageSessionAction'
              - $ref: '#/components/schemas/AutomationMonitorSessionAction'
          title: Actions
          type: array
        automation_id:
          title: Automation Id
          type: string
        concurrency:
          anyOf:
            - $ref: '#/components/schemas/AutomationConcurrency'
            - type: 'null'
        created_at:
          title: Created At
          type: integer
        created_by:
          $ref: '#/components/schemas/ActorResponse'
        enabled:
          title: Enabled
          type: boolean
        last_edited_by:
          anyOf:
            - $ref: '#/components/schemas/ActorResponse'
            - type: 'null'
        last_invocation:
          anyOf:
            - $ref: '#/components/schemas/AutomationLastInvocation'
            - type: 'null'
        limits:
          anyOf:
            - $ref: '#/components/schemas/AutomationLimits'
            - type: 'null'
        metadata:
          additionalProperties:
            type: string
          default: {}
          title: Metadata
          type: object
        name:
          title: Name
          type: string
        notifications:
          anyOf:
            - $ref: '#/components/schemas/AutomationNotifications'
            - type: 'null'
        run_as:
          description: >-
            Identidad bajo la que se ejecutan las sesiones creadas.
            organization: la identidad de automatización de la organización (el
            Usuario del sistema en la app) — las sesiones usan permisos del
            sistema, por lo que no se pueden seleccionar servidores MCP
            instalados con una conexión personal (de ámbito de usuario), y
            cambiar una automatización a organization los elimina de la
            selección. creator: automatización personal — se ejecuta con los
            permisos del creador y solo pueden verla el creador y los Admin de
            org; se rechaza para automatizaciones creadas por usuarios de
            servicio. Obligatorio al crear; null al actualizar restablece
            organization.
          discriminator:
            mapping:
              creator:
                $ref: '#/components/schemas/AutomationRunAsCreator'
              organization:
                $ref: '#/components/schemas/AutomationRunAsOrganization'
            propertyName: type
          oneOf:
            - $ref: '#/components/schemas/AutomationRunAsOrganization'
            - $ref: '#/components/schemas/AutomationRunAsCreator'
          title: Run As
        security_profile:
          anyOf:
            - $ref: '#/components/schemas/AutomationSecurityProfileResponse'
            - type: 'null'
          description: >-
            La asociación de la automatización con un perfil de seguridad y los
            perfiles rectores resultantes. null cuando los perfiles de seguridad
            no están habilitados para la organización.
        session_settings:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionSettings-Output'
            - type: 'null'
        template_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Template Id
        tools:
          anyOf:
            - $ref: '#/components/schemas/AutomationTools'
            - type: 'null'
        triggers:
          items:
            $ref: '#/components/schemas/AutomationTriggerResponse'
          title: Triggers
          type: array
        updated_at:
          title: Updated At
          type: integer
      required:
        - automation_id
        - name
        - enabled
        - triggers
        - actions
        - created_by
        - created_at
        - updated_at
      title: AutomationResponse
      type: object
    AutomationMessageSessionAction:
      additionalProperties: false
      properties:
        auto_create:
          default: false
          description: >-
            Cuando es true, el primer activador crea una nueva sesión de larga
            duración propiedad de la automatización, y los activadores
            posteriores le envían mensajes.
          title: Auto Create
          type: boolean
        prompt:
          description: La carga útil del evento desencadenante se agrega automáticamente.
          title: Prompt
          type: string
        target_devin_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Debe pertenecer a la organización; editar una automatización que
            contiene esta acción requiere acceso de escritura a la sesión de
            destino (excepto las ediciones que solo la activan o desactivan). Es
            obligatorio, salvo que auto_create sea true; en ese caso, se
            establece en el servidor cuando el primer activador crea la sesión;
            se ignoran los valores proporcionados por el cliente.
          title: Target Devin Id
        type:
          const: message_session
          default: message_session
          title: Type
          type: string
      required:
        - prompt
      title: AutomationMessageSessionAction
      type: object
    AutomationMonitorSessionAction:
      additionalProperties: false
      properties:
        setup_prompt:
          description: >-
            Se inyecta en el prompt del sistema de la sesión. Tiene la misma
            gramática de tokens de referencia que prompt.
          title: Setup Prompt
          type: string
        slack_monitor_config:
          $ref: '#/components/schemas/AutomationSlackMonitorConfig'
          description: Requiere exactamente un activador slack:message en el mismo canal.
        type:
          const: monitor_session
          default: monitor_session
          title: Type
          type: string
      required:
        - setup_prompt
        - slack_monitor_config
      title: AutomationMonitorSessionAction
      type: object
    AutomationStartSessionAction-Output:
      additionalProperties: false
      properties:
        prompt:
          description: >-
            La única fuente de verdad: texto sin formato con tokens de
            referencia en línea (@{owner}/{repo}, @{path}, @playbook:{id},
            @skills:{name}, !{macro}, ${SECRET_NAME}). Los tokens con prefijo de
            tipo se validan al guardar; los ID desconocidos devuelven un error
            400. La carga útil del evento activador se agrega automáticamente.
          title: Prompt
          type: string
        session:
          $ref: '#/components/schemas/AutomationSessionConfig-Output'
          description: Configuración de la sesión creada.
        type:
          const: start_session
          default: start_session
          title: Type
          type: string
      required:
        - prompt
      title: AutomationStartSessionAction
      type: object
    AutomationConcurrency:
      additionalProperties: false
      properties:
        max_concurrent_runs:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Máximo de ejecuciones en curso para esta automatización; los eventos
            activados posteriores esperan en su cola. Una ejecución deja de
            contar para el límite cuando finaliza su sesión y queda a la espera
            de más instrucciones, no solo cuando la sesión se detiene. null =
            ilimitado.
          title: Max Concurrent Runs
        max_queue_depth:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Máximo de eventos activados que esperan ejecutarse en la cola de la
            automatización; los eventos que excedan este valor se descartan.
            Requiere que se configure max_concurrent_runs. null = ilimitado.
          title: Max Queue Depth
      title: AutomationConcurrency
      type: object
    ActorResponse:
      description: >-
        Una entidad principal de usuario o de usuario de servicio asociada a una
        acción o un recurso.
      properties:
        id:
          description: ID de usuario o de usuario de servicio.
          title: Id
          type: string
        name:
          anyOf:
            - type: string
            - type: 'null'
          description: Nombre para mostrar, resuelto en el servidor; null si se elimina.
          title: Name
        type:
          description: Tipo de entidad principal.
          enum:
            - user
            - service_user
          title: Type
          type: string
      required:
        - type
        - id
      title: ActorResponse
      type: object
    AutomationLastInvocation:
      additionalProperties: false
      properties:
        fired_at:
          title: Fired At
          type: integer
        status:
          description: >-
            succeeded | failed | skipped — enumeración abierta; los clientes
            deben admitir valores nuevos.
          title: Status
          type: string
      required:
        - fired_at
        - status
      title: AutomationLastInvocation
      type: object
    AutomationLimits:
      additionalProperties: false
      properties:
        invocations:
          anyOf:
            - $ref: '#/components/schemas/AutomationInvocationLimits'
            - type: 'null'
          description: Limita la frecuencia de activación de la automatización.
        max_acu_limit:
          anyOf:
            - maximum: 1000
              minimum: 1
              type: integer
            - type: 'null'
          description: Por sesión creada (mismo nombre que en la API de sesiones).
          title: Max Acu Limit
      title: AutomationLimits
      type: object
    AutomationNotifications:
      additionalProperties: false
      properties:
        email:
          anyOf:
            - $ref: '#/components/schemas/AutomationEmailNotification'
            - type: 'null'
        slack:
          anyOf:
            - $ref: '#/components/schemas/AutomationSlackNotification'
            - type: 'null'
      title: AutomationNotifications
      type: object
    AutomationRunAsCreator:
      additionalProperties: false
      properties:
        type:
          const: creator
          default: creator
          title: Type
          type: string
      title: AutomationRunAsCreator
      type: object
    AutomationRunAsOrganization:
      additionalProperties: false
      properties:
        type:
          const: organization
          default: organization
          title: Type
          type: string
      title: AutomationRunAsOrganization
      type: object
    AutomationSecurityProfileResponse:
      additionalProperties: false
      properties:
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Profile Id
        selection:
          description: >-
            La propia asociación de perfil de seguridad de la automatización:
            inherit (sin vinculación), none (exclusión explícita) o profile
            (fija profile_id). Las sesiones resuelven toda la cadena empresa ->
            organización -> automatización: la política de red de la
            automatización solo restringe aún más las políticas de los perfiles
            aplicables, y una exclusión no puede eludir un perfil obligatorio de
            organización o empresa.
          enum:
            - inherit
            - none
            - profile
          title: Selection
          type: string
        warnings:
          default: []
          description: >-
            Conflictos de configuración no bloqueantes; por ejemplo, un servidor
            MCP recomendado cuyo nombre de host de endpoint está bloqueado por
            el perfil aplicable (las sesiones creadas no podrán conectarse a ese
            servidor). Solo se comprueban los nombres de host de endpoints MCP
            remotos; una lista vacía no garantiza que todos los destinos MCP o
            de red funcionen. Se rellena en lecturas y escrituras de una sola
            automatización; está vacío en las respuestas de lista.
          items:
            type: string
          title: Warnings
          type: array
      required:
        - selection
      title: AutomationSecurityProfileResponse
      type: object
    AutomationSessionSettings-Output:
      additionalProperties: false
      description: |-
        Se aplica a cada sesión que crea esta automatización (incluidas las
        sesiones de monitorización).
      properties:
        devin_mode:
          anyOf:
            - enum:
                - normal
                - fast
                - lite
                - ultra
                - fusion
              type: string
            - type: 'null'
          description: null = valor predeterminado de la organización.
          title: Devin Mode
        net_policy:
          anyOf:
            - $ref: '#/components/schemas/AutomationNetPolicy'
            - type: 'null'
      title: AutomationSessionSettings
      type: object
    AutomationTools:
      additionalProperties: false
      properties:
        linear_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          description: Concede acceso a las herramientas de Linear.
          title: Linear Enabled
        mcp_servers:
          default: []
          description: >-
            Slugs de Marketplace (el campo slug del recurso mcp-servers, p. ej.,
            'github', 'notion') habilitados para sesiones creadas. Los
            servidores instalados con una conexión personal (con ámbito de
            usuario) requieren run_as creator; su selección con run_as
            organization se rechaza, ya que la identidad de servicio de
            Automatizaciones no dispone de un token personal para ellos, y
            cambiar el run_as de una automatización a organization los elimina
            de la selección almacenada.
          items:
            type: string
          title: Mcp Servers
          type: array
        slack_channels:
          default: []
          description: >-
            Canales en los que las herramientas de Slack de la sesión pueden
            publicar.
          items:
            $ref: '#/components/schemas/AutomationSlackChannel'
          title: Slack Channels
          type: array
        slack_dm_scope:
          anyOf:
            - enum:
                - org_members
                - workspace
              type: string
            - type: 'null'
          description: >-
            Permite que las sesiones creadas abran mensajes directos (MD) 1:1 de
            Slack en los espacios de trabajo conectados de la organización.
            'org_members' (solo para cuentas Enterprise) restringe los
            destinatarios de los MD a miembros de la organización; 'workspace'
            (solo para cuentas no Enterprise) permite cualquier miembro elegible
            del espacio de trabajo. Omita este valor o use null para
            deshabilitar los MD.
          title: Slack Dm Scope
      title: AutomationTools
      type: object
    AutomationTriggerResponse:
      additionalProperties: false
      properties:
        conditions:
          anyOf:
            - $ref: '#/components/schemas/AutomationConditions-Output'
            - type: 'null'
        event_type:
          title: Event Type
          type: string
        replies:
          default: []
          items:
            $ref: '#/components/schemas/AutomationReply'
          title: Replies
          type: array
        trigger_id:
          description: >-
            Se vuelve a generar cuando se reemplazan los activadores; no se
            mantiene entre ediciones.
          title: Trigger Id
          type: string
        webhook:
          anyOf:
            - $ref: '#/components/schemas/AutomationWebhookResponse'
            - type: 'null'
          description: Solo en activadores webhook:incoming.
      required:
        - trigger_id
        - event_type
      title: AutomationTriggerResponse
      type: object
    AutomationSlackMonitorConfig:
      additionalProperties: false
      properties:
        source_channel_id:
          title: Source Channel Id
          type: string
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Team Id
      required:
        - source_channel_id
      title: AutomationSlackMonitorConfig
      type: object
    AutomationSessionConfig-Output:
      additionalProperties: false
      properties:
        bypass_approval:
          default: false
          description: >-
            Aprueba automáticamente la creación de sesiones secundarias (la
            única comprobación que este indicador omite); cualquier comprobación
            futura que se pueda omitir requiere un campo nuevo.
          title: Bypass Approval
          type: boolean
        notifications:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionNotificationsConfig'
            - type: 'null'
          description: Notificaciones de contenido de sesión (actualmente solo Slack).
        platform:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Plataforma de VM para la sesión. Cuando es null, la sesión usa la
            plataforma predeterminada de la organización en el momento de la
            invocación.
          title: Platform
        playbook_id:
          anyOf:
            - type: string
            - type: 'null'
          description: 'Solo lectura: derivado del primer token @playbook: en el prompt.'
          title: Playbook Id
        repos:
          default: []
          description: 'Solo lectura: derivado de los tokens de repositorio en el prompt.'
          items:
            type: string
          title: Repos
          type: array
        tags:
          default: []
          description: >-
            Etiquetas de sesión. Para empresas con etiquetado obligatorio, se
            requiere exactamente un valor permitido.
          items:
            type: string
          title: Tags
          type: array
      title: AutomationSessionConfig
      type: object
    AutomationInvocationLimits:
      additionalProperties: false
      properties:
        max_per_window:
          minimum: 1
          title: Max Per Window
          type: integer
        window_seconds:
          minimum: 60
          title: Window Seconds
          type: integer
      required:
        - max_per_window
        - window_seconds
      title: AutomationInvocationLimits
      type: object
    AutomationEmailNotification:
      additionalProperties: false
      properties:
        recipients:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          description: >-
            null = el creador de la automatización; obligatorio para
            automatizaciones creadas por usuarios de servicio.
          title: Recipients
        when:
          enum:
            - always
            - dispatch_failed
            - dispatch_succeeded
          title: When
          type: string
      required:
        - when
      title: AutomationEmailNotification
      type: object
    AutomationSlackNotification:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        when:
          enum:
            - always
            - dispatch_failed
            - dispatch_succeeded
          title: When
          type: string
      required:
        - when
        - channel_id
      title: AutomationSlackNotification
      type: object
    AutomationNetPolicy:
      additionalProperties: false
      properties:
        allow:
          items:
            anyOf:
              - $ref: '#/components/schemas/AutomationHostnameDestination'
              - $ref: '#/components/schemas/AutomationIpv4Destination'
              - $ref: '#/components/schemas/AutomationIpv6Destination'
          title: Allow
          type: array
      required:
        - allow
      title: AutomationNetPolicy
      type: object
    AutomationSlackChannel:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        team_id:
          title: Team Id
          type: string
      required:
        - team_id
        - channel_id
      title: AutomationSlackChannel
      type: object
    AutomationConditions-Output:
      additionalProperties: false
      properties:
        any:
          description: OR de grupos AND (DNF fija de dos niveles).
          items:
            $ref: '#/components/schemas/AutomationConditionGroup'
          title: Any
          type: array
      required:
        - any
      title: AutomationConditions
      type: object
    AutomationReply:
      additionalProperties: false
      properties:
        type:
          description: >-
            notify_thread: aviso unidireccional de «sesión iniciada» en el hilo
            desencadenante en el momento del envío (triggers de Slack).
            attach_thread: asociación bidireccional con el hilo desencadenante
            en el momento del envío (triggers de Slack). post_response: entrega
            la respuesta del agente al contexto desencadenante.
          enum:
            - notify_thread
            - attach_thread
            - post_response
          title: Type
          type: string
      required:
        - type
      title: AutomationReply
      type: object
    AutomationWebhookResponse:
      additionalProperties: false
      properties:
        secret:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Solo está presente cuando se genera de nuevo (al crear o volver a
            agregar); nunca se puede recuperar otra vez. Reemplazar los
            activadores conserva el secreto existente.
          title: Secret
        url:
          description: >-
            El buzón al que los sistemas externos envían solicitudes POST
            (cabecera X-Webhook-Secret).
          title: Url
          type: string
      required:
        - url
      title: AutomationWebhookResponse
      type: object
    AutomationSessionNotificationsConfig:
      additionalProperties: false
      description: >-
        Dónde se envía el contenido de la sesión creada, en lugar del

        grupo ``notifications`` de nivel de automatización (avisos del estado de
        despacho).
      properties:
        slack:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionSlackConfig'
            - type: 'null'
          description: >-
            Da a la sesión un destino en Slack: two-way para
            post_updates/forward_thread y post_response una vez que la entrega
            inicial vincula el hilo.
      title: AutomationSessionNotificationsConfig
      type: object
    AutomationHostnameDestination:
      additionalProperties: false
      properties:
        hostname:
          title: Hostname
          type: string
      required:
        - hostname
      title: AutomationHostnameDestination
      type: object
    AutomationIpv4Destination:
      additionalProperties: false
      properties:
        ipv4:
          title: Ipv4
          type: string
      required:
        - ipv4
      title: AutomationIpv4Destination
      type: object
    AutomationIpv6Destination:
      additionalProperties: false
      properties:
        ipv6:
          title: Ipv6
          type: string
      required:
        - ipv6
      title: AutomationIpv6Destination
      type: object
    AutomationConditionGroup:
      additionalProperties: false
      properties:
        all:
          description: 'AND: todas las condiciones del grupo deben cumplirse.'
          items:
            discriminator:
              mapping:
                between:
                  $ref: '#/components/schemas/AutomationRangeCondition'
                contains:
                  $ref: '#/components/schemas/AutomationStringCondition'
                ends_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
                eq:
                  $ref: '#/components/schemas/AutomationComparisonCondition'
                globs:
                  $ref: '#/components/schemas/AutomationGlobCondition'
                gt:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                gte:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                in:
                  $ref: '#/components/schemas/AutomationListCondition'
                is_empty:
                  $ref: '#/components/schemas/AutomationEmptyCondition'
                is_not_empty:
                  $ref: '#/components/schemas/AutomationEmptyCondition'
                lt:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                lte:
                  $ref: '#/components/schemas/AutomationNumericCondition'
                matches:
                  $ref: '#/components/schemas/AutomationMatchCondition'
                neq:
                  $ref: '#/components/schemas/AutomationComparisonCondition'
                not_contains:
                  $ref: '#/components/schemas/AutomationStringCondition'
                not_ends_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
                not_globs:
                  $ref: '#/components/schemas/AutomationGlobCondition'
                not_in:
                  $ref: '#/components/schemas/AutomationListCondition'
                not_matches:
                  $ref: '#/components/schemas/AutomationMatchCondition'
                not_starts_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
                recurrence:
                  $ref: '#/components/schemas/AutomationRecurrenceCondition'
                starts_with:
                  $ref: '#/components/schemas/AutomationStringCondition'
              propertyName: operator
            oneOf:
              - $ref: '#/components/schemas/AutomationComparisonCondition'
              - $ref: '#/components/schemas/AutomationStringCondition'
              - $ref: '#/components/schemas/AutomationNumericCondition'
              - $ref: '#/components/schemas/AutomationEmptyCondition'
              - $ref: '#/components/schemas/AutomationRangeCondition'
              - $ref: '#/components/schemas/AutomationListCondition'
              - $ref: '#/components/schemas/AutomationMatchCondition'
              - $ref: '#/components/schemas/AutomationRecurrenceCondition'
              - $ref: '#/components/schemas/AutomationGlobCondition'
          title: All
          type: array
      required:
        - all
      title: AutomationConditionGroup
      type: object
    AutomationSessionSlackConfig:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        mode:
          description: >-
            post_updates: la sesión conversa en un hilo del canal (disponible
            para activadores que no sean de Slack). forward_thread: lo mismo,
            además de un enlace de retorno publicado en el hilo activador
            (requiere un activador de Slack). post_response: la respuesta final
            de la sesión se publica en el canal como mensaje de nivel superior;
            luego su hilo se vincula para respuestas y mensajes de seguimiento
            (disponible para cualquier activador).
          enum:
            - post_updates
            - forward_thread
            - post_response
          title: Mode
          type: string
      required:
        - mode
        - channel_id
      title: AutomationSessionSlackConfig
      type: object
    AutomationRangeCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          const: between
          title: Operator
          type: string
        value:
          description: Rango inclusivo [bajo, alto].
          maxItems: 2
          minItems: 2
          prefixItems:
            - anyOf:
                - type: integer
                - type: number
            - anyOf:
                - type: integer
                - type: number
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationRangeCondition
      type: object
    AutomationStringCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - contains
            - not_contains
            - starts_with
            - not_starts_with
            - ends_with
            - not_ends_with
          title: Operator
          type: string
        value:
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationStringCondition
      type: object
    AutomationComparisonCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - eq
            - neq
          title: Operator
          type: string
        value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
          title: Value
      required:
        - field
        - operator
        - value
      title: AutomationComparisonCondition
      type: object
    AutomationGlobCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - globs
            - not_globs
          title: Operator
          type: string
        value:
          description: >-
            Patrones glob; coincide cualquier ruta modificada (github:push,
            gitlab:push).
          items:
            type: string
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationGlobCondition
      type: object
    AutomationNumericCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - gt
            - lt
            - gte
            - lte
          title: Operator
          type: string
        value:
          anyOf:
            - type: integer
            - type: number
          title: Value
      required:
        - field
        - operator
        - value
      title: AutomationNumericCondition
      type: object
    AutomationListCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - in
            - not_in
          title: Operator
          type: string
        value:
          items:
            type: string
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationListCondition
      type: object
    AutomationEmptyCondition:
      additionalProperties: false
      description: >-
        Operador unario: coincide con que el campo esté vacío; `value` no
        contiene datos.
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - is_empty
            - is_not_empty
          title: Operator
          type: string
        value:
          title: Value
          type: 'null'
      required:
        - field
        - operator
      title: AutomationEmptyCondition
      type: object
    AutomationMatchCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - matches
            - not_matches
          title: Operator
          type: string
        value:
          description: Expresión regular.
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationMatchCondition
      type: object
    AutomationRecurrenceCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          const: recurrence
          title: Operator
          type: string
        value:
          description: >-
            RRULE de iCalendar para el campo rrule de schedule:recurring, p.
            ej., FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationRecurrenceCondition
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Credencial de usuario de servicio (prefijo: cog_)'
      scheme: bearer
      type: http

````