# API-Vitam Version Alpha - Ingest Interne version v1

http://ingest.internal.vitam.gouv.fr/{version}

- version: required(v1)

### Avertissements

Cette version d'API présente des fonctionnalités sous différents statuts :

- Supportées : rien n'est spécifié, la fonctionnalité ou la donnée est supportée
- Non supportées : le mot clef UNSUPPORTED est indiqué et précise que cette fonctionnalité ou donnée n'est pas supportée par l'implémentaton courante

Cette version d'API présente des fonctionnalités sous différentes versions :

- Alpha : l'API est dans une première version, susceptible d'évoluer fortement
- Beta : l'API est proche de sa version stable
- Production : l'API est considérée comme "production ready"
- Deprecated : l'API est considérée comme obsolète et devrait disparaître dans une version majeure prochaine

Pour le moment, la partie /containers/{cid} des paths n'est pas encore pris en compte mais doit être ajoutée à terme.

### Licence

Ce document est distribué sous les termes de la Licence Ouverte V2.0

### API Ingest Interne

API Ingest Interne

### Ingests

API de versement (Ingest). Ce point d'entrée permet de chercher ou de créer une transaction de versement. Une transaction d'entrée est volatile, c'est à dire qu'elle disparaîtra dès qu'elle sera terminée. Sa terminaison est liée à la production du rapport et sa récupération par le service de transfert ayant effectué l'entrée.

Crée une transaction d'entrée :

- une requête unique, avec un 'body' contenant toutes les informations dans un ZIP ou un TAR :
- Métadonnées dans un format SEDA XML ou Json de nom manifest.xml ou manifest.json
- Tous les binaires dans le répertoire "/content"
- d'autres formes suivront (multipart/form-data) avec de multiples requêtes utilisant les sous-collections futures Units et Objects

#### /ingests post

post

Only valid when there is a X-Http-Method-Override: GET header, the behavior is the same as GET /ingests with a body

- request body : JSON of query in DSL Vitam
- response : JSON of selected Ingest operations / HTTP CODE 200 or 206

#### post /ingests

Only valid when there is a X-Http-Method-Override: GET header, the behavior is the same as GET /ingests with a body

- request body : JSON of query in DSL Vitam
- response : JSON of selected Ingest operations / HTTP CODE 200 or 206

Secured by VitamPlatform

Based on Platform Secret

### Headers

- X-Action: required(string)
- X-Context-Id: (string)
- X-Http-Method-Override: (GET)
- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

- X-Cursor: (boolean)

  If present and true means the query could use a cursor as response if necessary

- X-Cursor-Id: (string)

  If present, means the query could continue with the next set of response, according to current position of the Cursor Id

### Body

Media type: application/json

Type: object

Properties

- $query: required(object)

  Contains one query

- $filter: (object)

  Contains filter to apply (for GET only)

  - $offset: (integer - minimum: 1 - maximum: 100000)
  - $limit: (integer - minimum: 1 - maximum: 100000)
  - $orderby: (object)
  - $hint: (one of , cache, nocache)
- $projection: (object)

  Contains projection to apply (for GET only)

  - $fields: (object)
  - $usage: (string)
- $data: (object)

  Contains data to insert (for POST only)

- $facetQuery: (object)

  Contains facet to apply (for GET only)

- $action: (array of object)

  Contains actions to apply as update (for PUT only)

  Items:

Example:

    {
      "$query":
        { "$range": {
          "start_date": {
            "$gte": "2014-01-10", "$lte": "2014-03-10"
          }
        }
      },
      "$filter": { "$limit": 100 },
      "$projection": { "$fields": { "#id": 1, "start_date": 1, "state": 1 } }
    }

## HTTP status code 200

Returns the list of selected ingest operations

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

### Body

Media type: application/json

Type: object

Properties

- $hits: required(object)

  Contains the hits for the response

  - total: required(integer)

    Total estimated possible answears

  - offset: required(integer)

    Offset on possible answears

  - limit: required(integer)

    Limit specified in the request (or implicit) from Offset

  - size: required(integer)

    Number of currently returned answears

  - time_out: (boolean)

    True means the request was too long and so only partial result could be retrieved

- $context: required(object)

  Contains Request related to this to reply

  - $query: required(object)

    Contains one query

  - $filter: (object)

    Contains filter to apply (for GET only)

    - $offset: (integer - minimum: 1 - maximum: 100000)
    - $limit: (integer - minimum: 1 - maximum: 100000)
    - $orderby: (object)
    - $hint: (one of , cache, nocache)
  - $projection: (object)

    Contains projection to apply (for GET only)

    - $fields: (object)
    - $usage: (string)
  - $data: (object)

    Contains data to insert (for POST only)

  - $facetQuery: (object)

    Contains facet to apply (for GET only)

  - $action: (array of object)

    Contains actions to apply as update (for PUT only)

    Items:

  Example:

      {
        "$query": {
          "$path": "aaaaa"
        }
      }

