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

# Elenca le automazioni

> Elenca tutte le automazioni dell'organizzazione, dalla più recente alla meno recente.

Supporta i parametri di query `metadata.<key>=<value>` per filtrare in base alle
etichette dei metadati (corrispondenza esatta; più filtri vengono combinati con AND).

`agent_types` limita i risultati alle automazioni che contengono almeno una action di un
dato tipo di agent; ripeti il parametro per trovare uno qualsiasi tra più tipi
(OR). I payload delle action risiedono nell'archivio dei dati del cliente anziché in
colonne interrogabili, pertanto questo filtro analizza le pagine lato server. `total` viene
restituito solo quando un'unica scansione non filtrata copre l'intero insieme di risultati
(prima pagina, nessuna pagina successiva, nessun elemento nascosto); altrimenti viene omesso
anziché riportare un conteggio che include automazioni che l'API non restituirà mai.

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

Richiede un utente di servizio con l'autorizzazione `ViewOrgAutomations` a livello di organizzazione.

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

Supporta il filtraggio in base a `search`, `creator_id`, `enabled`, `event_type` e `agent_types` (da ripetere per corrispondere a uno qualsiasi di più tipi). I parametri di query `metadata.<key>=<value>` filtrano in base alle etichette dei metadati (corrispondenza esatta; più filtri sono combinati con AND).

I risultati sono ordinati dal più recente al meno recente, con paginazione basata su cursore (`after`, `first`). `total` viene restituito solo quando un'unica scansione non filtrata ha coperto l'intero insieme di risultati.


## OpenAPI

