

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à.

# Crea un esempio di notifiche per CodeBuild
<a name="sample-build-notifications"></a>

Amazon CloudWatch Events dispone di un supporto integrato per AWS CodeBuild. CloudWatch Events è un flusso di eventi di sistema che descrive i cambiamenti nelle tue AWS risorse. Con CloudWatch Events, scrivi regole dichiarative per associare gli eventi di interesse alle azioni automatiche da intraprendere. Questo esempio utilizza Amazon CloudWatch Events e Amazon Simple Notification Service (Amazon SNS) per inviare notifiche di build agli abbonati ogni volta che le build hanno successo, falliscono, passano da una fase di compilazione all'altra o qualsiasi combinazione di questi eventi.

**Importante**  
L'esecuzione di questo esempio potrebbe comportare addebiti sul tuo account. AWS Questi includono eventuali addebiti per CodeBuild e per AWS risorse e azioni relative ad Amazon CloudWatch e Amazon SNS. Per ulteriori informazioni, consulta [CodeBuild i prezzi, i CloudWatch](https://aws.amazon.com/codebuild/pricing) [prezzi di Amazon](https://aws.amazon.com/cloudwatch/pricing) e i prezzi di [Amazon SNS](https://aws.amazon.com/sns/pricing).

**Topics**
+ [Esegui l'esempio di notifiche di compilazione](#sample-build-notifications-running)
+ [Informazioni di riferimento sul formato di input delle notifiche di compilazione](sample-build-notifications-ref.md)

## Esegui l'esempio di notifiche di compilazione
<a name="sample-build-notifications-running"></a>

Utilizza la procedura seguente per eseguire l'esempio di notifiche di compilazione.

**Per eseguire questo esempio**

1. Se hai già configurato e sottoscritto un argomento in Amazon SNS che desideri utilizzare per questo esempio, vai avanti al passaggio 4. Altrimenti, se utilizzi un utente IAM anziché un account AWS root o un utente amministratore per lavorare con Amazon SNS, aggiungi la seguente dichiarazione (tra *\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1* e*\$1\$1\$1 END ADDING STATEMENT HERE \$1\$1\$1*) all'utente (o al gruppo IAM a cui l'utente è associato). L'utilizzo di un account AWS root non è consigliato. Questa dichiarazione consente di visualizzare, creare, sottoscrivere e testare l'invio di notifiche agli argomenti in Amazon SNS. Le ellissi (`...`) vengono utilizzate per brevità e per aiutare i clienti a individuare il punto in cui aggiungere l'istruzione. Non rimuovere nessuna istruzione e non digitare queste ellissi nella policy esistente.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sns:CreateTopic",
                   "sns:GetTopicAttributes",
                   "sns:List*",
                   "sns:Publish",
                   "sns:SetTopicAttributes",
                   "sns:Subscribe"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------
