#%RAML 1.0
title: API-Vitam Version Alpha - Internal Offer
version: v1
baseUri: http://offer.internal.vitam.gouv.fr/{version}
protocols: [ HTTP ]

uses:
  StandardTypes: libraries/StandardTypes.raml
  StandardTraits: libraries/StandardTraits.raml
  AccessTypes: libraries/AccessTypes.raml
  AccessTraits: libraries/AccessTraits.raml
  DslTypes: libraries/DslTypes.raml
  CollectionTraits: libraries/CollectionTraits.raml
  StorageTypes: libraries/StorageTypes.raml
  StorageTraits: libraries/StorageTraits.raml
  StorageResourceTraits: libraries/StorageResourceTypes.raml

securitySchemes:
  VitamPlatform: !include securitySchemes/SecuritySchemeVitamInternal.raml

securedBy: [ VitamPlatform ]

mediaType: application/json

types:
  _reserved:
    type: string


documentation:
  - title: Avertissements
    content: !include docs-fr/avertissement.md


/objects:
  displayName: Objects operations
  description: |
    Pour gérer la création de nouveaux Objects, sur la base d'une stratégie de stockage à appliquer

  /{type}:
    displayName: Single Container API
    description: |
      API de gestion des objects.
    get:
      description: |
        Pour obtenir les informations sur la collection des objets
      is: [CollectionTraits.collection-get, StorageTraits.StrategyStorage]
      responses:
        200:
          body:
            application/json:
              type: StorageTypes.ContainerInfo
              example: !include libraries/samples/containerInfo.sample

    /logs:
      displayName: Logs on the offer defined by container
      description: |
        Logs de l'offre définis par le conteneur
      get:
        description: |
          Recherche de logs de l'offre définis par le conteneur.
        is: [StorageTraits.StorageLog, CollectionTraits.collection-get, StorageTraits.StrategyStorage]

    /count:
      displayName: Count the number of objects on the offer objects defined container
      description: |
        Compte le nombre d'objets
      get:
        description: |
          Compte le nombre d'objets pour ce tenant.
        is: [CollectionTraits.collection-get, StorageTraits.StrategyStorage]
        responses:
          200:
            body:
              application/json:
                type: StorageTypes.ContainerInfo
                example: !include libraries/samples/containerInfo.sample

    /{id_object}:
      displayName: Object operations
      type: StorageResourceTraits.StoreWmrmItem
      head:
        description: |
          Vérifie l'existance et la cohérence d'un objet.
        is: [CollectionTraits.collection-head, StorageTraits.StrategyStorageCheck]

/status:
  get:
    is: [ StandardTraits.Status, StandardTraits.StandardHeader200,
      StandardTraits.StandardHeader401, StandardTraits.StandardHeader404, StandardTraits.StandardHeader503 ]
