> For the complete documentation index, see [llms.txt](https://ouvretaferme.gitbook.io/ouvretaferme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ouvretaferme.gitbook.io/ouvretaferme/endpoints/production/plan-de-la-ferme/planches.md).

# Planches

Les planches de culture d'un jardin, avec leurs dimensions. Les planches de remplissage, créées par le produit pour porter une culture posée sur un jardin entier, n'apparaissent pas ici.

## Lister les planches

> Scope requis : \`production:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Planches"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"Bed":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"zone":{"type":"integer","format":"int64","description":"Parcelle. Identifiant d'un élément `Zone`."},"zoneFill":{"type":"boolean"},"plot":{"type":"integer","format":"int64","description":"Emplacement. Identifiant d'un élément `Plot`."},"plotFill":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":20,"nullable":true,"description":"Nom de la planche."},"length":{"type":"integer","nullable":true,"description":"Longueur de planche."},"width":{"type":"integer","nullable":true,"description":"Largeur travaillée de planche."},"alleyWidth":{"type":"integer","nullable":true,"description":"Largeur de passe-pied."},"area":{"type":"number","description":"Surface."},"seasonFirst":{"type":"integer","nullable":true,"description":"Exploité depuis."},"seasonLast":{"type":"integer","nullable":true,"description":"Exploité jusqu'à."}},"title":"Planches","description":"Les planches de culture d'un jardin, avec leurs dimensions. Les planches de remplissage, créées par le produit pour porter une culture posée sur un jardin entier, n'apparaissent pas ici."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/bedList":{"get":{"operationId":"getBedList","tags":["Planches"],"summary":"Lister les planches","description":"Scope requis : `production:read`.","parameters":[{"name":"start","in":"query","required":false,"description":"Rang du premier élément rendu, à partir de 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Nombre d'éléments rendus, 100 par défaut et 500 au plus. À 0, seul le total est rendu.","schema":{"type":"integer","minimum":0,"maximum":500,"default":100}},{"name":"ids","in":"query","required":false,"description":"Ne rend que ces identifiants, 100 au plus, séparés par des virgules.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"},"maxItems":100}},{"name":"afterId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant supérieur, pour parcourir une liste sans décalage quand elle change pendant la lecture.","schema":{"type":"integer","format":"int64"}},{"name":"beforeId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant inférieur.","schema":{"type":"integer","format":"int64"}},{"name":"season","in":"query","required":true,"description":"Exploité depuis.","schema":{"type":"integer"}},{"name":"plot","in":"query","required":false,"description":"Emplacement. Identifiant d'un élément `Plot`.","schema":{"type":"integer","format":"int64"}},{"name":"zone","in":"query","required":false,"description":"Parcelle. Identifiant d'un élément `Zone`.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Liste paginée des planches.","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"Nombre d'éléments que retiennent les filtres, sans tenir compte de la pagination (`start`, `limit`, `afterId`, `beforeId`)."},"list":{"type":"array","items":{"$ref":"#/components/schemas/Bed"}}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Consulter une planche

> Scope requis : \`production:read\`. Pour lire plusieurs planches, \`GET /bedList?ids=12,15,18\` en rend jusqu'à 100, et ne compte que pour un appel.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Planches"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"Bed":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"zone":{"type":"integer","format":"int64","description":"Parcelle. Identifiant d'un élément `Zone`."},"zoneFill":{"type":"boolean"},"plot":{"type":"integer","format":"int64","description":"Emplacement. Identifiant d'un élément `Plot`."},"plotFill":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":20,"nullable":true,"description":"Nom de la planche."},"length":{"type":"integer","nullable":true,"description":"Longueur de planche."},"width":{"type":"integer","nullable":true,"description":"Largeur travaillée de planche."},"alleyWidth":{"type":"integer","nullable":true,"description":"Largeur de passe-pied."},"area":{"type":"number","description":"Surface."},"seasonFirst":{"type":"integer","nullable":true,"description":"Exploité depuis."},"seasonLast":{"type":"integer","nullable":true,"description":"Exploité jusqu'à."}},"title":"Planches","description":"Les planches de culture d'un jardin, avec leurs dimensions. Les planches de remplissage, créées par le produit pour porter une culture posée sur un jardin entier, n'apparaissent pas ici."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/bed/{id}":{"get":{"operationId":"getBedById","tags":["Planches"],"summary":"Consulter une planche","description":"Scope requis : `production:read`. Pour lire plusieurs planches, `GET /bedList?ids=12,15,18` en rend jusqu'à 100, et ne compte que pour un appel.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Planche demandée.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bed"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Modifier une planche

> Scope requis : \`production:write\`. Le corps porte tous les champs modifiables, ou seulement ceux que nomme sa clé \`properties\` (mise à jour partielle, voir la vue d'ensemble).

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Planches"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"BedUpdate":{"type":"object","properties":{"plot":{"type":"integer","format":"int64","description":"Emplacement. Identifiant d'un élément `Plot`."},"name":{"type":"string","minLength":1,"maxLength":20,"nullable":true,"description":"Nom de la planche."},"length":{"type":"integer","nullable":true,"description":"Longueur de planche."},"width":{"type":"integer","nullable":true,"description":"Largeur travaillée de planche."},"alleyWidth":{"type":"integer","nullable":true,"description":"Largeur de passe-pied."},"seasonFirst":{"type":"integer","nullable":true,"description":"Exploité depuis."},"seasonLast":{"type":"integer","nullable":true,"description":"Exploité jusqu'à."}},"required":["plot","name","length","width","alleyWidth","seasonFirst","seasonLast"]},"Bed":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"zone":{"type":"integer","format":"int64","description":"Parcelle. Identifiant d'un élément `Zone`."},"zoneFill":{"type":"boolean"},"plot":{"type":"integer","format":"int64","description":"Emplacement. Identifiant d'un élément `Plot`."},"plotFill":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":20,"nullable":true,"description":"Nom de la planche."},"length":{"type":"integer","nullable":true,"description":"Longueur de planche."},"width":{"type":"integer","nullable":true,"description":"Largeur travaillée de planche."},"alleyWidth":{"type":"integer","nullable":true,"description":"Largeur de passe-pied."},"area":{"type":"number","description":"Surface."},"seasonFirst":{"type":"integer","nullable":true,"description":"Exploité depuis."},"seasonLast":{"type":"integer","nullable":true,"description":"Exploité jusqu'à."}},"title":"Planches","description":"Les planches de culture d'un jardin, avec leurs dimensions. Les planches de remplissage, créées par le produit pour porter une culture posée sur un jardin entier, n'apparaissent pas ici."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/bed/{id}":{"put":{"operationId":"putBedById","tags":["Planches"],"summary":"Modifier une planche","description":"Scope requis : `production:write`. Le corps porte tous les champs modifiables, ou seulement ceux que nomme sa clé `properties` (mise à jour partielle, voir la vue d'ensemble).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BedUpdate"},{"type":"object","title":"Mise à jour partielle","description":"Les champs nommés dans `properties`, et eux seuls, chacun à sa nouvelle valeur.","required":["properties"],"properties":{"properties":{"type":"array","minItems":1,"items":{"type":"string","enum":["plot","name","length","width","alleyWidth","seasonFirst","seasonLast"]}}},"additionalProperties":true}]}}}},"responses":{"200":{"description":"Planche modifiée.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bed"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Supprimer une planche

> Scope requis : \`production:write\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Planches"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"responses":{"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/bed/{id}":{"delete":{"operationId":"deleteBedById","tags":["Planches"],"summary":"Supprimer une planche","description":"Scope requis : `production:write`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Supprimé. Le corps de la réponse est vide."},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Créer une planche

> Scope requis : \`production:write\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Planches"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"BedWrite":{"type":"object","properties":{"plot":{"type":"integer","format":"int64","description":"Emplacement. Identifiant d'un élément `Plot`."},"name":{"type":"string","minLength":1,"maxLength":20,"nullable":true,"description":"Nom de la planche."},"length":{"type":"integer","nullable":true,"description":"Longueur de planche."},"width":{"type":"integer","nullable":true,"description":"Largeur travaillée de planche."},"alleyWidth":{"type":"integer","nullable":true,"description":"Largeur de passe-pied."}},"required":["plot","name","length","width","alleyWidth"]},"Bed":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"zone":{"type":"integer","format":"int64","description":"Parcelle. Identifiant d'un élément `Zone`."},"zoneFill":{"type":"boolean"},"plot":{"type":"integer","format":"int64","description":"Emplacement. Identifiant d'un élément `Plot`."},"plotFill":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":20,"nullable":true,"description":"Nom de la planche."},"length":{"type":"integer","nullable":true,"description":"Longueur de planche."},"width":{"type":"integer","nullable":true,"description":"Largeur travaillée de planche."},"alleyWidth":{"type":"integer","nullable":true,"description":"Largeur de passe-pied."},"area":{"type":"number","description":"Surface."},"seasonFirst":{"type":"integer","nullable":true,"description":"Exploité depuis."},"seasonLast":{"type":"integer","nullable":true,"description":"Exploité jusqu'à."}},"title":"Planches","description":"Les planches de culture d'un jardin, avec leurs dimensions. Les planches de remplissage, créées par le produit pour porter une culture posée sur un jardin entier, n'apparaissent pas ici."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/bed":{"post":{"operationId":"postBed","tags":["Planches"],"summary":"Créer une planche","description":"Scope requis : `production:write`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BedWrite"}}}},"responses":{"201":{"description":"Planche créée.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bed"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```