**Nota**  
L'entità IAM che modifica questa politica deve disporre dell'autorizzazione in IAM per modificare le politiche.  
Per ulteriori informazioni, consulta [Modifica delle politiche gestite dai clienti](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#edit-managed-policy-console) o la sezione «Modificare o eliminare una politica in linea per un gruppo, un utente o un ruolo» in [Working with inline policies (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html#AddingPermissions_Console) nella *IAM* User Guide.

1. Crea o identifica un argomento in Amazon SNS. AWS CodeBuild utilizza CloudWatch Events per inviare notifiche di build su questo argomento tramite Amazon SNS. 

   Per creare un argomento:

   1. [Apri la console Amazon SNS in https://console.aws.amazon.com /sns.](https://console.aws.amazon.com/sns)

   1. Scegli **Create topic** (Crea argomento). 

   1. In **Create new topic (Crea nuovo argomento)** per **Topic name (Nome argomento)**, digitare un nome per l'argomento, ad esempio **CodeBuildDemoTopic**. (Se si sceglie un nome diverso, sostituirlo in tutto il campione). 

   1. Scegli **Create topic** (Crea argomento).

   1. Nella CodeBuildDemoTopic pagina **Dettagli argomento:**, copia il valore **Arn dell'argomento**. che servirà per la fase successiva. 

        
![\[Il valore Arn dell'argomento.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/topic-arn.png)

      

   Per ulteriori informazioni, consulta [Creare un argomento](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) nella *Amazon SNS Developer* Guide.

1. Abbonare uno o più destinatari all'argomento per ricevere notifiche e-mail. 

   Per sottoscrivere un destinatario a un argomento:

   1. **Con la console Amazon SNS aperta dal passaggio precedente, nel riquadro di navigazione, scegli **Abbonamenti, quindi scegli Crea abbonamento**.**

   1. In **Create subscription (Crea abbonamento)**, per **Topic ARN (ARN argomento)**, copiare e incollare l'ARN dell'argomento dalla fase precedente.

   1. Per **Protocollo**, scegli **E-mail**.

   1. Per **Endpoint**, immettere l'indirizzo e-mail completo del destinatario. 

        
![\[La configurazione dell'abbonamento.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/create-subscription.png)

      

   1. Selezionare **Crea sottoscrizione**.

   1. Amazon SNS invia un'e-mail di conferma dell'abbonamento al destinatario. Per iniziare a ricevere le notifiche e-mail, il destinatario deve selezionare il link **Confirm subscription (Conferma abbonamento)** nell'e-mail di conferma dell'abbonamento. Dopo che il destinatario ha fatto clic sul link, se l'iscrizione è avvenuta correttamente, Amazon SNS visualizza un messaggio di conferma nel browser Web del destinatario.

   Per ulteriori informazioni, consulta [Abbonarsi a un argomento](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html) nella *Amazon SNS Developer Guide*.

1. Se utilizzi un utente anziché un account AWS root o un utente amministratore per lavorare con CloudWatch Events, aggiungi la seguente dichiarazione (tra *\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1* e*\$1\$1\$1 END ADDING STATEMENT HERE \$1\$1\$1*) all'utente (o al gruppo IAM a cui l'utente è associato). L'utilizzo di un account AWS root non è consigliato. Questa istruzione viene utilizzata per consentire all'utente di lavorare con CloudWatch Events. Le ellissi (`...`) vengono utilizzate per brevità e per aiutare i clienti a individuare il punto in cui aggiungere l'istruzione. Non rimuovere nessuna istruzione e non digitare queste ellissi nella policy esistente.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "events:*",
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::*:role/Service*"
           }
       ]
   }
   ```

------
**Nota**  
L'entità IAM che modifica questa politica deve disporre dell'autorizzazione in IAM per modificare le politiche.  
Per ulteriori informazioni, consulta [Modifica delle politiche gestite dai clienti](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#edit-managed-policy-console) o la sezione «Modificare o eliminare una politica in linea per un gruppo, un utente o un ruolo» in [Working with inline policies (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html#AddingPermissions_Console) nella *IAM* User Guide.

1. Crea una regola in CloudWatch Events. Per fare ciò, apri la CloudWatch console, in [https://console.aws.amazon.com/cloudwatch.](https://console.aws.amazon.com/cloudwatch)

1. Nel riquadro di navigazione, in **Events (Eventi)**, selezionare **Rules (Regolamento)**, quindi **Create rule (Crea regolamento)**. 

1. Nella pagina **Step 1: Create rule (Fase 1: Creare regolamento)**, dovrebbero già essere selezionate le opzioni **Event Pattern (Modello evento)** e **Build event pattern to match events by service (Crea un modello evento da abbinare agli eventi in base al servizio)**. 

1. Per **Service Name (Nome del servizio)**, selezionare **CodeBuild**. Per **Event Type (Tipo di evento)**, **All Events (Tutti gli eventi)** dovrebbe già essere selezionato.

1. Il codice seguente deve essere visualizzato nell'**anteprima del modello di evento**:

   ```
   {
     "source": [ 
       "aws.codebuild"
     ]
   }
   ```

1. Scegliete **Modifica** e sostituite il codice in **Event Pattern Preview** con uno dei due modelli di regole seguenti.

   Il primo modello di regola attiva un evento quando una compilazione viene avviata o completata, per i progetti di compilazione specificati in AWS CodeBuild.

   ```
   {
     "source": [ 
       "aws.codebuild"
     ], 
     "detail-type": [
       "CodeBuild Build State Change"
     ],
     "detail": {
       "build-status": [
         "IN_PROGRESS",
         "SUCCEEDED", 
         "FAILED",
         "STOPPED" 
       ],
       "project-name": [
         "my-demo-project-1",
         "my-demo-project-2"
       ]
     }  
   }
   ```

   Nella regola precedente, eseguire le modifiche al codice seguente laddove necessario.
   + Per attivare un evento quando una compilazione viene avviata o completata, lasciare tutti i valori come illustrato nell'array `build-status` oppure rimuovere completamente l'array `build-status`. 
   + Per attivare un evento solo quando una compilazione viene completata, rimuovere `IN_PROGRESS` dall'array `build-status`. 
   + Per attivare un evento solo quando una compilazione viene avviata, rimuovere tutti i valori eccetto `IN_PROGRESS` dall'array `build-status`.
   + Per attivare gli eventi per tutti i progetti di compilazione, rimuovere completamente l'array `project-name`.
   + Per attivare gli eventi solo per singoli progetti di compilazione, specificare il nome di ciascun progetto di compilazione nell'array `project-name`. 

   Il secondo modello di regola attiva un evento ogni volta che una compilazione si sposta da una fase di compilazione a un'altra, per i progetti di compilazione specificati in AWS CodeBuild.

   ```
   {
     "source": [ 
       "aws.codebuild"
     ], 
     "detail-type": [
       "CodeBuild Build Phase Change" 
     ],
     "detail": {
       "completed-phase": [
         "SUBMITTED",
         "PROVISIONING",
         "DOWNLOAD_SOURCE",
         "INSTALL",
         "PRE_BUILD",
         "BUILD",
         "POST_BUILD",
         "UPLOAD_ARTIFACTS",
         "FINALIZING"
       ],
       "completed-phase-status": [
         "TIMED_OUT",
         "STOPPED",
         "FAILED", 
         "SUCCEEDED",
         "FAULT",
         "CLIENT_ERROR"
       ],
       "project-name": [
         "my-demo-project-1",
         "my-demo-project-2"
       ]
     }  
   }
   ```

   Nella regola precedente, eseguire le modifiche al codice seguente laddove necessario.
   + Per attivare un evento per ogni modifica della fase di compilazione (che può inviare fino a nove notifiche per ogni compilazione), lasciare tutti i valori come illustrato nell'array `completed-phase` oppure rimuovere completamente l'array `completed-phase`.
   + Per attivare gli eventi solo per le singole modifiche della fase di compilazione, rimuovere il nome di ciascun progetto di compilazione nell'array `completed-phase` per cui non si desidera attivare un evento.
   + Per attivare un evento per ogni modifica dello stato della fase di compilazione, lasciare tutti i valori come illustrato nell'array `completed-phase-status` oppure rimuovere completamente l'array `completed-phase-status`.
   + Per attivare gli eventi solo per le singole modifiche dello stato della fase di compilazione, rimuovere il nome di ciascuno stato della fase di compilazione nell'array `completed-phase-status` per cui non si desidera attivare un evento.
   + Per attivare gli eventi per tutti i progetti di compilazione, rimuovi l'array `project-name`.
   + Per attivare gli eventi per i singoli progetti di compilazione, specificare il nome di ciascun progetto di compilazione nell'array `project-name`. 

   Per ulteriori informazioni sui pattern di eventi, consulta [Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/filtering-examples-structure.html) nella Amazon EventBridge User Guide.

   Per ulteriori informazioni sul filtraggio con pattern di eventi, consulta [Content-based Filtering with Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/content-filtering-with-event-patterns.html) nella Amazon EventBridge User Guide.
**Nota**  
Se si desidera attivare gli eventi sia per le modifiche dello stato della compilazione che per le modifiche della fase di compilazione, è necessario creare due regole separate, una per le modifiche dello stato della compilazione e l'altra per le modifiche della fase di compilazione. Se si tenta di combinare entrambe le regole in una singola regola, la regola combinata potrebbe produrre risultati imprevisti o smettere di funzionare del tutto.

   Al termine della sostituzione del codice, selezionare **Save (Salva)**.

1. In **Targets** (Destinazioni), seleziona **Add target** (Aggiungi destinazione). 

1. Nell'elenco degli obiettivi, selezionare **SNS topic (Argomento SNS)**; 

1. Per **Argomento**, selezionare l'argomento identificato o creato in precedenza. 

1. Espandere **Configure input (Configura input)**, quindi selezionare **Input Transformer (Trasformatore di input)**. 

1. Nella casella **Input Path (Percorso dell'input)**, immettere uno dei seguenti percorsi di input.

   Per una regola con il valore `CodeBuild Build State Change` per `detail-type`, immettere quanto segue.

   ```
   {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}
   ```

   Per una regola con il valore `CodeBuild Build Phase Change` per `detail-type`, immettere quanto segue.

   ```
   {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}
   ```

   Per ottenere altri tipi di informazioni, consultare [Informazioni di riferimento sul formato di input delle notifiche di compilazione](sample-build-notifications-ref.md).

1. Nella casella **Input Template (Modello dell'input)**, immettere uno dei seguenti modelli di input.

   Per una regola con il valore `CodeBuild Build State Change` per `detail-type`, immettere quanto segue.

   ```
   "Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."
   ```

   Per una regola con il valore `CodeBuild Build Phase Change` per `detail-type`, immettere quanto segue.

   ```
   "Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."
   ```

1. Scegli **Configura dettagli**.

1. Nella pagina **Step 2: Configure rule details (Fase 2: Configurare i dettagli della regola)**, immettere un nome e una descrizione facoltativa. Per **State (Stato)**, lasciare l'opzione **Enabled (Abilitato)** selezionata.

1. Scegli **Crea regola**. 

1. Crea progetti di compilazione, esegui le build e visualizza le informazioni sulle build.

1. Conferma che CodeBuild ora le notifiche di build sono state inviate correttamente. Ad esempio, verificare se le e-mail di notifica di compilazione si trovano nella casella di posta.

Per modificare il comportamento di una regola, nella CloudWatch console, scegli la regola che desideri modificare, scegli **Azioni** e quindi scegli **Modifica**. Apportare le modifiche alla regola, scegliere **Configure details (Configura dettagli)** e quindi selezionare **Update rule (Aggiorna regola)**.

Per smettere di usare una regola per inviare notifiche di build, nella CloudWatch console, scegli la regola che vuoi smettere di usare, scegli **Azioni** e quindi scegli **Disabilita**.

**Per eliminare completamente una regola, nella CloudWatch console, scegli la regola che desideri eliminare, scegli **Azioni** e quindi scegli Elimina.**

# Informazioni di riferimento sul formato di input delle notifiche di compilazione
<a name="sample-build-notifications-ref"></a>

CloudWatch invia notifiche in formato JSON.

Le notifiche di modifica dello stato di compilazione utilizzano il seguente formato:

```
{
  "version": "0",
  "id": "c030038d-8c4d-6141-9545-00ff7b7153EX",
  "detail-type": "CodeBuild Build State Change",
  "source": "aws.codebuild",
  "account": "123456789012",
  "time": "2017-09-01T16:14:28Z",
  "region": "us-west-2",
  "resources":[
    "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX"
  ],
  "detail":{
    "build-status": "SUCCEEDED",
    "project-name": "my-sample-project",
    "build-id": "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX",
    "additional-information": {
      "artifact": {
        "md5sum": "da9c44c8a9a3cd4b443126e823168fEX",
        "sha256sum": "6ccc2ae1df9d155ba83c597051611c42d60e09c6329dcb14a312cecc0a8e39EX",
        "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/my-output-artifact.zip"
      },
      "environment": {
        "image": "aws/codebuild/standard:5.0",
        "privileged-mode": false,
        "compute-type": "BUILD_GENERAL1_SMALL",
        "type": "LINUX_CONTAINER",
        "environment-variables": []
      },
      "timeout-in-minutes": 60,
      "build-complete": true,
      "initiator": "MyCodeBuildDemoUser",
      "build-start-time": "Sep 1, 2017 4:12:29 PM",
      "source": {
        "location": "codebuild-123456789012-input-bucket/my-input-artifact.zip",
        "type": "S3"
      },
      "logs": {
        "group-name": "/aws/codebuild/my-sample-project",
        "stream-name": "8745a7a9-c340-456a-9166-edf953571bEX",
        "deep-link": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-sample-project;stream=8745a7a9-c340-456a-9166-edf953571bEX"
      },
      "phases": [
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:12:29 PM",
          "end-time": "Sep 1, 2017 4:12:29 PM",
          "duration-in-seconds": 0,
          "phase-type": "SUBMITTED",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:12:29 PM",
          "end-time": "Sep 1, 2017 4:13:05 PM",
          "duration-in-seconds": 36,
          "phase-type": "PROVISIONING",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:05 PM",
          "end-time": "Sep 1, 2017 4:13:10 PM",
          "duration-in-seconds": 4,
          "phase-type": "DOWNLOAD_SOURCE",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:10 PM",
          "end-time": "Sep 1, 2017 4:13:10 PM",
          "duration-in-seconds": 0,
          "phase-type": "INSTALL",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:10 PM",
          "end-time": "Sep 1, 2017 4:13:10 PM",
          "duration-in-seconds": 0,
          "phase-type": "PRE_BUILD",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:10 PM",
          "end-time": "Sep 1, 2017 4:14:21 PM",
          "duration-in-seconds": 70,
          "phase-type": "BUILD",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:14:21 PM",
          "end-time": "Sep 1, 2017 4:14:21 PM",
          "duration-in-seconds": 0,
          "phase-type": "POST_BUILD",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:14:21 PM",
          "end-time": "Sep 1, 2017 4:14:21 PM",
          "duration-in-seconds": 0,
          "phase-type": "UPLOAD_ARTIFACTS",
          "phase-status": "SUCCEEDED"
        },
         {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:14:21 PM",
          "end-time": "Sep 1, 2017 4:14:26 PM",
          "duration-in-seconds": 4,
          "phase-type": "FINALIZING",
          "phase-status": "SUCCEEDED"
        },
        {
          "start-time": "Sep 1, 2017 4:14:26 PM",
          "phase-type": "COMPLETED"
        }
      ]
    },
    "current-phase": "COMPLETED",
    "current-phase-context": "[]",
    "version": "1"
  }
}
```

Le notifiche di modifica della fase di compilazione utilizzano il seguente formato:

```
{
  "version": "0",
  "id": "43ddc2bd-af76-9ca5-2dc7-b695e15adeEX",
  "detail-type": "CodeBuild Build Phase Change",
  "source": "aws.codebuild",
  "account": "123456789012",
  "time": "2017-09-01T16:14:21Z",
  "region": "us-west-2",
  "resources":[
    "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX"
  ],
  "detail":{
    "completed-phase": "COMPLETED",
    "project-name": "my-sample-project",
    "build-id": "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX",
    "completed-phase-context": "[]",
    "additional-information": {
      "artifact": {
        "md5sum": "da9c44c8a9a3cd4b443126e823168fEX",
        "sha256sum": "6ccc2ae1df9d155ba83c597051611c42d60e09c6329dcb14a312cecc0a8e39EX",
        "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/my-output-artifact.zip"
      },
      "environment": {
        "image": "aws/codebuild/standard:5.0",
        "privileged-mode": false,
        "compute-type": "BUILD_GENERAL1_SMALL",
        "type": "LINUX_CONTAINER",
        "environment-variables": []
      },
      "timeout-in-minutes": 60,
      "build-complete": true,
      "initiator": "MyCodeBuildDemoUser",
      "build-start-time": "Sep 1, 2017 4:12:29 PM",
      "source": {
        "location": "codebuild-123456789012-input-bucket/my-input-artifact.zip",
        "type": "S3"
      },
      "logs": {
        "group-name": "/aws/codebuild/my-sample-project",
        "stream-name": "8745a7a9-c340-456a-9166-edf953571bEX",
        "deep-link": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-sample-project;stream=8745a7a9-c340-456a-9166-edf953571bEX"
      },
      "phases": [
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:12:29 PM",
          "end-time": "Sep 1, 2017 4:12:29 PM",
          "duration-in-seconds": 0,
          "phase-type": "SUBMITTED",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:12:29 PM",
          "end-time": "Sep 1, 2017 4:13:05 PM",
          "duration-in-seconds": 36,
          "phase-type": "PROVISIONING",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:05 PM",
          "end-time": "Sep 1, 2017 4:13:10 PM",
          "duration-in-seconds": 4,
          "phase-type": "DOWNLOAD_SOURCE",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:10 PM",
          "end-time": "Sep 1, 2017 4:13:10 PM",
          "duration-in-seconds": 0,
          "phase-type": "INSTALL",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:10 PM",
          "end-time": "Sep 1, 2017 4:13:10 PM",
          "duration-in-seconds": 0,
          "phase-type": "PRE_BUILD",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:13:10 PM",
          "end-time": "Sep 1, 2017 4:14:21 PM",
          "duration-in-seconds": 70,
          "phase-type": "BUILD",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:14:21 PM",
          "end-time": "Sep 1, 2017 4:14:21 PM",
          "duration-in-seconds": 0,
          "phase-type": "POST_BUILD",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:14:21 PM",
          "end-time": "Sep 1, 2017 4:14:21 PM",
          "duration-in-seconds": 0,
          "phase-type": "UPLOAD_ARTIFACTS",
          "phase-status": "SUCCEEDED"
        },
        {
          "phase-context": [],
          "start-time": "Sep 1, 2017 4:14:21 PM",
          "end-time": "Sep 1, 2017 4:14:26 PM",
          "duration-in-seconds": 4,
          "phase-type": "FINALIZING",
          "phase-status": "SUCCEEDED"
        },
        {
          "start-time": "Sep 1, 2017 4:14:26 PM",
          "phase-type": "COMPLETED"
        }
      ]  
    },
    "completed-phase-status": "SUCCEEDED",
    "completed-phase-duration-seconds": 4,
    "version": "1",
    "completed-phase-start": "Sep 1, 2017 4:14:21 PM",
    "completed-phase-end": "Sep 1, 2017 4:14:26 PM"
  }
}
```