- $results: required(array of object)

  Contains list of items

  Items:

- $facet: (object)

  Contains facet if requested

Example:

    {
      "$hits": {
        "total": 3,
        "size": 3,
        "offset": 0,
        "limit": 100,
        "time_out": false
      },
      "$context": {
        "$query":
          { "$range": {
            "start_date": {
              "$gte": "2014-01-10", "$lte": "2014-03-10"
            }
          }
        },
        "$filter": { "$limit": 100 },
        "$projection": { "$fields": { "#id": 1, "start_date": 1, "state": 1 } }
      },
      "$results": [
        {
          "#id": "id1", "start_date": "2014-01-10T03:06:17.396Z", "state": "Done"
        },
        {
          "#id": "id2", "start_date": "2014-01-15T03:06:17.396Z", "state": "Error"
        },
        {
          "#id": "id3", "start_date": "2014-03-09T03:06:17.396Z", "state": "Running"
        }
      ]
    }

## HTTP status code 206

Returns the list of selected ingest operations using Cursor

### Headers

- X-Cursor-Id: (string)

  If present, means the query could continue with the next set of response, according to current position of the Cursor Id

- X-Cursor-Timeout: (datetime)

  When X-Cursor-Id is present, it specifies the date and time limit of the availability of this cursor Id

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

### Body

Media type: application/json

Type: object

Properties

- $hits: required(object)

  Contains the hits for the response

  - total: required(integer)

    Total estimated possible answears

  - offset: required(integer)

    Offset on possible answears

  - limit: required(integer)

    Limit specified in the request (or implicit) from Offset

  - size: required(integer)

    Number of currently returned answears

  - time_out: (boolean)

    True means the request was too long and so only partial result could be retrieved

- $context: required(object)

  Contains Request related to this to reply

  - $query: required(object)

    Contains one query

  - $filter: (object)

    Contains filter to apply (for GET only)

    - $offset: (integer - minimum: 1 - maximum: 100000)
    - $limit: (integer - minimum: 1 - maximum: 100000)
    - $orderby: (object)
    - $hint: (one of , cache, nocache)
  - $projection: (object)

    Contains projection to apply (for GET only)

    - $fields: (object)
    - $usage: (string)
  - $data: (object)

    Contains data to insert (for POST only)

  - $facetQuery: (object)

    Contains facet to apply (for GET only)

  - $action: (array of object)

    Contains actions to apply as update (for PUT only)

    Items:

  Example:

      {
        "$query": {
          "$path": "aaaaa"
        }
      }

- $results: required(array of object)

  Contains list of items

  Items:

- $facet: (object)

  Contains facet if requested

Example:

    {
      "$hits": {
        "total": 3,
        "size": 3,
        "offset": 0,
        "limit": 100,
        "time_out": false
      },
      "$context": {
        "$query":
          { "$range": {
            "start_date": {
              "$gte": "2014-01-10", "$lte": "2014-03-10"
            }
          }
        },
        "$filter": { "$limit": 100 },
        "$projection": { "$fields": { "#id": 1, "start_date": 1, "state": 1 } }
      },
      "$results": [
        {
          "#id": "id1", "start_date": "2014-01-10T03:06:17.396Z", "state": "Done"
        },
        {
          "#id": "id2", "start_date": "2014-01-15T03:06:17.396Z", "state": "Error"
        },
        {
          "#id": "id3", "start_date": "2014-03-09T03:06:17.396Z", "state": "Running"
        }
      ]
    }

## HTTP status code 401

Unauthorized, authentication in error

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 412

Precondition Failed, some predicates are incorrect, therefore the operation is not possible

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key

### Operations

Administration des Workflows Asynchrones (opérations).

#### /operations/{id} get post put delete head

get

Permet de récupérer le statut du workflow en cours

post

Permet de soumettre un workflow à l'exécution

put

Permet d'interagir avec une opération (pause, reprise, repriorisation par exemple)

delete

pour annuler le workflow.

head

Obtenir le statut d'un workflow

#### get /operations/{id}

Permet de récupérer le statut du workflow en cours

Secured by VitamPlatform

Based on Platform Secret

### URI Parameters

- id: required(string)

### Headers

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 200

### Body

Media type: application/json

Type: object