````yaml it/v3-openapi.yaml GET /v3/organizations/{org_id}/automations
openapi: 3.1.0
info:
  description: API Devin v3 con autenticazione utente di servizio e RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/automations:
    get:
      tags:
        - automations
      summary: Elenca le automazioni
      description: >-
        Elenca tutte le automazioni dell'organizzazione, dalla più recente alla
        meno recente.


        Supporta i parametri di query `metadata.<key>=<value>` per filtrare in
        base alle

        etichette dei metadati (corrispondenza esatta; più filtri vengono
        combinati con AND).


        `agent_types` limita i risultati alle automazioni che contengono almeno
        una action di un

        dato tipo di agent; ripeti il parametro per trovare uno qualsiasi tra
        più tipi

        (OR). I payload delle action risiedono nell'archivio dei dati del
        cliente anziché in

        colonne interrogabili, pertanto questo filtro analizza le pagine lato
        server. `total` viene

        restituito solo quando un'unica scansione non filtrata copre l'intero
        insieme di risultati

        (prima pagina, nessuna pagina successiva, nessun elemento nascosto);
        altrimenti viene omesso

        anziché riportare un conteggio che include automazioni che l'API non
        restituirà mai.
      operationId: handle_list_automations_v3_organizations__org_id__automations_get
      parameters:
        - description: 'ID dell''organizzazione (prefisso: 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: Risposta riuscita
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non autorizzato
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Vietato
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non trovato
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflitto
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenuto non elaborabile
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Troppe richieste
components:
  schemas:
    PaginatedResponse_AutomationResponse_:
      properties:
        end_cursor:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Cursore per recuperare la pagina successiva oppure None se questa è
            l'ultima pagina.
          title: End Cursor
        has_next_page:
          default: false
          description: Indica se dopo questa pagina sono disponibili altri elementi.
          title: Has Next Page
          type: boolean
        items:
          items:
            $ref: '#/components/schemas/AutomationResponse'
          title: Items
          type: array
        total:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            Conteggio totale facoltativo (può essere omesso per motivi di
            prestazioni).
          title: Total
      required:
        - items
      title: PaginatedResponse[AutomationResponse]
      type: object
    ProblemDetail:
      description: >-
        Corpo dell'errore application/problem+json RFC 9457 per l'API v3.


        detail è mantenuto dal corpo legacy {"detail": ...} per
        retrocompatibilità; gli

        altri membri sono aggiuntivi. errors contiene gli errori di validazione
        a livello di campo

        (solo 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Una spiegazione leggibile dall'utente, specifica per questa
            occorrenza.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Errori di convalida a livello di campo (solo per le risposte 422).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Un riferimento URI (il percorso della richiesta) per questa
            occorrenza.
          title: Instance
        status:
          description: Il codice di stato HTTP.
          title: Status
          type: integer
        title:
          description: Un breve riepilogo del tipo di problema, leggibile dall'utente.
          title: Title
          type: string
        type:
          default: about:blank
          description: Un riferimento URI che identifica il tipo di 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: >-
            Identità con cui vengono eseguite le sessioni generate.
            organization: l'identità di automazione dell'org (l'Utente di
            sistema nell'app) — le sessioni usano autorizzazioni di sistema,
            quindi non è possibile selezionare server MCP installati con una
            connessione personale (con ambito utente); passando un'automazione a
            organization, tali server vengono rimossi dalla selezione. creator:
            automazione personale — viene eseguita con le autorizzazioni del
            creatore ed è visibile solo al creatore e agli admin dell'org; non
            consentita per le automazioni create da utenti di servizio.
            Obbligatorio alla creazione; null in aggiornamento reimposta a
            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: >-
            L'associazione dell'automazione al profilo di sicurezza e i profili
            applicabili risultanti. null quando i profili di sicurezza non sono
            abilitati per l'organizzazione.
        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: >-
            Se true, il primo trigger crea una nuova sessione a lunga esecuzione
            di proprietà dell'automazione e i trigger successivi le inviano
            messaggi.
          title: Auto Create
          type: boolean
        prompt:
          description: Il payload dell'evento attivante viene aggiunto automaticamente.
          title: Prompt
          type: string
        target_devin_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Deve appartenere all'org; la modifica di un'automazione contenente
            questa action richiede accesso in scrittura alla sessione di
            destinazione (sono escluse le modifiche di sola
            abilitazione/disabilitazione). Obbligatorio a meno che auto_create
            non sia true, nel qual caso viene impostato lato server quando il
            primo trigger crea la sessione; i valori forniti dal client vengono
            ignorati.
          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: >-
            Inserito nel prompt di sistema della sessione. Usa la stessa
            grammatica dei token di riferimento di prompt.
          title: Setup Prompt
          type: string
        slack_monitor_config:
          $ref: '#/components/schemas/AutomationSlackMonitorConfig'
          description: Richiede esattamente un trigger slack:message sullo stesso canale.
        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: >-
            L'unica fonte di verità: testo semplice con token di riferimento
            inline (@{owner}/{repo}, @{path}, @playbook:{id}, @skills:{name},
            !{macro}, ${SECRET_NAME}). I token con prefisso del tipo vengono
            convalidati al salvataggio; gli ID sconosciuti restituiscono un
            errore 400. Il payload dell'evento attivante viene aggiunto
            automaticamente.
          title: Prompt
          type: string
        session:
          $ref: '#/components/schemas/AutomationSessionConfig-Output'
          description: Configurazione per la sessione generata.
        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: >-
            Numero massimo di run in corso per questa automazione; gli eventi
            attivati aggiuntivi attendono nella relativa coda. Un run non viene
            più conteggiato ai fini del limite quando la relativa sessione
            termina ed è in attesa di ulteriori istruzioni, non solo quando la
            sessione si arresta. null = illimitato.
          title: Max Concurrent Runs
        max_queue_depth:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Numero massimo di eventi attivati in attesa di esecuzione nella coda
            dell'automazione; gli eventi oltre questo limite vengono scartati.
            Richiede l'impostazione di max_concurrent_runs. null = illimitato.
          title: Max Queue Depth
      title: AutomationConcurrency
      type: object
    ActorResponse:
      description: >-
        Un principal utente o utente di servizio associato a un'azione o a una
        risorsa.
      properties:
        id:
          description: ID utente o ID dell'utente di servizio.
          title: Id
          type: string
        name:
          anyOf:
            - type: string
            - type: 'null'
          description: Nome visualizzato, determinato lato server; null se eliminato.
          title: Name
        type:
          description: Tipo di 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 — enum aperto; i client devono
            tollerare nuovi valori.
          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 frequenza di attivazione dell'automazione.
        max_acu_limit:
          anyOf:
            - maximum: 1000
              minimum: 1
              type: integer
            - type: 'null'
          description: Per ogni sessione generata (stesso nome dell'API sessions).
          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: >-
            L'associazione dell'automazione: inherit (nessuna associazione),
            none (esclusione esplicita) o profile (fissa profile_id). Le
            sessioni risolvono l'intera catena enterprise -> org -> automazione:
            la policy di rete dell'automazione restringe soltanto le policy dei
            profili applicabili e un'esclusione non può eludere un profilo
            obbligatorio dell'org o dell'enterprise.
          enum:
            - inherit
            - none
            - profile
          title: Selection
          type: string
        warnings:
          default: []
          description: >-
            Conflitti di configurazione non bloccanti, ad es. un server MCP
            consigliato il cui hostname dell'endpoint è bloccato dal profilo
            applicabile (le sessioni generate non potranno connettersi a quel
            server). Vengono controllati solo gli hostname degli endpoint MCP
            remoti; un elenco vuoto non garantisce il funzionamento di ogni
            destinazione MCP o di rete. Popolato nelle letture e scritture di
            una singola automazione; vuoto nelle risposte elenco.
          items:
            type: string
          title: Warnings
          type: array
      required:
        - selection
      title: AutomationSecurityProfileResponse
      type: object
    AutomationSessionSettings-Output:
      additionalProperties: false
      description: >-
        Applicato a ogni sessione generata da questa automazione (incluse le
        sessioni

        di monitoraggio).
      properties:
        devin_mode:
          anyOf:
            - enum:
                - normal
                - fast
                - lite
                - ultra
                - fusion
              type: string
            - type: 'null'
          description: null = valore predefinito dell'org.
          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 l'accesso agli strumenti Linear.
          title: Linear Enabled
        mcp_servers:
          default: []
          description: >-
            Slug del Marketplace (il campo slug della risorsa mcp-servers, ad
            es. 'github', 'notion') abilitati per le sessioni generate. I server
            installati con una connessione personale (con ambito utente)
            richiedono run_as creator; selezionarli con run_as organization
            viene rifiutato poiché l'identità di servizio di Automations non
            dispone di un token personale per tali server e il passaggio di
            run_as di un'automazione a organization li rimuove dalla selezione
            memorizzata.
          items:
            type: string
          title: Mcp Servers
          type: array
        slack_channels:
          default: []
          description: >-
            Canali in cui gli strumenti Slack della sessione possono pubblicare
            messaggi.
          items:
            $ref: '#/components/schemas/AutomationSlackChannel'
          title: Slack Channels
          type: array
        slack_dm_scope:
          anyOf:
            - enum:
                - org_members
                - workspace
              type: string
            - type: 'null'
          description: >-
            Consenti alle sessioni generate di aprire DM Slack 1:1 nei workspace
            connessi dell'organizzazione. 'org_members' (solo per gli account
            Enterprise) limita i destinatari dei DM ai membri
            dell'organizzazione; 'workspace' (solo per gli account non
            Enterprise) consente qualsiasi membro idoneo del workspace. Ometti o
            usa null per disabilitare i DM.
          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: >-
            Rigenerato quando triggers viene sostituito: non è stabile tra una
            modifica e l'altra.
          title: Trigger Id
          type: string
        webhook:
          anyOf:
            - $ref: '#/components/schemas/AutomationWebhookResponse'
            - type: 'null'
          description: Solo nei trigger 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: >-
            Approva automaticamente la creazione di sessioni figlie (l'unico
            controllo aggirato da questo flag); qualsiasi futuro controllo
            aggirabile richiede un nuovo campo.
          title: Bypass Approval
          type: boolean
        notifications:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionNotificationsConfig'
            - type: 'null'
          description: Notifiche sul contenuto delle sessioni (attualmente solo Slack).
        platform:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Piattaforma VM per la sessione. Se null, la sessione usa la
            piattaforma predefinita dell'organizzazione al momento
            dell'invocazione.
          title: Platform
        playbook_id:
          anyOf:
            - type: string
            - type: 'null'
          description: 'Sola lettura: derivato dal primo token @playbook: nel prompt.'
          title: Playbook Id
        repos:
          default: []
          description: 'Sola lettura: derivato dai token repo nel prompt.'
          items:
            type: string
          title: Repos
          type: array
        tags:
          default: []
          description: >-
            Tag di sessione. Per le enterprise con applicazione obbligatoria dei
            tag è richiesto esattamente un valore consentito.
          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 = il creatore dell'automazione; obbligatorio per le automazioni
            create da utenti di servizio.
          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 di gruppi AND (DNF fissa a due livelli).
          items:
            $ref: '#/components/schemas/AutomationConditionGroup'
          title: Any
          type: array
      required:
        - any
      title: AutomationConditions
      type: object
    AutomationReply:
      additionalProperties: false
      properties:
        type:
          description: >-
            notify_thread: indicatore unidirezionale di 'sessione avviata' nel
            thread attivante al momento dell'invio (trigger Slack).
            attach_thread: associazione bidirezionale al thread attivante al
            momento dell'invio (trigger Slack). post_response: invia la risposta
            dell'agente al contesto attivante.
          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: >-
            Presente solo quando appena generato (creazione o nuova aggiunta);
            non è mai più recuperabile. La sostituzione di triggers conserva il
            secret esistente.
          title: Secret
        url:
          description: >-
            L'endpoint di ricezione a cui i sistemi esterni inviano richieste
            POST (header X-Webhook-Secret).
          title: Url
          type: string
      required:
        - url
      title: AutomationWebhookResponse
      type: object
    AutomationSessionNotificationsConfig:
      additionalProperties: false
      description: >-
        Dove viene inviato il contenuto della sessione generata, anziché nel
        gruppo

        ``notifications`` a livello di automazione (notifiche sullo stato di
        invio).
      properties:
        slack:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionSlackConfig'
            - type: 'null'
          description: >-
            Assegna alla sessione un punto di riferimento su Slack: interazione
            bidirezionale per post_updates/forward_thread e post_response dopo
            che la consegna iniziale ha associato il thread.
      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: tutte le condizioni nel gruppo devono corrispondere.'
          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 sessione conversa in un thread nel canale
            (disponibile per trigger non Slack). forward_thread: come sopra, più
            un collegamento inverso pubblicato nel thread che ha attivato
            l'azione (richiede un trigger Slack). post_response: la risposta
            finale della sessione viene pubblicata nel canale come messaggio di
            primo livello, quindi il relativo thread viene associato per
            risposte e messaggi successivi (disponibile per qualsiasi trigger).
          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: Intervallo inclusivo [minimo, massimo].
          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: >-
            Pattern glob; corrisponde a qualsiasi percorso modificato
            (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: >-
        Operatore unario: verifica se il campo è vuoto; `value` non contiene
        dati.
      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: Espressione regolare.
          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 iCalendar per il campo rrule di schedule:recurring, ad es.
            FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationRecurrenceCondition
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Credenziale dell''utente del servizio (prefisso: cog_)'
      scheme: bearer
      type: http

````