

AWS Il servizio di modernizzazione del mainframe (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a AWS Mainframe Modernization Service (esperienza Managed Runtime Environment), esplora AWS Mainframe Modernization Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. [Per ulteriori informazioni, consulta AWS Modifica della disponibilità di Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS Transform for mainframe Runtime APIs
<a name="ba-runtime-endpoints"></a>

Il AWS Transform for mainframe Runtime utilizza diverse applicazioni Web per esporre gli endpoint REST, fornendo modi per interagire con le applicazioni modernizzate utilizzando client REST (ad esempio chiamando lavori utilizzando uno scheduler).

Lo scopo di questo documento è elencare gli endpoint REST disponibili, fornendo dettagli su:
+ Il loro ruolo
+ Il modo di usarli correttamente 

L'elenco degli endpoint è organizzato in categorie, a seconda della natura del servizio fornito e dell'applicazione web che espone gli endpoint.

[Partiamo dal presupposto che tu abbia già una conoscenza di base sull'uso degli endpoint REST (utilizzando strumenti dedicati come [POSTMAN, Thunder Client, CURL](https://www.postman.com/)[, browser web, ecc](https://www.thunderclient.com/)...)](https://curl.se/) o scrivendo il tuo codice per effettuare una chiamata API.

**Topics**
+ [Endpoint disponibili per l'utente durante la creazione URLs](ba-endpoints-build-urls.md)
+ [Endpoint per l'applicazione Gapwalk in AWS Transform for mainframe](ba-endpoints-gapwalk.md)
+ [Blusamendpoint REST della console delle applicazioni](ba-endpoints-bac.md)
+ [Gestisci la console dell'applicazione JICS in AWS Transform for mainframe](ba-endpoints-jac.md)
+ [Strutture di dati per AWS Transform per utenti mainframe](ba-endpoints-apx.md)

# Endpoint disponibili per l'utente durante la creazione URLs
<a name="ba-endpoints-build-urls"></a>

Questo argomento elenca URLs i percorsi root per gli endpoint. Ogni applicazione web riportata di seguito definisce un **percorso root**, condiviso da tutti gli endpoint. **Ogni endpoint aggiunge quindi il proprio percorso dedicato.** L'URL risultante da utilizzare è il risultato della concatenazione dei percorsi. Ad esempio, considerando il primo endpoint dell'applicazione Gapwalk, abbiamo:
+ `/gapwalk-application`per il percorso principale dell'applicazione web.
+ `/scripts`per il percorso dedicato dell'endpoint.

L'URL risultante da utilizzare sarà `http://server:port/gapwalk-application/scripts`

**server**  
punta al nome del server (quello che ospita l'applicazione web specificata).

**port**  
la porta esposta dal server.

# Endpoint per l'applicazione Gapwalk in AWS Transform for mainframe
<a name="ba-endpoints-gapwalk"></a>

In questo argomento, scopri gli endpoint per l'applicazione web Gapwalk. Questi utilizzano il percorso principale. `/gapwalk-application`

**Topics**
+ [Endpoint correlati ai job Batch (modernizzati JCLs e simili)](#ba-endpoints-gapwalk-batch)
+ [Endpoint delle metriche](#ba-endpoints-gapwalk-metrics)
+ [Altri endpoint](#ba-endpoints-gapwalk-other)
+ [Endpoint relativi alle code di lavoro](#ba-endpoints-gapwalk-jobq)

## Endpoint correlati ai job Batch (modernizzati JCLs e simili)
<a name="ba-endpoints-gapwalk-batch"></a>

I processi Batch possono essere eseguiti in modo sincrono o asincrono (vedere i dettagli di seguito). I processi Batch vengono eseguiti utilizzando script groovy che sono il risultato della modernizzazione degli script legacy (JCL).

**Topics**
+ [Elenca gli script distribuiti](#ba-list-deployed-scripts)
+ [Avvia uno script in modo sincrono](#ba-launch-script-synchronously)
+ [Avvia uno script in modo asincrono](#ba-launch-script-asynchronously)
+ [Elenco degli script attivati](#ba-launch-script-triggered)
+ [Recupero dei dettagli sull'esecuzione del lavoro](#ba-retrieve-job-execution-details)
+ [Elenco degli script avviati in modo asincrono che possono essere eliminati](#ba-list-async-scripts)
+ [Elenco degli script avviati in modo sincrono che possono essere eliminati](#ba-list-sync-scripts)
+ [Uccidere una determinata esecuzione di lavoro](#ba-kill-job-execution)
+ [Elenco dei checkpoint esistenti per la riavviabilità](#ba-list-existing-checkpoints)
+ [Riavvio di un lavoro (in modo sincrono)](#ba-restart-job-sync)
+ [Riavvio di un lavoro (in modo asincrono)](#ba-restart-job-async)
+ [Impostazione del limite di thread per le esecuzioni di lavori asincroni](#ba-set-thread-limit)

### Elenca gli script distribuiti
<a name="ba-list-deployed-scripts"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/scripts`
+ Argomenti: nessuno
+ Questo endpoint restituisce l'elenco degli script groovy distribuiti sul server, come stringa. Questo endpoint è destinato principalmente all'uso da un browser Web, poiché la String risultante è una pagina HTML, con collegamenti attivi (un collegamento per script avviabile - vedi esempio di seguito).

Risposta di esempio:

```
<p><a href=./script/COMBTRAN>COMBTRAN</a></p><p><a href=./script/CREASTMT>CREASTMT</a></p><p><a href=./script/INTCALC>INTCALC</a></p><p><a href=./script/POSTTRAN>POSTTRAN</a></p><p><a href=./script/REPROC>REPROC</a></p><p><a href=./script/TRANBKP>TRANBKP</a></p><p><a href=./script/TRANREPT>TRANREPT</a></p><p><a href=./script/functions>functions</a></p>
```

**Nota**  
**I collegamenti rappresentano l'URL da utilizzare per avviare ogni script elencato in modo sincrono.**
+ Metodo supportato: GET/POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/triggerscripts`
+ Argomenti: nessuno
+ Questo endpoint restituisce l'elenco degli script groovy distribuiti sul server, come stringa. Questo endpoint è destinato principalmente all'uso da un browser Web, poiché la String risultante è una pagina HTML, con collegamenti attivi (un collegamento per script avviabile - vedi esempio di seguito).

  **A differenza della precedente risposta dell'endpoint, i link rappresentano l'URL da utilizzare per avviare ogni script elencato in modo asincrono.**  
![\[Esempio di elenco degli script (visualizzazione del browser)\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/trigger_scripts.png)

### Avvia uno script in modo sincrono
<a name="ba-launch-script-synchronously"></a>

Questo endpoint ha due varianti con percorsi dedicati per l'utilizzo di GET e POST (vedi sotto).
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/script/{scriptId:.+}`
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/post/script/{scriptId:.+}`
+ Argomenti:
  + identificatore dello script per avviare la **convalida dell'input: l'**ID dello script non deve essere vuoto, non può superare i 255 caratteri e deve corrispondere allo schema: `^[a-zA-Z0-9._-]+$`
  + opzionalmente: parametri da passare allo script, utilizzando i parametri di richiesta (visti come a). `Map<String,String>` I parametri forniti verranno aggiunti automaticamente ai [collegamenti dello script groovy](https://docs.groovy-lang.org/latest/html/api/groovy/lang/Binding.html) invocato. **Convalida dell'input: la mappa dei** parametri non può superare le 50 voci.
+ La chiamata esegue lo script (identificato da scriptID) con parametri opzionali e attende il completamento prima di restituire uno con: *ResponseEntityString* 
  + HTTP 200: «Fatto». o messaggio di successo JSON in caso di esecuzione riuscita
  + HTTP 200: un messaggio di errore JSON con dettagli sull'errore di esecuzione. Informazioni aggiuntive disponibili nei log del server.
**Nota**  
Runtime ora supporta la restituzione del codice di stato HTTP 500 per le esecuzioni di job non riuscite. Vedi [Proprietà disponibili per l'applicazione principale](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-key-value.html#ba-runtime-key-value-main) per configurare questo codice di risposta.
  + **Convalida dell'input: l'**ID o i parametri dello script non validi restituiranno HTTP 400 Bad Request con i dettagli dell'errore di convalida.

    ```
    {
        "exitCode": -1,
        "stepName": "STEP15",
        "program": "CBACT04C",
        "status": "Error"
    }
    ```

    Guardando i log del server, possiamo capire che si tratta di un problema di distribuzione (il programma previsto non è stato distribuito correttamente, quindi non può essere trovato, il che rende impossibile l'esecuzione del lavoro):  
![\[Esempio di errore di esecuzione dello script\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/script_exec_error_logs.png)

**Nota**  
Le chiamate sincrone devono essere riservate ai lavori di breve durata. I lavori con esecuzione prolungata dovrebbero invece essere avviati in modo asincrono (vedi endpoint dedicato di seguito).

### Avvia uno script in modo asincrono
<a name="ba-launch-script-asynchronously"></a>
+ Metodi supportati: GET/POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/triggerscript/{scriptId:.+}`
+ Argomenti:
  + identificatore dello script per avviare la **convalida dell'input: l'**ID dello script non deve essere vuoto, non può superare i 255 caratteri e deve corrispondere allo schema: `^[a-zA-Z0-9._-]+$`
  + opzionalmente: parametri da passare allo script, utilizzando i parametri di richiesta (visti come a). `Map<String,String>` I parametri forniti verranno aggiunti automaticamente ai [collegamenti dello script groovy](https://docs.groovy-lang.org/latest/html/api/groovy/lang/Binding.html) invocato. **Convalida dell'input: la mappa dei** parametri non può superare le 50 voci.
+ A differenza della modalità sincrona descritta in precedenza, l'endpoint non attende il completamento dell'esecuzione del job per inviare una risposta. L'esecuzione del processo viene avviata immediatamente, se è possibile trovare un thread disponibile in tal senso, e al chiamante viene inviata immediatamente una risposta con l'ID di esecuzione del lavoro, un identificatore univoco che rappresenta l'esecuzione del lavoro, che può essere utilizzato per interrogare lo stato di esecuzione del lavoro o forzare l'interruzione di un'esecuzione del lavoro che si suppone non funzioni correttamente. Il formato della risposta è:

  ```
  Triggered script <script identifier> [unique job execution id] @ <date and time>
  ```
+ Poiché l'esecuzione asincrona del processo si basa su un numero fisso limitato di thread, l'esecuzione del lavoro potrebbe non essere avviata se non viene trovato alcun thread disponibile. In tal caso, il messaggio restituito sarà piuttosto simile a:

  ```
  Script [<script identifier>] NOT triggered - Thread limit reached (<actual thread limit>) - Please retry later or increase thread limit.
  ```

  Vedi l'`settriggerthreadlimit`endpoint qui sotto per scoprire come aumentare il limite dei thread.

Risposta di esempio:

```
Triggered script INTCALC [d43cbf46-4255-4ce2-aac2-79137573a8b4] @ 06-12-2023 16:26:15
```

L'identificatore univoco di esecuzione del lavoro consente di recuperare rapidamente le voci di registro correlate nei log del server, se necessario. Viene utilizzato anche da diversi altri endpoint descritti di seguito.

### Elenco degli script attivati
<a name="ba-launch-script-triggered"></a>
+ Metodi supportati: GET/POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorsi:, `/triggeredscripts/{status:.+}` `/triggeredscripts/{status:.+}/{namefilter}`
+ Argomenti:
  + Status (obbligatorio): lo stato degli script attivati da recuperare. **Convalida dell'input**: lo stato non deve essere vuoto e non può superare i 50 caratteri. I valori possibili sono:
    + `all`: mostra tutti i dettagli sull'esecuzione del lavoro, indipendentemente dal fatto che i lavori siano ancora in esecuzione o meno.
    + `running`: mostra solo i dettagli dei lavori attualmente in esecuzione.
    + `done`: mostra i dettagli dei lavori solo per i lavori la cui esecuzione è terminata. 
    + `killed`: mostra i dettagli dei lavori solo per i lavori la cui esecuzione è stata interrotta forzatamente utilizzando l'endpoint dedicato (vedi sotto). 
    + `triggered`: mostra solo i dettagli dei lavori che sono stati attivati ma non ancora avviati.
    + `failed`: mostra i dettagli dei lavori solo per i lavori la cui esecuzione è stata contrassegnata come fallita.
    + \$1namefilter (opzionale) \$1: recupera solo le esecuzioni per l'identificatore di script specificato. **Convalida dell'input:** non può superare i 255 caratteri
+ Restituisce una raccolta di dettagli sulle esecuzioni dei lavori in formato JSON. Per ulteriori informazioni, consulta [Dettagli sull'esecuzione del lavoro, struttura dei messaggi](ba-endpoints-apx.md#job-execution-details).

Risposta di esempio:

```
[
    {
      "scriptId": "INTCALC",
      "caller": "127.0.0.1",
      "identifier": "d43cbf46-4255-4ce2-aac2-79137573a8b4",
      "startTime": "06-12-2023 16:26:15",
      "endTime": "06-12-2023 16:26:15",
      "status": "DONE",
      "executionResult": "{ \"exitCode\": -1, \"stepName\": \"STEP15\", \"program\": \"CBACT04C\", \"status\": \"Error\" }",
      "executionMode": "ASYNCHRONOUS"
    }
  ]
```

### Recupero dei dettagli sull'esecuzione del lavoro
<a name="ba-retrieve-job-execution-details"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/getjobexecutioninfo/{jobexecutionid:.+}`
+ Argomenti:
  + jobexecutionid (obbligatorio): l'identificatore univoco di esecuzione del lavoro per recuperare i dettagli di esecuzione del lavoro corrispondenti. **Convalida dell'input**: l'ID di esecuzione del lavoro non deve essere vuoto e non può superare i 255 caratteri
+ Restituisce una stringa JSON che rappresenta i dettagli di un singolo processo (vedi[Dettagli sull'esecuzione del lavoro, struttura dei messaggi](ba-endpoints-apx.md#job-execution-details)) o una risposta vuota se non è stato possibile trovare dettagli sull'esecuzione del lavoro per l'identificatore specificato.

### Elenco degli script avviati in modo asincrono che possono essere eliminati
<a name="ba-list-async-scripts"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/killablescripts`
+ Restituisce una raccolta di identificatori di esecuzione dei lavori che sono stati avviati in modo asincrono che sono ancora attualmente in esecuzione e che possono essere interrotti forzatamente (vedi l'endpoint di seguito). `/kill`

### Elenco degli script avviati in modo sincrono che possono essere eliminati
<a name="ba-list-sync-scripts"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/killablesyncscripts`
+ Restituisce una raccolta di identificatori di esecuzione dei lavori che sono stati avviati in modo sincrono, sono ancora attualmente in esecuzione e possono essere interrotti forzatamente (vedi l'`/kill`endpoint di seguito).

### Uccidere una determinata esecuzione di lavoro
<a name="ba-kill-job-execution"></a>
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/kill/{identifier:.+}`
+ Argomento: identificatore di esecuzione del lavoro (obbligatorio): l'identificatore univoco di esecuzione del lavoro che indica che l'esecuzione del lavoro deve essere annullata con la forza. **Convalida dell'input: l'**identificatore non deve essere vuoto e non può superare i 255 caratteri
+ Restituisce un messaggio di testo che descrive in dettaglio l'esito del tentativo di interruzione dell'esecuzione del lavoro; il messaggio conterrà l'identificatore dello script, l'identificatore univoco dell'esecuzione del lavoro e la data e l'ora in cui si è verificato il completamento dell'esecuzione. Se non è possibile trovare alcuna esecuzione del processo in esecuzione per l'identificatore specificato, verrà invece restituito un messaggio di errore. 

**avvertimento**  
 Il runtime fa del suo meglio per interrompere correttamente l'esecuzione del job di destinazione. Pertanto, la risposta dall'endpoint /kill potrebbe impiegare un po' di tempo prima che arrivi al chiamante, poiché il runtime di AWS Transform for mainframe cercherà di ridurre al minimo l'impatto aziendale dell'interruzione del processo.
Interrompere forzatamente l'esecuzione di un lavoro non dovrebbe essere fatto alla leggera, in quanto potrebbe avere conseguenze aziendali dirette, tra cui la possibile perdita o il danneggiamento dei dati. Dovrebbe essere riservato ai casi in cui l'esecuzione di un determinato lavoro è andata storta e i mezzi per la correzione dei dati sono chiaramente identificati.
La soppressione di un posto di lavoro dovrebbe portare a ulteriori indagini (analisi post mortem) per capire cosa è andato storto e adottare misure correttive adeguate.
In ogni caso, il tentativo di terminare un processo in esecuzione verrà registrato nei log del server con messaggi a livello di avviso.

### Elenco dei checkpoint esistenti per la riavviabilità
<a name="ba-list-existing-checkpoints"></a>

La riavvio del lavoro si basa sulla capacità degli script di registrare i checkpoint per tracciare l'avanzamento dell'esecuzione del `CheckpointRegistry` lavoro. Se l'esecuzione di un job non riesce a terminare correttamente e i checkpoint di riavvio sono stati registrati, è sufficiente riavviare l'esecuzione del job dall'ultimo checkpoint registrato conosciuto (senza dover eseguire i passaggi precedenti precedenti al checkpoint).
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/restarts/{scriptId}/{jobId}`
+ Argomenti:
  + scriptId (opzionale - stringa): lo script che viene riavviato.
  + joBid (opzionale - stringa): l'identificatore univoco dell'esecuzione di un lavoro.
+ Restituisce un elenco in formato JSON di punti di riavvio esistenti, che può essere utilizzato per riavviare un processo la cui esecuzione non è avvenuta e non è terminata correttamente o per attivare un riavvio ritardato ignorando i passaggi eseguiti in precedenza. Se nessuno script ha registrato alcun checkpoint, il contenuto della pagina sarà «Nessun checkpoint registrato».

### Riavvio di un lavoro (in modo sincrono)
<a name="ba-restart-job-sync"></a>
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/restart/{hashcode}/{scriptId}/{skipflag}`
+ Argomenti: 
  + hashcode (intero - obbligatorio): riavvia l'esecuzione più recente di un job, utilizzando l'hashcode fornito come valore di checkpoint (vedi l'`/restarts`endpoint sopra riportato per scoprire come recuperare un valore di checkpoint valido).
  + scriptID (opzionale - stringa): lo script che viene riavviato.
  + skipflag (opzionale - boolean): salta l'esecuzione del passaggio selezionato (checkpoint) ed emette un riavvio dal passaggio successivo immediato (se presente).
+ Restituzioni: vedi la descrizione del reso sopra. `/script`

### Riavvio di un lavoro (in modo asincrono)
<a name="ba-restart-job-async"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/triggerrestart/{hashcode}/{scriptId}/{skipflag}`
+ Argomenti: 
  + hashcode (intero - obbligatorio): riavvia l'esecuzione più recente di un job, utilizzando l'hashcode fornito come valore di checkpoint (vedi l'`/restarts`endpoint sopra riportato per scoprire come recuperare un valore di checkpoint valido).
  + scriptID (opzionale - stringa): lo script che viene riavviato.
  + skipflag (opzionale - boolean): salta l'esecuzione del passaggio selezionato (checkpoint) ed emette un riavvio dal passaggio successivo immediato (se presente).
+ Restituzioni: vedi la descrizione del reso sopra. `/triggerscript`

### Impostazione del limite di thread per le esecuzioni di lavori asincroni
<a name="ba-set-thread-limit"></a>

L'esecuzione asincrona del processo si basa su un pool di thread dedicato nella JVM. Tale pool ha un limite fisso per quanto riguarda il numero di thread disponibili. L'utente ha la possibilità di regolare il limite in base alle capacità dell'host (numero CPUs, memoria disponibile, ecc...). Per impostazione predefinita, il limite di thread è impostato su 5 thread.
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/settriggerthreadlimit/{threadlimit:.+}`
+ Argomento (numero intero): il nuovo limite di thread da applicare. **Convalida dell'input**: deve essere compreso tra 1 e 1000 inclusi.
+ Restituisce un messaggio (`String`) che indica il nuovo limite del thread e quello precedente, o un messaggio di errore se il valore limite del thread fornito non è valido (non è un numero intero strettamente positivo).

Risposta di esempio:

```
Set thread limit for Script Tower Control to 10 (previous value was 5)
```

#### Conteggio delle esecuzioni di lavori attivate attualmente in esecuzione
<a name="ba-count-current-jobs"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/countrunningtriggeredscripts`
+ Restituisce un messaggio che indica il numero di processi in esecuzione avviati in modo asincrono e il limite di thread (ovvero il numero massimo di processi attivati che possono essere eseguiti contemporaneamente).

Risposta di esempio:

```
0 triggered script(s) running (limit =10)
```

**Nota**  
Questo può essere usato per verificare, prima di avviare un lavoro, se il limite del thread non è stato raggiunto (il che impedirebbe l'avvio del processo). 

#### Elimina le informazioni sull'esecuzione dei job
<a name="ba-purge-job-info"></a>

Le informazioni sulle esecuzioni dei processi rimangono nella memoria del server finché il server è attivo. Potrebbe essere conveniente eliminare le informazioni più vecchie dalla memoria, poiché non sono più rilevanti; questo è lo scopo di questo endpoint.
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/purgejobinformation/{age:.+}`
+ Argomenti: un valore intero strettamente positivo che rappresenta l'età in ore delle informazioni da eliminare. **Convalida dell'input**: deve essere compreso tra 0 e 365 inclusi.
+ Restituisce un messaggio con le seguenti informazioni:
  + Nome del file di eliminazione in cui le informazioni eliminate sull'esecuzione del lavoro vengono archiviate a scopo di archiviazione.
  + Numero di informazioni sull'esecuzione del lavoro eliminate.
  + Numero di informazioni rimanenti sull'esecuzione del lavoro nel memo

## Endpoint delle metriche
<a name="ba-endpoints-gapwalk-metrics"></a>

**Convalida dell'input**: tutti gli endpoint delle metriche convalidano i parametri della richiesta e restituiscono HTTP 400 Bad Request per i valori non validi.

### JVM
<a name="ba-metrics-jvm"></a>

Questo endpoint restituisce le metriche disponibili relative alla JVM.
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/metrics/jvm`
+ Argomenti: nessuno
+ Restituisce un messaggio con le seguenti informazioni:
  + threadActiveCount: numero di thread attivi.
  + jvmMemoryUsed: memoria utilizzata attivamente dalla Java Virtual Machine.
  + jvmMemoryMax: Memoria massima consentita per la Java Virtual Machine.
  + jvmMemoryFree: Memoria disponibile non attualmente utilizzata dalla Java Virtual Machine.

### Sessione
<a name="ba-metrics-session"></a>

Questo endpoint restituisce le metriche relative alle sessioni HTTP attualmente aperte.
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/metrics/session`
+ Argomenti: nessuno
+ Restituisce un messaggio con le seguenti informazioni:
  + SessionCount: numero di sessioni utente attive attualmente gestite dal server.

### Archiviazione
<a name="ba-metrics-batch"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/metrics/batch`
+ Argomenti:
  + startTimestamp (opzionale, numero): timestamp iniziale per il filtraggio dei dati. **Convalida dell'input**: deve essere un valore numerico valido.
  + EndTimestamp (opzionale, numero): timestamp di fine per il filtraggio dei dati. **Convalida dell'input**: deve essere un valore numerico valido.
  + pagina (opzionale, numero): numero di pagina per l'impaginazione. **Convalida dell'input**: deve essere un numero intero positivo.
  + PageSize (opzionale, numero): numero di elementi per pagina nell'impaginazione. **Convalida dell'input**: deve essere un numero intero strettamente positivo, massimo 500.
  + **Convalida dell'input: la** mappa dei parametri non può superare le 20 voci
+ Restituisce un messaggio con le seguenti informazioni:
  + contenuto: Elenco delle metriche di esecuzione in batch.
  + PageNumber: numero di pagina corrente nell'impaginazione.
  + PageSize: numero di elementi visualizzati per pagina.
  + TotalPages: numero totale di pagine disponibili.
  + numberOfElements: Numero di articoli nella pagina corrente.
  + last: contrassegno booleano per l'ultima pagina.
  + first: bandiera booleana per la prima pagina.

### Transaction
<a name="ba-metrics-transaction"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/metrics/transaction`
+ Argomenti:
  + startTimestamp (opzionale, numero): timestamp iniziale per il filtraggio dei dati. **Convalida dell'input**: deve essere un valore numerico valido.
  + EndTimestamp (opzionale, numero): timestamp di fine per il filtraggio dei dati. **Convalida dell'input**: deve essere un valore numerico valido.
  + pagina (opzionale, numero): numero di pagina per l'impaginazione. **Convalida dell'input**: deve essere un numero intero positivo.
  + PageSize (opzionale, numero): numero di elementi per pagina nell'impaginazione. **Convalida dell'input**: deve essere un numero intero strettamente positivo, massimo 500.
  + **Convalida dell'input: la** mappa dei parametri non può superare le 20 voci
+ Restituisce un messaggio con le seguenti informazioni:
  + contenuto: Elenco delle metriche di esecuzione delle transazioni.
  + PageNumber: numero di pagina corrente nell'impaginazione.
  + PageSize: numero di elementi visualizzati per pagina.
  + TotalPages: numero totale di pagine disponibili.
  + numberOfElements: Numero di articoli nella pagina corrente.
  + last: contrassegno booleano per l'ultima pagina.
  + first: bandiera booleana per la prima pagina.

## Altri endpoint
<a name="ba-endpoints-gapwalk-other"></a>

Usa questi endpoint per elencare programmi o servizi registrati, scoprire lo stato di salute e gestire le transazioni JICS.

**Topics**
+ [Elencare i programmi registrati](#ba-list-registered-programs)
+ [Elenco dei servizi registrati](#ba-list-registered-services)
+ [Health status (Stato di integrità)](#ba-health-status)
+ [Elenco delle transazioni JICS disponibili](#ba-list-jics-transactions)
+ [Avvia una transazione JICS](#ba-launch-jics-transaction)
+ [Avviare una transazione JICS (alternativa)](#ba-launch-jics-transaction-alt)
+ [Elenca le sessioni attive](#ba-active-session-list)

### Elencare i programmi registrati
<a name="ba-list-registered-programs"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/programs`
+ Restituisce l'elenco dei programmi registrati, come pagina html. Ogni programma è designato dal suo identificatore principale. Nell'elenco vengono restituiti sia i programmi legacy modernizzati che i programmi di utilità (IDCAMS, IEBGENER, ecc...). Tieni presente che i programmi di utilità disponibili dipenderanno dalle applicazioni web di utilità che sono state distribuite sul tuo server tomcat. Ad esempio, i programmi di supporto alle z/OS utilità potrebbero non essere disponibili per gli asset iSeries modernizzati, in quanto non pertinenti. 

### Elenco dei servizi registrati
<a name="ba-list-registered-services"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/services`
+ Restituisce l'elenco dei servizi di runtime registrati, come pagina html. I servizi forniti sono forniti dal runtime AWS Transform for mainframe come utilità, che possono essere utilizzate ad esempio negli script groovy. I servizi di caricamento Blusam (per creare set di dati Blusam da set di dati preesistenti) rientrano in questa categoria.

Risposta di esempio:

```
<p>BluesamESDSFileLoader</p><p>BluesamKSDSFileLoader</p><p>BluesamRRDSFileLoader</p>
```

### Health status (Stato di integrità)
<a name="ba-health-status"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/`
+ Restituisce un messaggio semplice che indica che l'applicazione gapwalk è attiva e funzionante () `Jics application is running.`

### Elenco delle transazioni JICS disponibili
<a name="ba-list-jics-transactions"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/transactions`
+ Restituisce una pagina html che elenca tutte le transazioni JICS disponibili. Ciò ha senso solo per gli ambienti con elementi JICS (modernizzazione degli elementi CICS precedenti).

Risposta di esempio:

```
<p>INQ1</p><p>MENU</p><p>MNT2</p><p>ORD1</p><p>PRNT</p>
```

### Avvia una transazione JICS
<a name="ba-launch-jics-transaction"></a>
+ Metodi supportati: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/jicstransrunner/{jtrans:.+}`
+ Argomenti:
  + Identificatore di transazione JICS (stringa, obbligatorio): identificatore della transazione JICS da avviare (lunghezza massima 8 caratteri)
  + <String, Object>richiesto: dati di input aggiuntivi da passare alla transazione, come mappa. Il contenuto di questa mappa verrà utilizzato per alimentare la [COMMAREA](https://www.ibm.com/docs/en/cics-ts/5.4?topic=programs-commarea) che verrà consumata dalla transazione JICS. La mappa può essere vuota se non sono richiesti dati per eseguire la transazione.
  + opzionale: voci di intestazioni Http, per personalizzare l'ambiente di esecuzione per una determinata transazione. Sono supportate le seguenti chiavi di intestazione:
    + `jics-channel`: Il nome del JICS CHANNEL che verrà utilizzato dal programma che verrà lanciato al momento dell'avvio della transazione. 
    + `jics-container`: Il nome del JICS CONTAINER da utilizzare per l'avvio di questa transazione JICS.
    + `jics-startcode`: lo STARTCODE (stringa, fino a 2 caratteri) da utilizzare all'inizio della transazione JICS. Vedi [STARTCODE](https://www.ibm.com/docs/en/cics-ts/5.5?topic=summary-assign) per i valori possibili (sfoglia la pagina).
    + `jicxa-xid`: Lo XID (struttura X/Open transaction identifier XID) di una «transazione globale» ([XA), avviata dal chiamante, a](https://en.wikipedia.org/wiki/X/Open_XA) cui parteciperà l'attuale avvio della transazione JICS. **Convalida dell'input**: XID non deve essere vuoto e non può superare i 255 caratteri.
+ Restituisce una serializzazione `com.netfective.bluage.gapwalk.rt.shared.web.TransactionResultBean` JSON, che rappresenta il risultato dell'avvio della transazione JICS.
+ **Convalida dell'input**: i valori XID non validi (vuoti o superiori a 255 caratteri) restituiranno HTTP 400 Bad Request con i dettagli dell'errore di convalida.

Per ulteriori informazioni sui dettagli della struttura, vedere. [Struttura dei risultati del lancio della transazione](ba-endpoints-apx.md#transaction-outcome)

### Avviare una transazione JICS (alternativa)
<a name="ba-launch-jics-transaction-alt"></a>
+ metodi supportati: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ percorso: `/jicstransaction/{jtrans:.+}`
+ Argomenti:  
**Identificatore di transazione JICS (stringa, obbligatorio)**  
identificatore della transazione JICS da avviare (lunghezza massima di 8 caratteri)  
**richiesto: dati di input aggiuntivi da passare alla transazione, come mappa<String, Object>**  
Il contenuto di questa mappa verrà utilizzato per alimentare la [COMMAREA](https://www.ibm.com/docs/en/cics-ts/5.4?topic=programs-commarea) che verrà consumata dalla transazione JICS. La mappa può essere vuota se non sono richiesti dati per eseguire la transazione.  
**opzionale: voci di intestazioni Http, per personalizzare l'ambiente di esecuzione per una determinata transazione.**  
Sono supportate le seguenti chiavi di intestazione:  
  + `jics-channel`: Il nome del JICS CHANNEL che verrà utilizzato dal programma che verrà lanciato al momento dell'avvio della transazione. 
  + `jics-container`: Il nome del JICS CONTAINER da utilizzare per l'avvio di questa transazione JICS.
  + `jics-startcode`: lo STARTCODE (stringa, fino a 2 caratteri) da utilizzare all'inizio della transazione JICS. Per i valori possibili, vedi [STARTCODE](https://www.ibm.com/docs/en/cics-ts/5.5?topic=summary-assign) (sfoglia la pagina).
  + `jicxa-xid`: Lo XID (struttura X/Open transaction identifier XID) di una «transazione globale» ([XA), avviata dal chiamante, a](https://en.wikipedia.org/wiki/X/Open_XA) cui parteciperà l'avvio della transazione JICS corrente. **Convalida dell'input**: XID non deve essere vuoto e non può superare i 255 caratteri.
+ Restituisce una serializzazione `com.netfective.bluage.gapwalk.rt.shared.web.RecordHolderBean` JSON, che rappresenta il risultato dell'avvio della transazione JICS. I dettagli della struttura sono disponibili in. [Struttura dei risultati del record di avvio delle transazioni](ba-endpoints-apx.md#transaction-record-outcome) 
+ **Convalida dell'input**: i valori XID non validi (vuoti o superiori a 255 caratteri) restituiranno HTTP 400 Bad Request con i dettagli dell'errore di convalida.

### Elenca le sessioni attive
<a name="ba-active-session-list"></a>
+ metodi supportati: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ percorso: `/activesessionlist`
+ Argomenti: nessuno
+ **Convalida dell'input: la** mappa dei parametri non può superare le 20 voci
+ Restituisce un elenco di serializzazioni `com.netfective.bluage.gapwalk.application.web.sessiontracker.SessionTrackerObject` in JSON, che rappresenta l'elenco delle sessioni utente attive. Quando il tracciamento delle sessioni è disabilitato, verrà restituito un elenco vuoto.

## Endpoint relativi alle code di lavoro
<a name="ba-endpoints-gapwalk-jobq"></a>

 Le code di lavoro sono il supporto di AWS Transform for mainframe per il meccanismo di invio dei AS400 lavori. Le code di lavoro vengono utilizzate AS400 per eseguire lavori su pool di thread specifici. Una coda di processi è definita da un nome e da un numero massimo di thread che corrisponde al numero massimo di programmi che possono essere eseguiti contemporaneamente su quella coda. Se in coda vengono inviati più lavori rispetto al numero massimo di thread, i lavori aspetteranno che un thread sia disponibile.

Per un elenco completo dello stato di un lavoro in coda, vedi. [Possibile stato di un lavoro in coda](ba-endpoints-apx.md#jobs-status)

Le operazioni sulle code di lavoro vengono gestite tramite i seguenti endpoint dedicati. È possibile richiamare queste operazioni dall'URL dell'applicazione Gapwalk con il seguente URL principale:. `http://server:port/gapwalk-application/jobqueue`

**Topics**
+ [Elenca le code disponibili](#ba-list-available-queues)
+ [Avvia o riavvia una coda di lavori](#ba-start-restart-queue)
+ [Invia un'offerta di lavoro per il lancio](#ba-submit-job-launch)
+ [Elenca tutti i lavori inviati](#ba-list-scheduled-jobs)
+ [Rilasciare tutti i lavori che sono «in attesa»](#ba-release-held-jobs)
+ [Rilascia tutti i lavori che sono «in attesa» per un determinato nome di lavoro](#ba-release-held-jobs-name)
+ [Rilascia un determinato lavoro per un numero di lavoro](#ba-release-job-number)
+ [Invia un lavoro con un programma ripetuto](#ba-submit-job-on-repeating-schedule)
+ [Elenca tutti i lavori ripetuti inviati](#ba-list-all-submitted-repeating-jobs)
+ [Annulla la pianificazione di un lavoro ripetuto](#ba-cancel-scheduling-of-repeating-job)

### Elenca le code disponibili
<a name="ba-list-available-queues"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `list-queues`
+ Restituisce l'elenco delle code disponibili insieme al loro stato, come elenco JSON di valori-chiave.

Risposta di esempio:

```
{"Default":"STAND_BY","queue1":"STARTED","queue2":"STARTED"}
```

Gli stati possibili per una coda di lavoro sono:

**STAND\$1BY**  
la coda dei lavori è in attesa di essere avviata.

**AVVIATA**  
la coda dei lavori è attiva e funzionante.

**UNKNOWN**  
lo stato della coda dei lavori non può essere determinato.

### Avvia o riavvia una coda di lavori
<a name="ba-start-restart-queue"></a>
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/restart/{name}`
+ Argomento: il nome della coda da avviare/riavviare, come stringa - obbligatorio. **Convalida dell'input**: il nome della coda non deve essere vuoto e non può superare i 255 caratteri.
+ L'endpoint non restituisce nulla ma si affida piuttosto allo stato http per indicare l'esito dell'operazione: start/restart   
**HTTP 200**  
l' start/restart operazione è andata bene: la coda di lavoro specificata è ora AVVIATA.  
**HTTP 404**  
la coda dei lavori non esiste.  
**HTTP 503**  
si è verificata un'eccezione durante il start/restart tentativo (i log del server devono essere ispezionati per capire cosa è andato storto).

### Invia un'offerta di lavoro per il lancio
<a name="ba-submit-job-launch"></a>
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/submit`
+ Argomento: obbligatorio come corpo della richiesta, serializzazione JSON di un `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage` oggetto. Per ulteriori informazioni, consulta [Invia il lavoro e pianifica l'input del lavoro](ba-endpoints-apx.md#submit-job).
+ Restituisce un JSON contenente l'originale `SubmitJobMessage` e un registro che indica se il lavoro è stato inviato o meno.

### Elenca tutti i lavori inviati
<a name="ba-list-scheduled-jobs"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/list-jobs?status={status}&size={size}&page={page}&sort={sort}`
+ Argomenti:
  + pagina: numero di pagina da recuperare (impostazione predefinita = 1)
  + dimensione: dimensione della pagina (impostazione predefinita = 50, max = 300)
  + sort: L'ordine dei lavori. (predefinito = «ExecutionID»). «ExecutionID» è attualmente l'unico valore supportato
  + status: (opzionale) Se presente, filtrerà in base allo stato.
+ Restituisce un elenco di tutti i lavori pianificati, come stringa JSON. Per un esempio di risposta, vedere[Elenco delle risposte ai lavori pianificati](ba-endpoints-apx.md#list-scheduled-jobs).

### Rilasciare tutti i lavori che sono «in attesa»
<a name="ba-release-held-jobs"></a>
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/release-all`
+ Restituisce un messaggio che indica l'esito dell'operazione di tentativo di rilascio. Ecco due casi possibili:
  + HTTP 200 e un messaggio «Tutti i lavori sono stati rilasciati con successo\$1» se tutti i lavori sono stati rilasciati con successo.
  + HTTP 503 e un messaggio «Jobs not released». Si è verificato un errore sconosciuto. Vedi «log» per maggiori dettagli» se qualcosa è andato storto con il tentativo di rilascio.

### Rilascia tutti i lavori che sono «in attesa» per un determinato nome di lavoro
<a name="ba-release-held-jobs-name"></a>

Per un determinato nome di lavoro, è possibile inviare più offerte di lavoro, con numeri di lavoro diversi (l'unicità di un lavoro è garantita da una coppia <job name, job number>). L'endpoint tenterà di rilasciare tutte le offerte di lavoro con il nome del lavoro specificato, che sono «in attesa».
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/release/{name}`
+ Argomenti: il nome del lavoro da cercare, sotto forma di stringa. Obbligatorio.
+ Restituisce un messaggio che indica il risultato dell'operazione di tentativo di rilascio. Ecco due casi possibili:
  + HTTP 200 e un messaggio «Jobs in group <name>(<number of released jobs>) rilasciato con successo\$1» i lavori sono stati rilasciati con successo.
  + HTTP 503 e un messaggio «Jobs in group <name>not released. Si è verificato un errore sconosciuto. Vedi il registro per maggiori dettagli» se qualcosa è andato storto con il tentativo di rilascio.

### Rilascia un determinato lavoro per un numero di lavoro
<a name="ba-release-job-number"></a>

<job name, job number>L' endpoint tenterà di rilasciare l'unica candidatura di lavoro «in attesa» per la coppia specificata.
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/release/{name}/{number}`
+ Argomenti:  
**nome**  
il nome del lavoro da cercare, come stringa. Obbligatorio.  
**numero**  
il numero del lavoro da cercare, come numero intero. Obbligatorio.  
** restituisce**  
 un messaggio che indica l'esito dell'operazione di tentativo di rilascio. Ecco due casi possibili:  
  + HTTP 200 e un messaggio «» Job <name/number> rilasciato con successo\$1» se il lavoro è stato rilasciato con successo.
  + <name/number>HTTP 503 e un messaggio «Job>Non rilasciato. Si è verificato un errore sconosciuto. Vedi il registro per maggiori dettagli» se qualcosa è andato storto con il tentativo di rilascio.

### Invia un lavoro con un programma ripetuto
<a name="ba-submit-job-on-repeating-schedule"></a>

Pianifica un lavoro che verrà eseguito con una pianificazione ripetuta.
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/schedule`
+ Argomento: il corpo della richiesta deve contenere una serializzazione JSON di un `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage` oggetto. 

### Elenca tutti i lavori ripetuti inviati
<a name="ba-list-all-submitted-repeating-jobs"></a>
+ Metodo supportato: GET

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/schedule/list?status={status}&size={size}&page={page}&sort={sort}`
+ Argomenti:

  1. pagina: numero di pagina da recuperare (impostazione predefinita = 1)

  1. dimensione: dimensione della pagina (impostazione predefinita = 50, max = 300)

  1. sort: L'ordine dei lavori. (predefinito = «id»). «id» è l'unico valore supportato per ora.

  1. status: (opzionale) Se presente, filtrerà in base allo stato. I valori possibili sono quelli indicati nella sezione 1.

  1. status: (opzionale) Se presente, filtrerà in base allo stato. I valori possibili sono quelli indicati nella sezione 1.

  1. Restituisce un elenco di tutti i lavori pianificati, come stringa JSON.

### Annulla la pianificazione di un lavoro ripetuto
<a name="ba-cancel-scheduling-of-repeating-job"></a>

Rimuove un lavoro creato in base a una pianificazione ripetuta. Lo stato di pianificazione dei processi è impostato su INATTIVO.
+ Metodo supportato: POST

  Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN
+ Percorso: `/schedule/remove/{schedule_id}`
+ Argomento:`schedule_id`, l'identificatore del lavoro pianificato da rimuovere.

# Blusamendpoint REST della console delle applicazioni
<a name="ba-endpoints-bac"></a>

In questa sezione, puoi conoscere la console delle Blusam applicazioni, un'API progettata per semplificare la gestione dei set di dati VSAM modernizzati. Gli endpoint per l'applicazione Blusam Web utilizzano il percorso principale. `/bac`

**Topics**
+ [Set di dati (endpoint correlati)](#ba-endpoints-bac-datasets)
+ [Set di dati in blocco: endpoint correlati](#ba-endpoints-bac-bulk)
+ [Registri](#ba-endpoints-bac-records)
+ [Maschere](#ba-endpoints-bac-masks)
+ [Altro](#ba-endpoints-bac-other)
+ [Endpoint BAC per la gestione degli utenti](#ba-endpoints-bac-users)

## Set di dati (endpoint correlati)
<a name="ba-endpoints-bac-datasets"></a>

Utilizza i seguenti endpoint per creare o gestire un set di dati specifico.

**Topics**
+ [Crea un set di dati](#ba-create-data-set)
+ [Caricamento di un file](#ba-upload-file)
+ [Carica un set di dati (POST)](#ba-load-data-set-post)
+ [Carica un set di dati (GET)](#ba-load-data-set-get)
+ [Caricare un set di dati da un bucket Amazon S3](#ba-load-data-set-s3)
+ [Esportazione di un set di dati in un bucket Amazon S3](#ba-export-data-set-s3)
+ [Cancellare un set di dati](#ba-clear-data-set)
+ [Eliminare un set di dati](#ba-delete-data-set)
+ [Conta i record del set di dati](#ba-count-data-set-records)

### Crea un set di dati
<a name="ba-create-data-set"></a>

È possibile utilizzare questo endpoint per creare una definizione di set di dati.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/createDataSet`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati.   
tipo  
(obbligatorio, stringa): il tipo di set di dati. I valori possibili sono:`ESDS`,`KSDS`,`RRDS`.   
Dimensione del record  
(opzionale, stringa): dimensione massima di ogni record del set di dati.   
Lunghezza fissa  
(opzionale, booleano): indica se la lunghezza dei record è fissa.   
compressione  
(opzionale, booleano): indica se il set di dati è compresso.   
CacheEnable  
(opzionale, booleano): indica se la memorizzazione nella cache è abilitata per il set di dati.   
Tasti alternativi  
(opzionale, elenco di chiavi):  
  + offset (obbligatorio, numero)
  + lunghezza (richiesto, numero)
  + nome (richiesto, numero)
+ Restituisce un file JSON che rappresenta il set di dati appena creato.

Richiesta di esempio:

```
POST /api/services/rest/bluesamservice/createDataSet
{
  "name": "DATASET",
  "checked": false,
  "records": [],
  "primaryKey": {
    "name": "PK"
  },
  "alternativeKeys": [
    {
      "offset": 10,
      "length": 10,
      "name": "ALTK_0"
    }
  ],
  "type": "ESDS",
  "recordSize": 10,
  "compression": true,
  "cacheEnable": true
}
```

Risposta di esempio:

```
{
    "dataSet": {
      "name": "DATASET",
      "checked": false,
      "nbRecords": 0,
      "keyLength": -1,
      "recordSize": 10,
      "compression": false,
      "fixLength": true,
      "type": "ESDS",
      "cacheEnable": false,
      "cacheWarmup": false,
      "cacheEviction": "100ms",
      "creationDate": 1686744961234,
      "modificationDate": 1686744961234,
      "records": [],
      "primaryKey": {
        "name": "PK",
        "offset": null,
        "length": null,
        "columns": null,
        "unique": true
      },
      "alternativeKeys": [
        {
          "offset": 10,
          "length": 10,
          "name": "ALTK_0"
        }
      ],
      "readLimit": 0,
      "readEncoding": null,
      "initCharacter": null,
      "defaultCharacter": null,
      "blankCharacter": null,
      "strictZoned": null,
      "decimalSeparator": null,
      "currencySign": null,
      "pictureCurrencySign": null
    },
    "message": null,
    "result": true
  }
```

### Caricamento di un file
<a name="ba-upload-file"></a>

È possibile utilizzare questo endpoint per caricare file sul server. Il file viene archiviato in una cartella temporanea che corrisponde a ciascun utente specifico. Usa questo endpoint ogni volta che devi caricare un file.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/upload`
+ Argomenti:  
file  
(obbligatorio, multipart/form-data): il file da caricare.
+ Restituisce un valore booleano che riflette lo stato del caricamento

### Carica un set di dati (POST)
<a name="ba-load-data-set-post"></a>

Dopo aver creato `createDataSet` la definizione del set di dati, è possibile caricare i record associati al file caricato in un set di dati specifico.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/loadDataSet`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati.
+ Restituisce lo stato della richiesta e del set di dati caricato.

### Carica un set di dati (GET)
<a name="ba-load-data-set-get"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/loadDataSet`
+ Argomenti:  
listcatFileOrDatasetName  
(obbligatorio, stringa): il nome del set di dati.  
DataSetFile  
(obbligatorio, stringa): il nome del file del set di dati.
+ Restituisce lo stato della richiesta e del set di dati caricato.

### Caricare un set di dati da un bucket Amazon S3
<a name="ba-load-data-set-s3"></a>

Carica un set di dati utilizzando un file listcat da un bucket Amazon S3.
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/loadDataSetFromS3`
+ Argomenti:  
Elenca la posizione dei file CAT 3  
(obbligatorio, stringa): la posizione Amazon S3 del file listcat.  
Posizione di DataSetFiles3  
(obbligatorio, stringa): la posizione Amazon S3 del file del set di dati.  
region  
(obbligatorio, stringa): l'Amazon S3 Regione AWS in cui sono archiviati i file.
+ Restituisce il set di dati appena creato

Richiesta di esempio:

```
/BAC/api/services/rest/bluesamservice/loadDataSetFromS3?region=us-east-1&listcatFileS3Location=s3://bucket-name/listcat.json&datasetFileS3Location=s3://bucket-name/dataset.DAT
```

### Esportazione di un set di dati in un bucket Amazon S3
<a name="ba-export-data-set-s3"></a>

Esporta un set di dati nel bucket Amazon S3 specificato.
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/exportDataSetToS3`
+ Argomenti:  
s3Location  
(obbligatorio, stringa): la posizione Amazon S3 in cui esportare il set di dati.  
datasetName   
(obbligatorio, stringa): il nome del set di dati da esportare.  
region  
(obbligatorio, stringa): il Regione AWS bucket Amazon S3.  
kmsKeyId  
(opzionale, stringa): l' AWS KMS ID da utilizzare per la crittografia del set di dati esportato nel bucket Amazon S3.
+ Restituisce il set di dati esportato

Richiesta di esempio:

```
/BAC/api/services/rest/bluesamservice/exportDataSetToS3?region=eu-west-1&s3Location=s3://bucket-name/dump&datasetName=dataset
```

### Cancellare un set di dati
<a name="ba-clear-data-set"></a>

 Cancella tutti i record da un set di dati.
+ Metodi supportati: POST, GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/clearDataSet`
+ Argomenti:   
nome  
(obbligatorio, stringa): il nome del set di dati da cancellare. Quando si utilizza il metodo GET, il nome del parametro è`datasetName`.
+ Restituisce lo stato della richiesta.

### Eliminare un set di dati
<a name="ba-delete-data-set"></a>

Elimina la definizione e i record del set di dati.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/deleteDataSet`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati da eliminare.
+ Restituisce lo stato della richiesta e del set di dati eliminato.

### Conta i record del set di dati
<a name="ba-count-data-set-records"></a>

Questo endpoint restituisce il numero di record associati a un set di dati.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/countRecords`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati.
+ Restituisce: il numero di record

## Set di dati in blocco: endpoint correlati
<a name="ba-endpoints-bac-bulk"></a>

Utilizza i seguenti endpoint per creare o gestire più set di dati contemporaneamente.

**Topics**
+ [Esporta set di dati (GET)](#ba-export-data-sets-get)
+ [Esporta set di dati (POST)](#ba-export-data-sets-post)
+ [Crea più set di dati](#ba-create-multiple-data-sets)
+ [Elenca tutti i set di dati](#ba-list-all-data-sets)
+ [Elenca direttamente tutti i set di dati](#ba-direct-list-all-data-sets)
+ [Elenca direttamente tutti i set di dati per pagina](#ba-direct-list-all-data-sets-by-page)
+ [Set di dati di streaming](#ba-stream-data-sets)
+ [Elimina tutti i set di dati](#ba-delete-all-data-sets)
+ [Ottieni le definizioni dei set di dati dal file listcat](#ba-get-definitions-listcat)
+ [Ottieni le definizioni dei set di dati dal file cat dell'elenco caricato](#ba-get-definitions-uploaded-listcat)
+ [Ottieni un set di dati](#ba-get-data-set)
+ [Carica listcat dal file JSON](#ba-load-listcat)

### Esporta set di dati (GET)
<a name="ba-export-data-sets-get"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/exportDataSet`
+ Argomenti:  
datasetName  
(obbligatorio, stringa): il nome del set di dati da esportare.   
datasetOutputFile  
(obbligatorio, stringa): il percorso della cartella in cui si desidera archiviare il set di dati esportato sul server.  
rdw  
(obbligatorio, booleano): se si desidera che la parola descrittiva del record (RDW) faccia parte dei record esportati. Se il set di dati contiene record a lunghezza fissa, il valore di questo parametro viene ignorato.
+ Restituisce lo stato della richiesta e il percorso del file contenente il set di dati esportato (se presente). Se il set di dati è nullo nella risposta, significa che il sistema non è stato in grado di individuare un set di dati con il nome specificato.

### Esporta set di dati (POST)
<a name="ba-export-data-sets-post"></a>
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/exportDataSet`
+ Argomenti:  
Parametri di dump  
(obbligatorio, BACRead Parametri): parametri di lettura Bluesam.
+ Restituisce lo stato del set di dati esportato.

### Crea più set di dati
<a name="ba-create-multiple-data-sets"></a>
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/createAllDataSets`
+ Argomenti:
  + Elenco dei set di dati  
nome  
(obbligatorio, stringa): il nome del set di dati.   
tipo  
(obbligatorio, stringa): il tipo di set di dati. I valori possibili sono:`ESDS`,`KSDS`,`RRDS`.   
Dimensione del record  
(opzionale, stringa): dimensione massima di ogni record del set di dati.  
Lunghezza fissa  
(opzionale, booleano): indica se la lunghezza dei record è fissa.  
compressione  
(opzionale, booleano): indica se il set di dati è compresso.   
CacheEnable  
(opzionale, booleano): indica se la memorizzazione nella cache è abilitata per il set di dati.
+ Restituisce: lo stato della richiesta e il set di dati appena creato.

### Elenca tutti i set di dati
<a name="ba-list-all-data-sets"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/listDataSet`
+ Argomenti: Nessuno
+ Restituisce: lo stato della richiesta e l'elenco dei set di dati.

### Elenca direttamente tutti i set di dati
<a name="ba-direct-list-all-data-sets"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/directListDataSet`
+ Argomenti: Nessuno
+ Restituisce: lo stato della richiesta e l'elenco dei set di dati.

### Elenca direttamente tutti i set di dati per pagina
<a name="ba-direct-list-all-data-sets-by-page"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/directListDataSetByPage`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati. Il valore predefinito è `%` (tutti i set di dati) se non specificato.  
page  
(obbligatorio, int): il numero di pagina (minimo 0).  
pageSize  
(obbligatorio, int): la dimensione della pagina (minimo 1, massimo 500).
+ Restituisce: lo stato della richiesta e l'elenco dei set di dati.

### Set di dati di streaming
<a name="ba-stream-data-sets"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/streamDataset`
+ Argomenti:  
datasetName  
(obbligatorio, stringa): il nome del set di dati.
+ Restituisce: un flusso dei set di dati richiesti.

### Elimina tutti i set di dati
<a name="ba-delete-all-data-sets"></a>
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/removeAll`
+ Argomenti: Nessuno
+ Restituisce: un valore booleano che rappresenta lo stato della richiesta.

### Ottieni le definizioni dei set di dati dal file listcat
<a name="ba-get-definitions-listcat"></a>
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/getDataSetsDefinitionFromListcat`
+ Argomenti:   
paramFilePath  
(obbligatorio, stringa): il percorso del file listcat.
+ Restituisce: un elenco di set di dati

### Ottieni le definizioni dei set di dati dal file cat dell'elenco caricato
<a name="ba-get-definitions-uploaded-listcat"></a>
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/getDataSetsDefinitionFromUploadedListcat`
+ Argomenti: Nessuno
+ Restituisce: un elenco di set di dati

### Ottieni un set di dati
<a name="ba-get-data-set"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/getDataSet`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati.
+ Restituisce il set di dati richiesto.

### Carica listcat dal file JSON
<a name="ba-load-listcat"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/loadListcatFromJsonFile`
+ Argomenti:   
filePath  
(obbligatorio, stringa): il percorso del file listcat.
+ Restituisce: un elenco di set di dati

## Registri
<a name="ba-endpoints-bac-records"></a>

Utilizza i seguenti endpoint per creare o gestire i record all'interno di un set di dati.

**Topics**
+ [Creazione di un record](#ba-create-record)
+ [Leggi un set di dati](#ba-read-data-set)
+ [Eliminazione di un registro](#ba-delete-record)
+ [Aggiornare un record](#ba-update-record)
+ [Salva un record](#ba-save-record)
+ [Convalida un record](#ba-validate-record)
+ [Ottieni un albero dei record](#ba-get-record-tree)

### Creazione di un record
<a name="ba-create-record"></a>

È possibile utilizzare questo endpoint per creare un nuovo record.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/createRecord`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
maschera  
(obbligatorio, maschera): l'oggetto maschera.
+ Restituisce lo stato della richiesta e il record creato.

### Leggi un set di dati
<a name="ba-read-data-set"></a>

È possibile utilizzare questo endpoint per leggere un set di dati.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/readDataSet`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati.
+ Restituisce lo stato della richiesta e il set di dati con i record.

### Eliminazione di un registro
<a name="ba-delete-record"></a>

È possibile utilizzare questo endpoint per eliminare un record da un set di dati.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/deleteRecord`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
record  
(obbligatorio, Record): il record da eliminare
+ Restituisce lo stato dell'eliminazione.

### Aggiornare un record
<a name="ba-update-record"></a>

È possibile utilizzare questo endpoint per aggiornare un record associato a un set di dati.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/updateRecord`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
record  
(obbligatorio, Record): il record da aggiornare  
maschera  
(opzionale, Maschera): l'oggetto maschera da applicare durante l'aggiornamento.
+ Restituisce lo stato della richiesta e il set di dati con i record.

### Salva un record
<a name="ba-save-record"></a>

È possibile utilizzare questo endpoint per salvare un record in un set di dati e utilizzare una maschera.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/saveRecord`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
record  
(richiesto, Record): il record da salvare  
maschera  
(opzionale, Maschera): l'oggetto maschera da applicare durante il salvataggio.
+ Restituisce lo stato della richiesta e il set di dati con i record.

### Convalida un record
<a name="ba-validate-record"></a>

Usa questo endpoint per convalidare un record.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/validateRecord`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
record  
(opzionale, Record): il record da convalidare.  
maschera  
(opzionale, Mask): l'oggetto maschera da applicare durante la convalida.
+ Restituisce lo stato della richiesta e il set di dati con i record.

### Ottieni un albero dei record
<a name="ba-get-record-tree"></a>

Usa questo endpoint per ottenere l'albero gerarchico di un record.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/getRecordTree`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
record  
(richiesto, Record): il record da recuperare  
maschera  
(opzionale, Maschera): l'oggetto maschera.
+ Restituisce lo stato della richiesta e l'albero gerarchico del record richiesto.

## Maschere
<a name="ba-endpoints-bac-masks"></a>

Utilizza i seguenti endpoint per caricare o applicare maschere a un set di dati.

**Topics**
+ [Caricare le maschere](#ba-load-mask)
+ [Applica la maschera](#ba-apply-mask)
+ [Applica il filtro maschera](#ba-apply-mask-filter)

### Caricare le maschere
<a name="ba-load-mask"></a>

È possibile utilizzare questo endpoint per recuperare tutte le maschere associate a un set di dati specifico.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/loadMasks`
+ Variabili del percorso:  
RecordSize:... /loadMasks/ \$1recordSize\$1  
(opzionale, numerico): la dimensione del record, filtra le maschere caricate che corrispondono a questa dimensione del record
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati
+ Restituisce lo stato della richiesta e l'elenco delle maschere.

### Applica la maschera
<a name="ba-apply-mask"></a>

È possibile utilizzare questo endpoint per applicare una maschera a un set di dati specifico.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/applyMask`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
maschera  
(richiesto, Mask): l'oggetto del set di dati
+ Restituisce lo stato della richiesta e il set di dati con la maschera applicata.

### Applica il filtro maschera
<a name="ba-apply-mask-filter"></a>

È possibile utilizzare questo endpoint per applicare una maschera e un filtro a un set di dati specifico.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/crud/applyMaskFilter`
+ Argomenti:  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati  
maschera  
(obbligatorio, Maschera): l'oggetto maschera  
filter  
(obbligatorio, Filter): l'oggetto filtro da applicare.
+ Restituisce lo stato della richiesta e il set di dati con la maschera e il filtro applicati.

## Altro
<a name="ba-endpoints-bac-other"></a>

Utilizza i seguenti endpoint per gestire la cache di un set di dati o controllare le caratteristiche del set di dati

**Topics**
+ [Controlla la cache di riscaldamento](#ba-check-warm-up-cache)
+ [Verifica che la cache sia abilitata](#ba-check-cache-enabled)
+ [Abilita la cache](#ba-enable-cache)
+ [Controlla la cache RAM allocata](#ba-check-allocated-ram-cache)
+ [Controlla la persistenza](#ba-check-persistence)
+ [Controlla i tipi di set di dati supportati](#ba-check-supported-data-set-types)
+ [Controlla lo stato del server](#ba-check-server-health)
+ [Controlla la configurazione multi-schema di PostgreSQL](#ba-check-postgres-multi-schema)

### Controlla la cache di riscaldamento
<a name="ba-check-warm-up-cache"></a>

Verifica se la cache di riscaldamento è abilitata per un set di dati specifico.
+ Metodi supportati: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/warmupCache`
+ Argomenti:  
nome  
(obbligatorio, stringa): il nome del set di dati. 
+ Restituisce: true se la cache di riscaldamento è abilitata e false in caso contrario.

### Verifica che la cache sia abilitata
<a name="ba-check-cache-enabled"></a>

Verifica se la cache è abilitata per un set di dati specifico.
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/isEnableCache`
+ Argomenti: Nessuno
+ Restituisce true se la memorizzazione nella cache è abilitata.

### Abilita la cache
<a name="ba-enable-cache"></a>
+ Metodi supportati: POST
+ Richiede l'autenticazione e i ruoli ROLE\$1ADMIN e ROLE\$1SUPER\$1ADMIN.
+ Percorso: `/api/services/rest/bluesamservice/enableDisableCache/{enable}`
+ Argomenti:   
abilita  
(obbligatorio, booleano): se impostato su true, abiliterà la memorizzazione nella cache.  
set di dati  
(obbligatorio, DataSet): l'oggetto del set di dati.
+ Restituisce Nessuno

### Controlla la cache RAM allocata
<a name="ba-check-allocated-ram-cache"></a>

È possibile utilizzare questo endpoint per recuperare la memoria cache RAM allocata.
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/allocatedRamCache`
+ Argomenti: Nessuno
+ Restituisce: la dimensione della memoria come stringa

### Controlla la persistenza
<a name="ba-check-persistence"></a>
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/persistence`
+ Argomenti: Nessuno
+ Restituisce: la persistenza usata come stringa

### Controlla i tipi di set di dati supportati
<a name="ba-check-supported-data-set-types"></a>
+ Metodi supportati: GET
+ Percorso: `/api/services/rest/bluesamservice/getDataSetTypes`
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Argomenti: nessuno
+ Restituisce: l'elenco dei tipi di set di dati supportati come elenco di stringhe.

### Controlla lo stato del server
<a name="ba-check-server-health"></a>
+ Metodi supportati: GET
+ Percorso: `/api/services/rest/bluesamserver/serverIsUp`
+ Argomenti: Nessuno
+ Restituzioni: nessuna. Il codice di stato della risposta HTTP 200 indica che il server è attivo e funzionante.

### Controlla la configurazione multi-schema di PostgreSQL
<a name="ba-check-postgres-multi-schema"></a>

Verifica se la configurazione multi-schema di PostgreSQL è abilitata.
+ Metodi supportati: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1USER.
+ Percorso: `/api/services/rest/bluesamservice/isPostgresMultiSchema`
+ Argomenti: Nessuno
+ Restituisce: true se la configurazione multi-schema di PostgreSQL è abilitata e false in caso contrario.

## Endpoint BAC per la gestione degli utenti
<a name="ba-endpoints-bac-users"></a>

Utilizza i seguenti endpoint per gestire le interazioni con gli utenti.

**Topics**
+ [Effettua il login di un utente](#ba-log-user-in)
+ [Verifica se nel sistema esiste almeno un utente](#ba-verify-at-least-one-user-exists)
+ [Registra un nuovo utente](#ba-record-new-user)
+ [Ottieni informazioni sull'utente](#ba-user-info)
+ [Elencare gli utenti](#ba-list-users)
+ [Eliminazione di un utente](#ba-delete-user)
+ [Disconnette l'utente corrente](#ba-log-user-out)

### Effettua il login di un utente
<a name="ba-log-user-in"></a>
+ Metodo supportato: POST
+ Percorso: `/api/services/security/servicelogin/login`
+ Argomenti: Nessuno
+ Restituisce la serializzazione JSON di un `com.netfective.bluage.bac.entities.SignOn` oggetto, che rappresenta l'utente le cui credenziali sono fornite nella richiesta corrente. La password è nascosta alla vista nell'oggetto restituito. I ruoli assegnati all'utente vengono elencati.

Risposta di esempio:

```
{
     "login": "some-admin",
     "password": null,
     "roles": [
       {
         "id": 0,
         "roleName": "ROLE_ADMIN"
       }
     ]
   }
```

### Verifica se nel sistema esiste almeno un utente
<a name="ba-verify-at-least-one-user-exists"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/security/servicelogin/hasAccount`
+ Argomenti: Nessuno
+ Restituisce il valore booleano `true` se è stato creato almeno un utente diverso dall'utente super amministratore predefinito. Restituisce altrimenti`false`.

### Registra un nuovo utente
<a name="ba-record-new-user"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/security/servicelogin/recorduser`
+ Argomenti: la serializzazione JSON di un `com.netfective.bluage.bac.entities.SignOn` oggetto che rappresenta l'utente da aggiungere allo storage. I ruoli per l'utente devono essere definiti, altrimenti l'utente potrebbe non essere in grado di utilizzare la struttura e gli endpoint BAC.
+ Restituisce il valore booleano `true` se l'utente è stato creato con successo. Restituisce altrimenti`false`.
+ Esempio di richiesta JSON:

  ```
   {
       "login": "simpleuser",
       "password": "simplepassword",
       "roles": [
         {
           "id": 2,
           "roleName": "ROLE_USER"
         }
       ]
     }
  ```

  Di seguito sono riportati i due valori validi per`roleName`: 
  + `ROLE_ADMIN`: può gestire Blusam risorse e utenti.
  + `ROLE_USER`: può gestire Blusam le risorse ma non gli utenti.

### Ottieni informazioni sull'utente
<a name="ba-user-info"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/security/servicelogin/userInfo`
+ Argomenti: Nessuno
+ Restituisce il nome utente e il ruolo dell'utente attualmente connesso

### Elencare gli utenti
<a name="ba-list-users"></a>
+ Metodo supportato: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/security/servicelogin/listusers`
+ Argomenti: Nessuno
+ Restituisce un elenco di`com.netfective.bluage.bac.entities.SignOn`, serializzato come JSON.

### Eliminazione di un utente
<a name="ba-delete-user"></a>

**Importante**  
Questa operazione non può essere annullata. L'utente eliminato non sarà più in grado di connettersi all'applicazione BAC.
+ Metodo supportato: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/security/servicelogin/deleteuser`
+ Argomenti: la serializzazione JSON di un `com.netfective.bluage.bac.entities.SignOn` oggetto che rappresenta l'utente da rimuovere dall'archivio.
+ Restituisce il valore booleano `true` se l'utente è stato rimosso con successo.

### Disconnette l'utente corrente
<a name="ba-log-user-out"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/security/servicelogout/logout`
+ Argomenti: Nessuno
+ Restituisce il messaggio JSON `{"success":true}` se l'utente corrente è stato disconnesso con successo. La sessione HTTP correlata verrà invalidata.

# Gestisci la console dell'applicazione JICS in AWS Transform for mainframe
<a name="ba-endpoints-jac"></a>

Il componente JICS è il supporto AWS Transform for mainframe per la modernizzazione delle risorse CICS legacy. L'applicazione Web della console dell'applicazione JICS è dedicata all'amministrazione delle risorse JICS. I seguenti endpoint consentono di eseguire le attività di amministrazione senza dover interagire con l'interfaccia utente JAC. Ogni volta che un endpoint richiede l'autenticazione, la richiesta dovrà includere i dettagli di autenticazione (nome utente/password in genere, come richiesto dall'autenticazione di base). Gli endpoint per l'applicazione Web della console dell'applicazione JICS utilizzano il percorso root. `/jac/`

**Topics**
+ [Gestione delle risorse JICS](#ba-endpoints-jac-resources)
+ [Altro](#ba-endpoints-jac-other)
+ [Endpoint di gestione degli utenti JAC](#ba-endpoints-jac-users)

## Gestione delle risorse JICS
<a name="ba-endpoints-jac-resources"></a>

Tutti i seguenti endpoint sono correlati alla gestione delle risorse JICS, che consente agli amministratori JICS di gestire le risorse su base giornaliera.

**Topics**
+ [Elenca ELENCHI e GRUPPI JICS](#list-jics-lists-groups)
+ [Recupera risorse JICS](#retrieve-jics-resources)
+ [Elenca JICS GROUPS](#list-jics-groups)
+ [Elenca JICS GROUPS per un determinato ELENCO](#list-jics-groups-given-list)
+ [ELENCA le risorse JICS per un determinato GRUPPO](#list-jics-resources-given-group)
+ [ELENCA le risorse JICS per un determinato GRUPPO (alternativa che utilizza un nome)](#list-jics-resources-given-group-alt)
+ [Modifica dei GRUPPI proprietari di diverse LISTE](#edit-owned-groups-lists)
+ [Eliminare un ELENCO](#delete-list)
+ [Eliminare un GRUPPO](#delete-group)
+ [Eliminare una TRANSAZIONE](#delete-transaction)
+ [Eliminare un PROGRAMMA](#delete-program)
+ [Eliminare un FILE](#delete-file)
+ [Elimina un TDQUEUE](#delete-tdqueue)
+ [Eliminare un TSMODEL](#delete-tsmodel)
+ [Elimina elementi](#delete-elements)
+ [Crea una LISTA](#create-list)
+ [Creare un GRUPPO](#create-group)
+ [Considerazioni comuni sulla creazione di RISORSE](#common-create-considerations)
+ [Crea una TRANSAZIONE](#create-transaction)
+ [Crea un PROGRAMMA](#create-program)
+ [Crea un FILE](#create-file)
+ [Crea un TDQUEUE](#create-tdqueue)
+ [Crea un TSMODEL](#create-tsmodel)
+ [Crea elementi](#create-elements)
+ [Aggiorna un ELENCO](#update-list)
+ [Aggiorna un GRUPPO](#update-group)
+ [Considerazioni comuni sull'aggiornamento delle RISORSE](#common-update-considerations)
+ [Aggiorna una TRANSAZIONE](#update-transaction)
+ [Aggiorna un PROGRAMMA](#update-program)
+ [Aggiornare un FILE](#update-file)
+ [Aggiorna un TDQUEUE](#update-tdqueue)
+ [Aggiorna un TSMODEL](#update-tsmodel)
+ [Aggiorna elementi](#update-elements)
+ [Elementi Upsert](#upsert-elements)
+ [Recupera elementi](#retrieve-elements)
+ [Operazione JICS CRUD](#jics-crud-operation)

### Elenca ELENCHI e GRUPPI JICS
<a name="list-jics-lists-groups"></a>

LIST e GROUPS sono le principali risorse container proprietarie all'interno del componente JICS. Tutte le risorse JICS devono appartenere a un GRUPPO. I gruppi possono appartenere alle LISTE, ma ciò non è obbligatorio. Le LISTE potrebbero anche non esistere in un determinato ambiente JICS, ma la maggior parte delle volte le LISTE servono a fornire un ulteriore livello di organizzazione delle risorse. Per ulteriori informazioni sull'organizzazione delle risorse CICS, vedere Risorse [CICS](https://www.ibm.com/docs/en/cics-ts/6.1?topic=fundamentals-how-it-works-cics-resources).
+ Metodo supportato: GET
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/listJicsListsAndGroups`
+ Argomenti: Nessuno
+ Restituisce: un elenco di JicsContainer oggetti serializzati, sia LISTS che GROUPS, in formato JSON.

Risposta di esempio:

```
[
    {
      "name": "Resources",
      "children": [
        {
          "jacType": "JACList",
          "name": "MURACHS",
          "isActive": true,
          "children": [
            {
              "jacType": "JACGroup",
              "name": "MURACHS",
              "isActive": true,
              "children": []
            }
          ]
        },
        {
          "jacType": "JACGroup",
          "name": "TEST",
          "isActive": true,
          "children": []
        }
      ],
      "isExpanded": true
    }
  ]
```

### Recupera risorse JICS
<a name="retrieve-jics-resources"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/retrieveJicsResources`
+ Argomenti: un payload JSON che rappresenta le risorse JICS che si desidera recuperare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.request.RetrieveOperationRequest`
+ Restituisce: un elenco di oggetti JicsResource serializzati. Gli oggetti non vengono restituiti in un ordine particolare e sono di diversi tipi, come PROGRAM, TRANSACTION, FILE e così via.

### Elenca JICS GROUPS
<a name="list-jics-groups"></a>
+ Metodo supportato: GET
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/listJicsGroups`
+ Argomenti: Nessuno
+ Restituisce un elenco di JicsContainer oggetti serializzati (GROUPS) in formato JSON. I GROUPS vengono restituiti senza le relative informazioni LIST.

Risposta di esempio:

```
[
    {
      "jacType": "JACGroup",
      "name": "MURACHS",
      "isActive": true,
      "children": []
    },
    {
      "jacType": "JACGroup",
      "name": "TEST",
      "isActive": true,
      "children": []
    }
  ]
```

### Elenca JICS GROUPS per un determinato ELENCO
<a name="list-jics-groups-given-list"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/listGroupsForList`
+ Argomenti: un payload JSON, che rappresenta la LISTA JICS di cui GROUPS stai cercando. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACList`

  Richiesta di esempio:

  ```
  {
      "jacType":"JACList",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ Restituisce un elenco di JicsContainer oggetti serializzati (GROUPS) in formato JSON, che sono allegati alla lista specificata. I GROUPS vengono restituiti senza le relative informazioni LIST.

  Risposta di esempio:

  ```
  [
      {
        "jacType": "JACGroup",
        "name": "MURACHS",
        "isActive": true,
        "children": []
      }
    ]
  ```

### ELENCA le risorse JICS per un determinato GRUPPO
<a name="list-jics-resources-given-group"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/listResourcesForGroup`
+ Argomenti: un payload JSON, che rappresenta il JICS GROUP di cui state cercando le risorse. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACGroup` Non è necessario specificare tutti i campi per il GRUPPO, ma il nome è obbligatorio.

  Richiesta di esempio:

  ```
  {
      "jacType":"JACGroup",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ Restituisce un elenco di JicsResource oggetti serializzati, di proprietà del gruppo specificato. Gli oggetti non vengono restituiti in un ordine particolare e sono di diversi tipi, come PROGRAM, TRANSACTION, FILE e così via.

### ELENCA le risorse JICS per un determinato GRUPPO (alternativa che utilizza un nome)
<a name="list-jics-resources-given-group-alt"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione
+ Percorso: `/api/services/rest/jicsservice/listResourcesForGroupName`
+ Argomenti: il nome del GRUPPO che possiede le risorse che stai cercando.
+ Restituisce: un elenco di JicsResource oggetti serializzati, di proprietà del gruppo specificato. Gli oggetti vengono restituiti senza un ordine particolare e sono di diversi tipi, come PROGRAM, TRANSACTION, FILE e così via.

### Modifica dei GRUPPI proprietari di diverse LISTE
<a name="edit-owned-groups-lists"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/editGroupsList`
+ Argomenti: una rappresentazione JSON di una raccolta di LISTE con GRUPPI di bambini;

  Richiesta di esempio:

  ```
  [      
    {
          "jacType": "JACList",
          "name": "MURACHS",
          "isActive": true,
          "children": [
            {
              "jacType": "JACGroup",
              "name": "MURACHS",
              "isActive": true,
              "children": []
            },
            {
              "jacType": "JACGroup",
              "name": "TEST",
              "isActive": true,
              "children": []
            }
          ]
    }
  ]
  ```

  Prima di questa modifica, solo il gruppo denominato «MURACHS» apparteneva alla LISTA denominata «MURACHS». Con questa modifica, si «aggiunge» il gruppo denominato «TEST» alla LISTA denominata «MURACHS».
+ Restituisce un valore booleano. Se il valore è 'true', le modifiche di LISTS sono state mantenute correttamente nell'archivio JICS sottostante.

### Eliminare un ELENCO
<a name="delete-list"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteList`
+ Argomenti: un payload JSON, che rappresenta l'ELENCO JICS da eliminare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACList`
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione di LIST è stata eseguita correttamente sull'archivio JICS sottostante.

### Eliminare un GRUPPO
<a name="delete-group"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteGroup`
+ Argomenti: un payload JSON, che rappresenta il JICS GROUP da eliminare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACGroup`
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione GROUP è stata eseguita con successo sullo storage JICS sottostante.

### Eliminare una TRANSAZIONE
<a name="delete-transaction"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteTransaction`
+ Argomenti: un payload JSON, che rappresenta la transazione JICS da eliminare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTransaction`
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione di TRANSACTION è stata eseguita correttamente sullo storage JICS sottostante.

### Eliminare un PROGRAMMA
<a name="delete-program"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteProgram`
+ Argomenti: un payload JSON, che rappresenta il programma JICS da eliminare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACProgram`
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione del PROGRAMMA è stata eseguita correttamente sulla memoria JICS sottostante.

### Eliminare un FILE
<a name="delete-file"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteFile`
+ Argomenti: un payload JSON, che rappresenta il file JICS da eliminare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACFile`
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione del FILE è stata eseguita correttamente sulla memoria JICS sottostante.

### Elimina un TDQUEUE
<a name="delete-tdqueue"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteTDQueue`
+ Argomenti: un payload JSON, che rappresenta il JICS TDQUEUE da eliminare. Questa è la serializzazione JSON di un file `com.netfective.bluage.jac.entities. JACTDQueue`oggetto.
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione di TDQUEUE è stata eseguita correttamente sullo storage JICS sottostante.

### Eliminare un TSMODEL
<a name="delete-tsmodel"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteTSModel`
+ Argomenti: un payload JSON, che rappresenta il JICS TSMODEL da eliminare. Questa è la serializzazione JSON di un file `com.netfective.bluage.jac.entities. JACTSModel`oggetto.
+ Restituisce un valore booleano. Se il valore è 'true', l'eliminazione TSMODEL è stata eseguita correttamente sull'archivio JICS sottostante.

### Elimina elementi
<a name="delete-elements"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/deleteElements`
+ Argomenti: un payload JSON che rappresenta gli elementi JICS da eliminare.
+ Restituisce un valore booleano che `true` indica che l'eliminazione è stata eseguita correttamente nell'archivio JICS sottostante.

### Crea una LISTA
<a name="create-list"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createList`
+ Argomenti: un payload JSON, che rappresenta la LISTA JICS da creare. Questa è la serializzazione JSON di un file `com.netfective.bluage.jac.entities. JACList`oggetto.
+ Restituisce un valore booleano. Se il valore è 'true', l'ELENCO è stato creato correttamente nell'archivio JICS sottostante.

**Nota**  
L'ELENCO verrà sempre creato vuoto. Allegare GROUPS alla LIST richiederà un'altra operazione.

### Creare un GRUPPO
<a name="create-group"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e i seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createGroup`
+ Argomenti: un payload JSON, che rappresenta il JICS GROUP da creare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACGroup`
+ Restituisce un valore booleano. Se il valore è 'true', il GROUP è stato creato correttamente nell'archivio JICS sottostante.

**Nota**  
Il GROUP verrà sempre creato vuoto. L'associazione di RESOURCES al GROUP richiederà operazioni aggiuntive (la creazione di risorse le collegherà automaticamente a un determinato GRUPPO.

### Considerazioni comuni sulla creazione di RISORSE
<a name="common-create-considerations"></a>

Tutti i seguenti endpoint sono correlati alla creazione di JICS RESOURCES e condividono alcuni vincoli comuni: nel payload della richiesta da inviare all'endpoint, il campo deve essere valutato. `groupName`

Vincolo di proprietà del GRUPPO:

Nessuna risorsa può essere creata senza essere collegata a un gruppo esistente e l'endpoint utilizza GroupName per recuperare il gruppo a cui verrà collegata questa risorsa. `groupName`Deve puntare al nome di un GROUP esistente. Verrà inviato un messaggio di errore con HTTP STATUS 400 se non punta a un gruppo esistente nell'archivio JICS sottostante. `groupName`

Vincolo di unicità all'interno di un GRUPPO:

Una determinata risorsa con un determinato nome deve essere unica all'interno di un determinato gruppo. Il controllo dell'unicità verrà eseguito da ciascun endpoint di creazione di risorse. Se il payload specificato non rispetta il vincolo di unicità, l'endpoint invierà una risposta con HTTP STATUS 400 (BAD REQUEST). Vedi la risposta di esempio riportata di seguito.

Payload di esempio: si tenta di creare la transazione «ARIT» nel gruppo «TEST», ma in quel gruppo esiste già una transazione con quel nome.

```
{
    "jacType":"JACTransaction",
    "name":"ARIT", 
    "groupName":"TEST", 
    "isActive":true
  }
```

Riceverai la seguente risposta di errore:

```
{
    "timestamp": 1686759054510,
    "status": 400,
    "error": "Bad Request",
    "path": "/jac/api/services/rest/jicsservice/createTransaction"
  }
```

L'ispezione dei log dei server confermerà l'origine del problema:

```
2023-06-14 18:10:54 default         TRACE - o.s.w.m.HandlerMethod                    - Arguments: [java.lang.IllegalArgumentException: Transaction already present in the group, org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterResponse@e34f6b8]
2023-06-14 18:10:54 default         ERROR - c.n.b.j.a.WebConfig                      - 400
java.lang.IllegalArgumentException: Transaction already present in the group
	at com.netfective.bluage.jac.server.services.rest.impl.JicsServiceImpl.createElement(JicsServiceImpl.java:1280)
```

### Crea una TRANSAZIONE
<a name="create-transaction"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createTransaction`
+ Argomenti: un payload JSON, che rappresenta la TRANSAZIONE JICS da creare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTransaction`
+ Restituisce un valore booleano. Se il valore è 'true', la TRANSACTION è stata creata correttamente nell'archivio JICS sottostante.

### Crea un PROGRAMMA
<a name="create-program"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createProgram`
+ Argomenti: un payload JSON, che rappresenta il PROGRAMMA JICS da creare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACProgram`
+ Restituisce un valore booleano. Se il valore è 'true', il PROGRAMMA è stato creato con successo nella memoria JICS sottostante.

### Crea un FILE
<a name="create-file"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createFile`
+ Argomenti: un payload JSON, che rappresenta il FILE JICS da creare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACFile`
+ Restituisce un valore booleano. Se il valore è 'true', il FILE è stato creato correttamente nell'archivio JICS sottostante.

### Crea un TDQUEUE
<a name="create-tdqueue"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createTDQueue`
+ Argomenti: un payload JSON, che rappresenta il JICS TDQUEUE da creare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTDQueue`
+ Restituisce un valore booleano. Se il valore è 'true', TDQUEUE è stato creato con successo nella memoria JICS sottostante.

### Crea un TSMODEL
<a name="create-tsmodel"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createTSModel`
+ Argomenti: un payload JSON, che rappresenta il JICS TSMODEL da creare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTSModel`
+ Restituisce un valore booleano dove `true` indica che la creazione di elementi è stata eseguita con successo nella memoria JICS sottostante.

### Crea elementi
<a name="create-elements"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/createElements`
+ Argomenti: un payload JSON che rappresenta gli elementi JICS da creare.
+ Restituisce un valore booleano. Se il valore è 'true', gli elementi sono stati creati correttamente nella memoria JICS sottostante.

### Aggiorna un ELENCO
<a name="update-list"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateList`
+ Argomenti: un payload JSON, che rappresenta l'ELENCO JICS da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACList` Non è necessario fornire i figli del LIST; il meccanismo di aggiornamento LIST non terrà conto dei bambini. 
+ Restituisce un valore booleano. Se il valore è 'true', l'ELENCO è stato aggiornato correttamente nell'archivio JICS sottostante.

L'aggiornamento del flag LIST 'isActive' si propagherà a tutti gli elementi di proprietà della LIST, ovvero a tutti i GRUPPI di proprietà della LIST e a tutte le RISORSE di proprietà di tali GRUPPI. Questo è un modo conveniente per disattivare molte risorse con un'unica operazione, su più GRUPPI.

### Aggiorna un GRUPPO
<a name="update-group"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateGroup`
+ Argomenti: un payload JSON, che rappresenta il JICS GROUP da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACGroup` Non è necessario fornire i figli del GROUP, il meccanismo di aggiornamento GROUP non ne terrà conto. 
+ Restituisce un valore booleano. Se il valore è 'true', il GROUP è stato aggiornato correttamente nell'archivio JICS sottostante.

**Nota**  
L'aggiornamento del flag GROUP 'isActive' si propagherà a tutti gli elementi di proprietà del GROUP, ovvero a tutte le RISORSE di proprietà del GRUPPO. Questo è un modo conveniente per disattivare molte risorse con una singola operazione all'interno di un determinato GRUPPO.

### Considerazioni comuni sull'aggiornamento delle RISORSE
<a name="common-update-considerations"></a>

Tutti i seguenti endpoint riguardano l'aggiornamento di JICS RESOURCES. Utilizzando il `groupName` campo, è possibile modificare il GROUP proprietario di qualsiasi RISORSA JICS, a condizione che il valore del campo punti a un GROUP esistente nell'archivio JICS sottostante (in caso contrario, si riceverà una risposta BAD REQUEST (HTTP STATUS 400) dall'endpoint).

### Aggiorna una TRANSAZIONE
<a name="update-transaction"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateTransaction`
+ Argomenti: un payload JSON, che rappresenta la TRANSAZIONE JICS da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTransaction`
+ Restituisce un valore booleano. Se il valore è 'true', la TRANSAZIONE è stata aggiornata correttamente nell'archivio JICS sottostante.

### Aggiorna un PROGRAMMA
<a name="update-program"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateProgram`
+ Argomenti: un payload JSON, che rappresenta il PROGRAMMA JICS da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACProgram`
+ Restituisce un valore booleano. Se il valore è 'true', il PROGRAMMA è stato aggiornato correttamente nella memoria JICS sottostante.

### Aggiornare un FILE
<a name="update-file"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateFile`
+ Argomenti: un payload JSON, che rappresenta il FILE JICS da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACFile`
+ Restituisce un valore booleano. Se il valore è 'true', il FILE è stato aggiornato correttamente nell'archivio JICS sottostante.

### Aggiorna un TDQUEUE
<a name="update-tdqueue"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateTDQueue`
+ Argomenti: un payload JSON, che rappresenta il JICS TDQUEUE da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTDQueue`
+ Restituisce un valore booleano. Se il valore è 'true', è TDQueue stato aggiornato con successo nella memoria JICS sottostante.

### Aggiorna un TSMODEL
<a name="update-tsmodel"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateTSModel`
+ Argomenti: un payload JSON, che rappresenta il JICS TSMODEL da aggiornare. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.JACTSModel`
+ Restituisce un valore booleano. Se il valore è 'true', TSMODEL è stato aggiornato correttamente nella memoria JICS sottostante.

### Aggiorna elementi
<a name="update-elements"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/updateElements`
+ Argomenti: un payload JSON che rappresenta gli elementi da aggiornare.
+ Restituisce un valore booleano che `true` indica che l'aggiornamento degli elementi è stato eseguito correttamente nell'archivio JICS sottostante.

### Elementi Upsert
<a name="upsert-elements"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/upsertElements`
+ Argomenti: un payload JSON che rappresenta gli elementi da sconvolgere.
+ Restituisce un valore booleano dove `true` indica che gli elementi upsert sono stati utilizzati con successo nella memoria JICS sottostante.

### Recupera elementi
<a name="retrieve-elements"></a>
+ Metodo supportato: GET
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/retrieveElements`
+ Argomenti: Nessuno
+ Restituisce un elenco di tutte le risorse JICS serializzate.

### Operazione JICS CRUD
<a name="jics-crud-operation"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e uno dei seguenti ruoli: ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ Percorso: `/api/services/rest/jicsservice/jicsCrudOperation`
+ Argomenti: un payload JSON che rappresenta le risorse JICS che stai cercando. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.request.JicsCrudOperationRequest`
+ Restituisce un payload JSON che rappresenta la risposta. Questa è la serializzazione JSON di un oggetto. `com.netfective.bluage.jac.entities.request.JicsCrudOperationResponse`

## Altro
<a name="ba-endpoints-jac-other"></a>

**Topics**
+ [Stato di salute del server JICS](#jics-server-health)

### Stato di salute del server JICS
<a name="jics-server-health"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/rest/jicsserver/serverIsUp`
+ Argomenti: Nessuno
+ Restituzioni: nessuna. Una risposta HTTP STATUS 200 indica che il server è attivo e funzionante.

## Endpoint di gestione degli utenti JAC
<a name="ba-endpoints-jac-users"></a>

Utilizza i seguenti endpoint per gestire le interazioni con gli utenti.

**Topics**
+ [Registrazione di un utente](#log-user)
+ [Verifica se nel sistema esiste almeno un utente](#test-user-exist)
+ [Registrazione di un nuovo utente](#record-new-user)
+ [Informazioni sull'utente](#user-info)
+ [Elencare gli utenti](#list-users)
+ [Eliminazione di un utente](#delete-user)
+ [Disconnetti l'utente corrente](#logout-user)

### Registrazione di un utente
<a name="log-user"></a>
+ Metodo supportato: POST
+ Percorso: `/api/services/security/servicelogin/login`
+ Argomenti: Nessuno
+ Restituisce la serializzazione JSON di un `com.netfective.bluage.jac.entities.SignOn` oggetto, che rappresenta l'utente le cui credenziali sono fornite nella richiesta corrente. La password è nascosta alla vista nell'oggetto restituito. I ruoli assegnati all'utente vengono elencati.

Risposta di esempio:

```
{
    "login": "some-admin",
    "password": null,
    "roles": [
      {
        "id": 0,
        "roleName": "ROLE_ADMIN"
      }
    ]
  }
```

### Verifica se nel sistema esiste almeno un utente
<a name="test-user-exist"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/security/servicelogin/hasAccount`
+ Argomenti: Nessuno
+ Restituisce il valore booleano `true` se è stato creato almeno un utente diverso dall'utente super amministratore predefinito. Restituisce altrimenti`false`.

### Registrazione di un nuovo utente
<a name="record-new-user"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/security/servicelogin/recorduser`
+ Argomenti: la serializzazione JSON di un `com.netfective.bluage.jac.entities.SignOn` oggetto, che rappresenta l'utente da aggiungere allo storage. I ruoli per l'utente devono essere definiti, altrimenti l'utente potrebbe non essere in grado di utilizzare la struttura e gli endpoint JAC.
+ Restituisce il valore booleano `true` se l'utente è stato creato con successo. Restituisce altrimenti`false`.

Richiesta di esempio:

```
{
    "login": "simpleuser",
    "password": "simplepassword",
    "roles": [
      {
        "id": 2,
        "roleName": "ROLE_USER"
      }
    ]
  }
```

È possibile utilizzare solo i seguenti ruoli durante la registrazione di un nuovo utente:
+ ROLE\$1ADMIN: può gestire le risorse e gli utenti JICS.
+ ROLE\$1USER: può gestire le risorse JICS ma non gli utenti.

### Informazioni sull'utente
<a name="user-info"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/security/servicelogin/userInfo`
+ Argomenti: Nessuno
+ Restituisce il nome utente e i ruoli dell'utente attualmente connesso.

### Elencare gli utenti
<a name="list-users"></a>
+ Metodo supportato: GET
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/security/servicelogin/listusers`
+ Argomenti: Nessuno
+ Restituisce un elenco di`com.netfective.bluage.jac.entities.SignOn`, serializzato come JSON.

### Eliminazione di un utente
<a name="delete-user"></a>
+ Metodo supportato: POST
+ Richiede l'autenticazione e il ruolo ROLE\$1ADMIN.
+ Percorso: `/api/services/security/servicelogin/deleteuser`
+ Argomenti: la serializzazione JSON di un `com.netfective.bluage.jac.entities.SignOn` oggetto che rappresenta l'utente da rimuovere dall'archivio.
+ Restituisce il valore booleano `true` se l'utente è stato rimosso con successo.

**Importante**  
Questa operazione non può essere annullata. L'utente eliminato non sarà in grado di connettersi nuovamente all'applicazione JAC.

### Disconnetti l'utente corrente
<a name="logout-user"></a>
+ Metodo supportato: GET
+ Percorso: `/api/services/security/servicelogout/logout`
+ Argomenti: Nessuno
+ Restituisce il messaggio JSON `{"success":true}` se l'utente corrente è stato disconnesso con successo. La sessione HTTP correlata verrà invalidata.

# Strutture di dati per AWS Transform per utenti mainframe
<a name="ba-endpoints-apx"></a>

Puoi scoprire varie strutture di dati per il motore AWS Transform for mainframe nella sezione seguente.

**Topics**
+ [Dettagli sull'esecuzione del lavoro, struttura dei messaggi](#job-execution-details)
+ [Struttura dei risultati del lancio della transazione](#transaction-outcome)
+ [Struttura dei risultati del record di avvio delle transazioni](#transaction-record-outcome)
+ [Possibile stato di un lavoro in coda](#jobs-status)
+ [Invia il lavoro e pianifica l'input del lavoro](#submit-job)
+ [Elenco delle risposte ai lavori pianificati](#list-scheduled-jobs)
+ [Elenco delle risposte ai lavori ripetuti](#list-on-hold-jobs)

## Dettagli sull'esecuzione del lavoro, struttura dei messaggi
<a name="job-execution-details"></a>

I dettagli di esecuzione di ogni processo avranno i seguenti campi:

ScriptID  
l'identificatore dello script chiamato.

chiamante  
indirizzo IP del chiamante.

identificatore  
identificatore univoco di esecuzione del lavoro.

startTime  
data e ora di inizio dell'esecuzione del lavoro.

endTime  
data e ora in cui è terminata l'esecuzione del lavoro.

status  
uno stato per l'esecuzione del lavoro. Un valore possibile tra:  
+ `DONE`: l'esecuzione del lavoro è terminata normalmente.
+ `TRIGGERED`: esecuzione del processo attivata ma non ancora avviata.
+ `RUNNING`: l'esecuzione del processo è in esecuzione.
+ `KILLED`: l'esecuzione del lavoro è stata interrotta.
+ `FAILED`: l'esecuzione del processo non è riuscita.

Risultato dell'esecuzione  
un messaggio per riassumere il risultato dell'esecuzione del lavoro. Questo messaggio può essere un messaggio semplice se l'esecuzione del lavoro non è ancora terminata o una struttura JSON con i seguenti campi:  
+ ExitCode: codice di uscita numerico; i valori negativi indicano situazioni di errore.
+ programma: ultimo programma lanciato dal job.
+ status: un valore possibile tra:
  + `Error`: quando exitCode = -1; ciò corrisponde a un errore (tecnico) che si verifica durante l'esecuzione del lavoro.
  + `Failed`: when exitcode = -2; Ciò corrisponde a un errore che si verifica durante l'esecuzione di un programma di servizio (come una situazione ABEND).
  + `Succeeded`: quando ExitCode >= 0;
+ StepName: nome dell'ultimo passaggio eseguito nel job.

executionMode  
SINCRONO o ASINCRONO, a seconda del modo in cui il lavoro è stato avviato.

Output di esempio:

```
{
    "scriptId": "INTCALC",
    "caller": "127.0.0.1",
    "identifier": "97d410be-efa7-4bd3-b7b9-d080e5769771",
    "startTime": "06-09-2023 11:42:41",
    "endTime": "06-09-2023 11:42:42",
    "status": "DONE",
    "executionResult": "{ \"exitCode\": -1, \"stepName\": \"STEP15\", \"program\": \"CBACT04C\", \"status\": \"Error\" }",
    "executionMode": "ASYNCHRONOUS"
  }
```

## Struttura dei risultati del lancio della transazione
<a name="transaction-outcome"></a>

 La struttura potrebbe contenere i seguenti campi:

Risultato  
una stringa che rappresenta il risultato dell'esecuzione della transazione. I valori possibili sono:  
+ `Success`: l'esecuzione della transazione è andata a buon fine.
+ `Failure`: l'esecuzione della transazione non è riuscita a terminare correttamente, sono stati riscontrati alcuni problemi.

- compara  
una stringa che rappresenta il valore finale di COMMAREA, come matrice di byte con codifica byte64. Potrebbe essere una stringa vuota.

ContainerRecord  
(Facoltativo) una stringa che rappresenta il contenuto del record di CONTAINER come array di byte con codifica byte64.

Descrizione del server  
Può contenere informazioni sul server che ha fornito la richiesta (a scopo di debug). Potrebbe essere una stringa vuota.

Un codice di fine  
(Facoltativo) se il programma a cui fa riferimento la transazione avviata è annullato, il valore del codice abend verrà restituito come stringa in questo campo.

Esempi di risposte:

Completato

```
{
    "outCome": "Success",
    "commarea": "",
    "serverDescription": ""
  }
```

Errore

```
{
    "outCome": "Failure",
    "commarea": "",
    "serverDescription": "",
    "abendCode": "AEIA"
  }
```

## Struttura dei risultati del record di avvio delle transazioni
<a name="transaction-record-outcome"></a>

La struttura potrebbe contenere i seguenti campi:

Contenuto del record  
una stringa che rappresenta il contenuto del record di COMMAREA come un array di byte con codifica byte64.

ContainerRecord  
una stringa che rappresenta il contenuto del record del CONTAINER come array di byte codificato in byte64.

Descrizione del server  
Può contenere informazioni sul server che ha fornito la richiesta (a scopo di debug). Potrebbe essere una stringa vuota.

Esempi di risposte:

Completato

```
{
    "recordContent": "",
    "serverDescription": ""
}
```

## Possibile stato di un lavoro in coda
<a name="jobs-status"></a>

In una coda, i lavori possono avere il seguente stato:

ACTIVE  
Il processo è attualmente in esecuzione sulla coda.

ESECUZIONE\$1ATTESA  
Il lavoro è in attesa che un thread sia disponibile.

SCHEDULED  
L'esecuzione dei lavori è pianificata in una data e ora specifiche.

HOLD  
Job è in attesa di essere rilasciato prima di essere eseguito.

COMPLETED  
Job è stato eseguito con successo.

NON RIUSCITO  
L'esecuzione del Job non è riuscita.

UNKNOWN  
Lo stato è sconosciuto.

## Invia il lavoro e pianifica l'input del lavoro
<a name="submit-job"></a>

L'input del processo di invio e pianificazione è la serializzazione JSON di un `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage` oggetto. L'input di esempio riportato di seguito mostra tutti i campi relativi a tale bean.

Esempio di input per l'invio del lavoro:

```
{
    "messageQueueName":null,
    "scheduleDate":null,
    "scheduleTime":null,
    "programName":"PTA0044",
    "programParams":
     {"wmind":"B"},
    "localDataAreaValue":"",
    "userName":"USER1",
    "jobName":"PTA0044",
    "jobNumber":9,
    "jobPriority":5,
    "executionDate":"20181231",
    "jobQueue":"queue1",
    "jobOnHold":false
}
```

Esempio di input per pianificare un lavoro:

```
{
     "scheduleCron": "*/2 * * * * ?",
     "programName":"LOGPGM",
     "programParams": {
         "cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 2 seconds!\"]"
     },
     "localDataAreaValue":"",
     "userName":"PVO",
     "jobName":"LOGGERJOB",
     "jobPriority":5,
     "jobQueue":"queue1",
     "scheduleMisfirePolicy": 4,
     "startTime": "2003/05/04 07:00:00.000 GMT-06:00",
     "endTime": "2003/05/04 07:00:07.000 GMT-06:00"
 }
```

Numero del lavoro  
se il numero del lavoro è 0, il numero del lavoro verrà generato automaticamente utilizzando il numero successivo nella sequenza numerica del lavoro. Tale valore deve essere impostato su 0 (tranne che a scopo di test).

Priorità del lavoro  
La priorità del lavoro predefinita in AS400 è 5. L'intervallo valido è 0-9, dove 0 è la priorità più alta.

jobOnHold  
Se un lavoro viene inviato in sospeso, non verrà eseguito immediatamente ma solo quando qualcuno lo «rilascia». Un job può essere rilasciato utilizzando l'API REST (/release o /release-all).

ScheduleDate e ScheduleTime  
Se questi valori non sono nulli, il lavoro verrà eseguito alla data e all'ora specificate. 

Data  
Può essere fornito con format MMddyy o dd MMyyyy (la dimensione dell'input determinerà il formato utilizzato)

Orario  
Può essere fornito con format HHmm o HHmmss (la dimensione dell'input determinerà il formato utilizzato)

Parametri del programma  
Verrà passato al programma come mappa.

scheduleMisfirePolicy  
Definisce la strategia utilizzata quando un trigger viene attivato male. Di seguito sono riportati i valori possibili:  

1. Rilascia il primo errore e scarta gli altri.

1. Invia un lavoro in sospeso per il primo errore e scarta gli altri errori.

1. Scarta l'errore di accensione.

1. Rilascia tutti i fallimenti. La coda dei lavori eseguirà tutti i lavori.

## Elenco delle risposte ai lavori pianificati
<a name="list-scheduled-jobs"></a>

 Questa è la struttura dell'endpoint list-jobs job queue. Il messaggio di invio del lavoro utilizzato per inviare quel lavoro fa parte della risposta. Può essere usato per tracciare o testare o inviare nuovamente. Quando un lavoro viene completato, verranno inserite anche la data di inizio e la data di fine.

```
[
  {
    "jobName": "PTA0044",
    "userName": "USER1",
    "jobNumber": 9,
    "jobPriority": 5,
    "status": "HOLD",
    "jobDelay": 0,
    "startDate": null,
    "endDate": null,
    "jobQueue": "queue1",
    "message": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "programName": "PTA0044",
      "programParams": {"wmind": "B"},
      "localDataAreaValue": "",
      "userName": "USER1",
      "jobName": "PTA0044",
      "jobNumber": 9,
      "jobPriority": 5,
      "executionDate": "20181231",
      "jobQueue": "queue1",
      "jobOnHold": true,
      "scheduleCron": null,
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "executionId": 1,
    "jobScheduledId": 0,
    "jobScheduledAt": null
  },
  {
    "jobName": "PTA0044",
    "userName": "USER1",
    "jobNumber": 9,
    "jobPriority": 5,
    "status": "COMPLETED",
    "jobDelay": 0,
    "startDate": "2022-10-13T22:48:34.025+00:00",
    "endDate": "2022-10-13T22:52:54.475+00:00",
    "jobQueue": "queue1",
    "message": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "programName": "PTA0044",
      "programParams": {"wmind": "B"},
      "localDataAreaValue": "",
      "userName": "USER1",
      "jobName": "PTA0044",
      "jobNumber": 9,
      "jobPriority": 5,
      "executionDate": "20181231",
      "jobQueue": "queue1",
      "jobOnHold": true,
      "scheduleCron": "*/20 * * * * ?",
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "executionId": 2,
    "jobScheduledId": 0,
    "jobScheduledAt": null
  }
]
```

## Elenco delle risposte ai lavori ripetuti
<a name="list-on-hold-jobs"></a>

Questa è la struttura dell'endpoint /schedule/listjob queue.

```
[
  {
    "id": 1,
    "status": "ACTIVE",
    "jobNumber": 1,
    "userName": "PVO",
    "msg": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "startTime": "2024/03/07 21:12:00.000 UTC",
      "endTime": "2024/03/07 21:13:59.000 UTC",
      "programName": "LOGPGM",
      "programParams": {"cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 20 seconds!\"]"},
      "localDataAreaValue": "",
      "userName": "PVO",
      "jobName": "LOGGERJOB",
      "jobNumber": 1,
      "jobScheduleId": 1,
      "jobPriority": 5,
      "executionDate": null,
      "jobQueue": "queue1",
      "jobOnHold": false,
      "scheduleCron": "*/20 * * * * ?",
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "lastUpdatedAt": "2024-03-07T21:11:13.282+00:00",
    "lastUpdatedBy": ""
  }
]
```