Example:

    {
    "todo" : "à compléter...!",
     "id": "DefaultIngestWorkflow",
     "comment":"Default Ingest Workflow V3",
     "steps":
     [
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check manifest existence",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "checkSeda", "actionType": "NOBLOCK"}}]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Version",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "CheckVersion", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Objects Number",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "CheckObjectsNumber", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Extract Unit and ObjectGroup",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    			"actions":[{"action":{"actionKey": "ExtractSeda", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Storage Availability",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "CheckStorageAvailability", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Index Unit",
    		 "stepType":"BLOCK",
    			 "distribution" : {
    				 "kind":"LIST",
    				 "element" : "Units"
    				 },
    		 "actions":[{"action":{"actionKey": "IndexUnit", "actionType": "NOBLOCK"} }]

     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Store ObjectGroup",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"LIST",
    				 "element" : "ObjectGroup"
    				 },
    		 "actions":[{"action":{"actionKey": "StoreObjectGroup", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Index ObjectGroup",
    		 "stepType":"BLOCK",
    			 "distribution" : {
    				 "kind":"LIST",
    				 "element" : "ObjectGroup"
    				 },
    			"actions":[{"action":{"actionKey": "IndexObjectGroup", "actionType": "NOBLOCK"} }]

     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Digest Message",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    			"actions":[{"action":{"actionKey": "CheckConformity", "actionType": "NOBLOCK"} }]
     }
     ]
    }

## HTTP status code 202

### Body

Media type: application/json

Type: object

Example:

    {
        "id": "$id_async$",
        "type": "ingest",
        "state": "done",
        "task_status": "commit",
        "start_date": "2014-01-10T03:06:17.396Z",
        "end_date": "2014-01-20T03:06:17.396Z",
        "expiration_date": "2014-02-20T03:06:17.396Z",
        "result_link": "https://xxx/v1/ingests/456",
        "error": {
          "http_code": 404,
          "code": "ingest",
          "state": "File_Not_Found",
          "message": "File is not found",
          "description": "Operation on file xxx cannot be done since file is not found",
          "errors": [
            { "http_code": 415, "code": "ingest", "state": "Unsupported_Media_Type", "message": "Unsupported media type detected", "description": "File xxx has an unsupported media type yyy" },
            { "http_code": 412, "code": "ingest", "state": "Precondition_Failed", "message": "Precondition in error", "description": "Operation on file xxx cannot continue since precondition is in error" }
          ]
        }
    }

## HTTP status code 401

Unauthorized, authentication in error

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 409

Conflict, operation requested is in conflict with existing data

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 412

Precondition Failed, some predicates are incorrect, therefore the operation is not possible

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key

#### post /operations/{id}

Permet de soumettre un workflow à l'exécution

Secured by VitamPlatform

Based on Platform Secret

### URI Parameters

- id: required(string)

### Headers

- X-Action: required(string)
- X-Context-Id: (string)
- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

### Body

Media type: application/json

Type: object

Example:

    {
      "X-RequestId": "id",
      "code": 201,
      "vitamCode": 123456,
      "timestamp": "2015-07-14T17:07:14Z",
      "message": "message informatif retour"
    }

## HTTP status code 200

### Body

Media type: application/json

Type: object

Example:

    {
    "todo" : "à compléter...!",
     "id": "DefaultIngestWorkflow",
     "comment":"Default Ingest Workflow V3",
     "steps":
     [
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check manifest existence",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "checkSeda", "actionType": "NOBLOCK"}}]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Version",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "CheckVersion", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Objects Number",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "CheckObjectsNumber", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Extract Unit and ObjectGroup",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    			"actions":[{"action":{"actionKey": "ExtractSeda", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Storage Availability",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    		 "actions":[{"action":{"actionKey": "CheckStorageAvailability", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Index Unit",
    		 "stepType":"BLOCK",
    			 "distribution" : {
    				 "kind":"LIST",
    				 "element" : "Units"
    				 },
    		 "actions":[{"action":{"actionKey": "IndexUnit", "actionType": "NOBLOCK"} }]

     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Store ObjectGroup",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"LIST",
    				 "element" : "ObjectGroup"
    				 },
    		 "actions":[{"action":{"actionKey": "StoreObjectGroup", "actionType": "NOBLOCK"} }]
     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Index ObjectGroup",
    		 "stepType":"BLOCK",
    			 "distribution" : {
    				 "kind":"LIST",
    				 "element" : "ObjectGroup"
    				 },
    			"actions":[{"action":{"actionKey": "IndexObjectGroup", "actionType": "NOBLOCK"} }]

     },
     {
     "workerGroupId" :"DefaultWorker",
    		 "stepName":"Check Digest Message",
    		 "stepType":"BLOCK",
    		 "distribution" : {
    				 "kind":"REF",
    				 "element" : "SIP/manifest.xml"
    				 },
    			"actions":[{"action":{"actionKey": "CheckConformity", "actionType": "NOBLOCK"} }]
     }
     ]
    }

## HTTP status code 202

### Body

Media type: application/json

Type: object

Example:

    {
        "id": "$id_async$",
        "type": "ingest",
        "state": "done",
        "task_status": "commit",
        "start_date": "2014-01-10T03:06:17.396Z",
        "end_date": "2014-01-20T03:06:17.396Z",
        "expiration_date": "2014-02-20T03:06:17.396Z",
        "result_link": "https://xxx/v1/ingests/456",
        "error": {
          "http_code": 404,
          "code": "ingest",
          "state": "File_Not_Found",
          "message": "File is not found",
          "description": "Operation on file xxx cannot be done since file is not found",
          "errors": [
            { "http_code": 415, "code": "ingest", "state": "Unsupported_Media_Type", "message": "Unsupported media type detected", "description": "File xxx has an unsupported media type yyy" },
            { "http_code": 412, "code": "ingest", "state": "Precondition_Failed", "message": "Precondition in error", "description": "Operation on file xxx cannot continue since precondition is in error" }
          ]
        }
    }

## HTTP status code 401

Unauthorized, authentication in error

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 409

Conflict, operation requested is in conflict with existing data

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 412

Precondition Failed, some predicates are incorrect, therefore the operation is not possible

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key

#### put /operations/{id}

Permet d'interagir avec une opération (pause, reprise, repriorisation par exemple)

Secured by VitamPlatform

Based on Platform Secret

### URI Parameters

- id: required(string)

### Headers

- X-Action: required(string)
- X-Context-Id: (string)
- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

### Body

Media type: application/json

Type: object

Example:

    {
      "X-RequestId": "id",
      "code": 201,
      "vitamCode": 123456,
      "timestamp": "2015-07-14T17:07:14Z",
      "message": "message informatif retour"
    }

## HTTP status code 200

### Body

Media type: application/json

Type: object

Example:

    {
        "id": "$id_async$",
        "type": "ingest",
        "state": "done",
        "task_status": "commit",
        "start_date": "2014-01-10T03:06:17.396Z",
        "end_date": "2014-01-20T03:06:17.396Z",
        "expiration_date": "2014-02-20T03:06:17.396Z",
        "result_link": "https://xxx/v1/ingests/456",
        "error": {
          "http_code": 404,
          "code": "ingest",
          "state": "File_Not_Found",
          "message": "File is not found",
          "description": "Operation on file xxx cannot be done since file is not found",
          "errors": [
            { "http_code": 415, "code": "ingest", "state": "Unsupported_Media_Type", "message": "Unsupported media type detected", "description": "File xxx has an unsupported media type yyy" },
            { "http_code": 412, "code": "ingest", "state": "Precondition_Failed", "message": "Precondition in error", "description": "Operation on file xxx cannot continue since precondition is in error" }
          ]
        }
    }

## HTTP status code 401

Unauthorized, authentication in error

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 409

Conflict, operation requested is in conflict with existing data

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 412

Precondition Failed, some predicates are incorrect, therefore the operation is not possible

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key

#### delete /operations/{id}

pour annuler le workflow.

Secured by VitamPlatform

Based on Platform Secret

### URI Parameters

- id: required(string)

### Headers

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 204

Succesfully deleted resource

## HTTP status code 401

Unauthorized, authentication in error

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 409

Conflict, operation requested is in conflict with existing data

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 412

Precondition Failed, some predicates are incorrect, therefore the operation is not possible

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key

#### head /operations/{id}

Obtenir le statut d'un workflow

Secured by VitamPlatform

Based on Platform Secret

### URI Parameters

- id: required(string)

### Headers

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 200

operation trouve et status retourne avec succes

## HTTP status code 204

operation non trouve

## HTTP status code 401

Unauthorized, authentication in error

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 409

Conflict, operation requested is in conflict with existing data

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 412

Precondition Failed, some predicates are incorrect, therefore the operation is not possible

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key

### /status

#### /status get

get

#### get /status

Secured by VitamPlatform

Based on Platform Secret

## HTTP status code 200

OK, operation in success

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

### Body

Media type: application/json

Type: object

Properties

- id: required(string)

  Id of the instance

- service: required(string)

  Service Name for this instance

- startDate: required(datetime)

  Date time for the start of this instance

- status: required(one of Active, Inactive, ShutdownInProgress, Unreachable)

  Status of this instance

Example:

    {
      "id": "abcdef",
      "service": "serviceName",
      "startDate": "2015-07-14T17:07:14Z",
      "status": "Active"
    }

## HTTP status code 404

Not Found, requested resource does not exist

### Headers

- X-Request-Id: required(string)

  Unique Request Identifier

  Example:

      AbDUh67jj

- FullApiVersion: required(string)

  Complete Version of the API.

  Example:

      V1.25

- X-Application-Id: (string)

  Session Identifier from client Front-Office Application

  Example:

      SESSION-ID-00001

- X-Tenant-Id: (number)

  Unique Tenant Identifier

  Example:

      0

## HTTP status code 503

Service Unavailable, the requested service is unavailable

# Secured by VitamPlatform

### Headers

- X-Vitam-Key: required(string)

  Vitam Platform Key