openapi: 3.0.3
info:
  title: Interface API Gamma Refonte
  description: Interface API Gamma Refonte
  version: 1.0.0
  contact:
    name: DGDDI - Douane Française
    url: https://www.douane.gouv.fr/

paths:
  # Chemin facultatif
  /modelObjets:
    post:
      operationId: modelObjets
      responses:
        '200':
          description: 'Ensemble des objets'

components:
  schemas:
    TypeActionType:
      description: TypeAction
      type: string
      pattern: ^[a-zA-Z_\s]{1,50}$

    SIRETPrestataireType:
      description: SIRETPrestataire
      type: string
      pattern: ^[0-9]{14}$

    TypeCirculationType:
      description: TypeCirculation
      type: string
      pattern: ^[a-zA-Z_\s]{1,50}$

    TypeDocumentType:
      description: TypeDocument
      type: string
      pattern: ^MVV$|^DSA$

    NumeroDocumentType:
      description: NumeroDocument
      type: string
      pattern: ^\d{2}FRS[A-Z0-9]{14}N\d{1}|(FR|UE|EX)\d{4}-\d{7}$

    RaisonAnnulationType:
      description: RaisonAnnulation
      type: string
      minLength: 1
      maxLength: 350

    TypeProduitType:
      description: TypeProduit
      type: string
      pattern: ^M[0-9]{3}$

    AppellationOrigineType:
      description: AppellationOrigine
      type: string
      pattern: ^.{1,2}$

    AppellationAbregeeType:
      description: AppellationAbregee
      type: string
      pattern: ^.{5,8}$

    MillesimeType:
      description: Millesime
      type: string
      pattern: ^.{1,4}$

    CepageType:
      description: Cepage
      type: string
      pattern: ^.{4}$

    UniteIndiceRefractometriqueType:
      description: UniteIndiceRefractometrique
      type: string
      pattern: ^.{1,35}$

    IndiceRefractometriqueType:
      description: IndiceRefractometrique
      type: string
      pattern: ^\d{1,2}(\.\d){0,1}$|^\d(\.\d{1,4}){0,1}$

    TeneurSucreType:
      description: TeneurSucre
      type: string
      pattern: ^.{1,9}$

    NbRecipientType:
      description: NbRecipient
      type: string
      pattern: ^.{1,9}$

    ContenanceType:
      description: Contenance
      type: string
      pattern: ^.{1,2}$

    PoidsBrutRecipientType:
      description: PoidsBrutRecipient
      type: string
      pattern: ^.{1,15}$

    PoidsNetRecipientType:
      description: PoidsNetRecipient
      type: string
      pattern: ^.{1,15}$

    VolumeTotalRecipientType:
      description: VolumeTotalRecipient
      type: string
      pattern: ^\d{1,15}(\.\d){0,1}$

    CodeZoneViticoleType:
      description: CodeZoneViticole
      type: string
      pattern: ^.{1}$

    VolumeTotalType:
      description: VolumeTotal
      type: string
      pattern: ^\d{1,15}(\.\d){0,1}$

    CodeManipulationMoutsType:
      description: CodeManipulationMouts
      type: string
      pattern: ^.{1,35}$

    CommentaireCodeManipulationMoutsType:
      description: CommentaireCodeManipulationMouts
      type: string
      pattern: ^.{1,50}$

    IdAutoriteDestIc:
      type: string
      pattern: ^[a-zA-Z0-9]{5}$
      description: IdAutoriteDescIc
      example: abcde

    TransportUnitCodeType:
      type: string
      description: Transport Unit Code
      pattern: ^[0-9]{1,2}$
      example: "29"

    DureeType :
      type: string
      description: The format of Duree Type, expressed in hours or in days for MVVDSA Documents
      pattern: ^H(0[1-9]|1[0-9]|2[0-4])$|^J(0[1-9]|[1-9][0-9])$
      example: "H24 ou J02"

    QuantiteType:
      description: Quantity
      type: string
      pattern: ^\d{1,15}(\.\d{1,3}){0,1}$
      example: "5850130 ou 95991385.9 ou 32284479386.83 ou 50422051684.144"

    PoidsNetType:
      description: Net Mass
      type: string
      pattern: ^\d{1,16}(\.\d{1,6}){0,1}?$
      example: "1831870521 ou 7361611.7 ou 907545.17 ou 6057.125 ou 6586454.2069 ou 35.68430 ou 3979.145140"

    PoidsBrutType:
      description: Gross Mass
      type: string
      pattern: ^\d{1,16}(\.\d{1,6}){0,1}?$
      example: "1831870521 ou 7361611.7 ou 907545.17 ou 6057.125 ou 6586454.2069 ou 35.68430 ou 3979.145140"
