{"items":[{"type":"link","label":"Specification API — Public v2 (Preview)","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification","content":{"contentType":"overview","meta":{"name":"Specification API — Public v2 (Preview)"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"OpenAPISpecification.json","url":"/_bundle/@l10n/fr/catalog/Spec/@v2-preview/Specifications/OpenAPISpecification.json?download"},{"kind":"download","label":"OpenAPISpecification.yaml","url":"/_bundle/@l10n/fr/catalog/Spec/@v2-preview/Specifications/OpenAPISpecification.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"Specification API — Public v2 (Preview) (2.0-preview)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Operations that are not in the API reference yet. Each one carries a badge:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Limited"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": in production and available by agreement; contact Trace One to use it. It may still change."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Designed"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": planned; it may change before release."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An operation moves to the Specification API reference once it is validated for customers."},"children":[]}]}]}]}],"sectionId":"/"}],"sectionId":"/"},{"nodeType":"info-metadata","rows":[{"key":"group","value":"PLM"}]}]}]}},{"type":"separator","label":"Specifications","content":null},{"type":"group","label":"specifications","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specifications","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specifications","items":[{"label":"Search specifications","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specifications/specifications_search","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specifications/specifications_search","metadata":{"seo":{"title":"Search specifications","description":"Searches specifications across template types with filters and sorting. Returns a paginated list of specification summaries (chapter-agnostic). Use the template-specific endpoints to fetch chapter content."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Specifications_Search","name":"Search specifications","isWebhook":false,"pointer":"/paths/~1v2~1specifications~1search/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Search specifications","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Searches specifications across template types with filters and sorting.\nReturns a paginated list of specification summaries (chapter-agnostic).\nUse the template-specific endpoints to fetch chapter content.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/SpecificationSearchRequest"}},"schemaId":"components/schemas/SpecificationSearchRequest","pointer":"/paths/~1v2~1specifications~1search/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/specifications/search","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/SpecificationSearchRequest"}},"responseCodes":["200","400","401","403","429"],"pointer":"/v2/specifications/search","href":"specifications/specifications_search","openApiOperationId":"Specifications_Search","summary":"Search specifications"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/SpecificationSearchRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/SpecificationSearchRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns a paginated list of specifications","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/SpecificationSearchResult"}},"schemaId":"components/schemas/SpecificationSearchResult"},{"code":"400","description":"The search criteria are invalid"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1specifications~1search/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/SpecificationSearchResult","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/SpecificationSearchResult"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/specifications/specifications_search"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/specifications/search"}],"content":{"contentType":"group","meta":{"name":"specifications"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"specifications","showPageActions":true},{"nodeType":"markdoc","content":"Search specifications across all template types"}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/specifications/search","summary":"Search specifications","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/specifications/specifications_search","deprecated":false}]}]}]}]}},{"type":"group","label":"food-specifications","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications","items":[{"label":"Create food specification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_create","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_create","metadata":{"seo":{"title":"Create food specification","description":"Creates a specification in one call: identity, folder placement, itscomposition chapters (general/labelling — no identity outside thespec) inline, and REFERENCES to its library chapters. Atomic —everything this call creates exists after it, or nothing does (anyfailure returns 422 and no resource is created)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_Create","name":"Create food specification","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create food specification","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a specification in one call: identity, folder placement, its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"composition chapters (general/labelling — no identity outside the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"spec) inline, and REFERENCES to its library chapters. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Atomic"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"everything this call creates exists after it, or nothing does (any"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"failure returns 422 and no resource is created)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library-chapter slots ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"productionChapter"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"testingChapter"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":","},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"finishedProductChapter"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") take a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{ \"chapterId\": ... }"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" reference to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a chapter created beforehand at its own address"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST /v2/public/library/food/{type}-chapters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — born published)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The referenced chapter must be a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published, active version"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" owned"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"by your company — anything else is a 422."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"requirements"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are likewise REFERENCES to pre-created objects (ids"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Questionnaires are automatic"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", not part of this payload: at"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"creation the server instantiates one questionnaire per published"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questionnaire template matching the specification (template type +"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the trade item's brand and categories) and attaches it to its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter. Referencing pre-created questionnaire instances is not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"accepted: the member is refused (400), never dropped."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Late additions: general/labelling chapters omitted here arrive via"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"their spec-scoped "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PUT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (upsert). Library chapters are attached or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"swapped later via the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":".../link"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints. The created"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification is private until it is shared: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST .../share"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the share of the folder it is placed in, hands it over."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Scope: product specifications only."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" The specification type is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"server-fixed (ProductSpecification) — assortment specifications"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(which carry N production chapters) are out of scope. Packaging"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specifications have their own create"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST /v2/public/packaging/specifications"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodSpecificationCreateRequest"}},"schemaId":"components/schemas/FoodSpecificationCreateRequest","pointer":"/paths/~1v2~1food~1specifications/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodSpecificationCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/food/specifications","href":"food-specifications/foodspecifications_create","openApiOperationId":"FoodSpecifications_Create","summary":"Create food specification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodSpecificationCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodSpecificationCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The specification and all its chapters were created. It is private until "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST .../share"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", or the share of its folder, hands it over to the supplier."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodSpecificationCreated"}},"schemaId":"components/schemas/FoodSpecificationCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The document was rejected as a whole — nothing was created. Causes:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"field validation failure in the general/labelling chapters (incl."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"customFields vs template schema); a referenced library chapter that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is unknown, not a published active version, or not owned by your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company; an unknown requirement id, or the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"same requirement under two different chapter types."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/FoodSpecificationCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodSpecificationCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_create"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications"},{"label":"Get food specification","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_getbyid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_getbyid","metadata":{"seo":{"title":"Get food specification","description":"Returns specification identity, status, and chapter references.include adds content in the same response(FoodSpecificationWithChapters): chapters for every chapter, or alist of the chapters and sub-resources wanted, e.g.include=general,labelling or include=chapters,questionnaires.Without include, no content is returned. A property is present onlywhen its value is included; a chapter the specification does nothave reads null."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_GetById","name":"Get food specification","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get food specification","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns specification identity, status, and chapter references."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" adds content in the same response"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(FoodSpecificationWithChapters): "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"chapters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for every chapter, or a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"list of the chapters and sub-resources wanted, e.g."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include=general,labelling"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include=chapters,questionnaires"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Without "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", no content is returned. A property is present only"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"when its value is included; a chapter the specification does not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"have reads null."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The full document carries no ETags. A chapter write (If-Match) uses"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the ETag of that chapter's own GET, which stays the address for"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"reading one chapter. Content is composed by the same read mappers as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the chapter GETs, so both answer the same."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"include","in":"query","style":"form","explode":false,"schemaId":"schema_1","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Comma-separated. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"chapters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = general, labelling, production,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"testing, finishedProduct and customChapters. An unknown value is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a 400."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"include","in":"query","required":false,"schemaId":"schema_1","style":"form","explode":false}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}","href":"food-specifications/foodspecifications_getbyid","openApiOperationId":"FoodSpecifications_GetById","summary":"Get food specification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns the food specification, with the content "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" asked for"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodSpecificationWithChapters"}},"schemaId":"components/schemas/FoodSpecificationWithChapters"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodSpecificationWithChapters","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodSpecificationWithChapters"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_getbyid"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}"},{"label":"Get food specifications by IDs","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_collection","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_collection","metadata":{"seo":{"title":"Get food specifications by IDs","description":"Returns multiple food specifications (identity + chapter refs) ina single call. Maximum 50 IDs per request. All or nothing: oneunknown id, or an id that is not a food specification, answers 404;one specification you cannot read answers 403."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_Collection","name":"Get food specifications by IDs","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1collection/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get food specifications by IDs","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns multiple food specifications (identity + chapter refs) in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a single call. Maximum 50 IDs per request. All or nothing: one"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"unknown id, or an id that is not a food specification, answers 404;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"one specification you cannot read answers 403."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/SpecificationCollectionRequest"}},"schemaId":"components/schemas/SpecificationCollectionRequest","pointer":"/paths/~1v2~1food~1specifications~1collection/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications/collection","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/SpecificationCollectionRequest"}},"responseCodes":["200","400","401","403","404","429"],"pointer":"/v2/food/specifications/collection","href":"food-specifications/foodspecifications_collection","openApiOperationId":"FoodSpecifications_Collection","summary":"Get food specifications by IDs"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/SpecificationCollectionRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/SpecificationCollectionRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the requested food specifications","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_2"}},"schemaId":"schema_2"},{"code":"400","description":"The request parameters are invalid"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions on at least one requested specification"},{"code":"404","description":"At least one requested id is not a known food specification"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1collection/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_2","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_2"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_collection"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/collection"},{"label":"Get food specification versions","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_versions","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_versions","metadata":{"seo":{"title":"Get food specification versions","description":"Returns all versions of the same logical specification. Given any version's ID, the server resolves the version chain and returns all sibling versions sorted by version number descending."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_Versions","name":"Get food specification versions","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1versions/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get food specification versions","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns all versions of the same logical specification.\nGiven any version's ID, the server resolves the version chain and\nreturns all sibling versions sorted by version number descending.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1versions/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/versions","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/versions","href":"food-specifications/foodspecifications_versions","openApiOperationId":"FoodSpecifications_Versions","summary":"Get food specification versions"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns all versions of the specification","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_3"}},"schemaId":"schema_3"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1versions/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_3","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_3"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_versions"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/versions"},{"label":"Replace specification contacts","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_putcontacts","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_putcontacts","metadata":{"seo":{"title":"Replace specification contacts","description":"Full replace of YOUR company's contacts on the specification (works on published specifications): the retailer's contacts when you are the retailer, the supplier's when you are the supplier. Contacts are plain user references addressed by userId; users are discoverable through the CUMD public API. Each contact carries its signatory flag (isSignatory), as in the UI; signature history is not writable."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutContacts","name":"Replace specification contacts","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1contacts/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace specification contacts","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Full replace of YOUR company's contacts on the specification (works on\npublished specifications): the retailer's contacts when you are the\nretailer, the supplier's when you are the supplier. Contacts are plain\nuser references addressed by userId; users are discoverable through\nthe CUMD public API. Each contact carries its signatory flag\n(isSignatory), as in the UI; signature history is not writable.\n\nOnly your company's direct contacts are replaced. Left untouched:\nthe other party's contacts, contacts that come from a collaboration\n(supplier invitations, pending or accepted), and translator contacts.\nThe specification owner stays a contact whether or not it is sent.\n\nThe response lists exactly that scope, so sending it back unchanged\nis a no-op (200, nothing written). The full contact list of both\nparties is on the specification read.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1contacts/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"schemaId":"components/schemas/ContactListWrite","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1contacts/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/contacts","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"responseCodes":["200","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/contacts","href":"food-specifications/foodspecifications_putcontacts","openApiOperationId":"FoodSpecifications_PutContacts","summary":"Replace specification contacts"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ContactListWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Your company's direct contacts on the specification, as stored","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"schemaId":"components/schemas/ContactListWrite"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A contact userId is unknown or not a user of your company (paramName contacts), or the owner contact's isSignatory differs from the stored flag (paramName contacts[i].isSignatory) — or the specification's state refuses the change (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1contacts/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/ContactListWrite","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_putcontacts"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/contacts"},{"label":"Share specification with the counterpart company","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_share","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_share","metadata":{"seo":{"title":"Share specification with the counterpart company","description":"Explicit business action: hands the document to the counterpart company and opens the collaboration phase. Chapter share/publish mechanics run internally. Idempotent: sharing an already shared specification changes nothing and answers 204, so a retried call is always safe."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_Share","name":"Share specification with the counterpart company","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1share/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share specification with the counterpart company","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Explicit business action: hands the document to the counterpart\ncompany and opens the collaboration phase. Chapter share/publish\nmechanics run internally. Idempotent: sharing an already shared\nspecification changes nothing and answers 204, so a retried call\nis always safe.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1share/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications/{specificationId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["204","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/share","href":"food-specifications/foodspecifications_share","openApiOperationId":"FoodSpecifications_Share","summary":"Share specification with the counterpart company"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The specification is shared with the counterpart company (already shared included)"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1share/post/responses"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_share"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/share"},{"label":"Move specification to a folder","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_movetofolder","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_movetofolder","metadata":{"seo":{"title":"Move specification to a folder","description":"Moves the specification to another folder after creation. PlacementAT creation rides in the create payload (folderId) — this endpointexists only for reorganisation. The target folder must be inpreparation (not yet shared) and of the same template family."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_MoveToFolder","name":"Move specification to a folder","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1folder/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Move specification to a folder","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Moves the specification to another folder after creation. Placement"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"AT creation rides in the create payload (folderId) — this endpoint"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"exists only for reorganisation. The target folder must be in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"preparation (not yet shared) and of the same template family."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1folder/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FolderAssignment"}},"schemaId":"components/schemas/FolderAssignment","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1folder/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/folder","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FolderAssignment"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/folder","href":"food-specifications/foodspecifications_movetofolder","openApiOperationId":"FoodSpecifications_MoveToFolder","summary":"Move specification to a folder"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FolderAssignment","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FolderAssignment"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The specification was moved"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Validation failed, naming "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"folderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (e.g. unknown folder, folder of another template family, or a folder already shared — its specification set is sealed)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1folder/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_movetofolder"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/folder"},{"label":"Get modification requests","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_modificationrequests","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_modificationrequests","metadata":{"seo":{"title":"Get modification requests","description":"Returns the modification requests (RFM) on this specification that are shared with your company; a draft is visible only to the user who wrote it. Filter by status and chapter type."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_ModificationRequests","name":"Get modification requests","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1modification-requests/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get modification requests","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the modification requests (RFM) on this specification that\nare shared with your company; a draft is visible only to the user\nwho wrote it. Filter by status and chapter type.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1modification-requests/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"status","in":"query","schemaId":"schema_4","description":"Filter by RFM status"},{"name":"chapterType","in":"query","schemaId":"schema_5","description":"Filter by template chapter code"},{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language of sectionName and fieldName. Defaults to English."},{"name":"pageNumber","in":"query","schemaId":"schema_6"},{"name":"pageSize","in":"query","schemaId":"schema_7"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1modification-requests/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/modification-requests","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"status","in":"query","required":false,"schemaId":"schema_4"},{"name":"chapterType","in":"query","required":false,"schemaId":"schema_5"},{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"},{"name":"pageNumber","in":"query","required":false,"schemaId":"schema_6"},{"name":"pageSize","in":"query","required":false,"schemaId":"schema_7"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/modification-requests","href":"food-specifications/foodspecifications_modificationrequests","openApiOperationId":"FoodSpecifications_ModificationRequests","summary":"Get modification requests"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the modification requests","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ModificationRequestPagedList"}},"schemaId":"components/schemas/ModificationRequestPagedList"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1modification-requests/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/ModificationRequestPagedList","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ModificationRequestPagedList"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_modificationrequests"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/modification-requests"},{"label":"Get specification history","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_history","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specifications/foodspecifications_history","metadata":{"seo":{"title":"Get specification history","description":"Returns the change log of this specification, newest first: field and document changes, section validations and requirement validations."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_History","name":"Get specification history","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1history/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get specification history","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the change log of this specification, newest first: field\nand document changes, section validations and requirement\nvalidations.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1history/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"fromDateUtc","in":"query","schemaId":"schema_8","description":"Only changes made at or after this date"},{"name":"toDateUtc","in":"query","schemaId":"schema_8","description":"Only changes made at or before this date"},{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language of names and values. Defaults to English."},{"name":"pageNumber","in":"query","schemaId":"schema_6"},{"name":"pageSize","in":"query","schemaId":"schema_7"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1history/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/history","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"fromDateUtc","in":"query","required":false,"schemaId":"schema_8"},{"name":"toDateUtc","in":"query","required":false,"schemaId":"schema_8"},{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"},{"name":"pageNumber","in":"query","required":false,"schemaId":"schema_6"},{"name":"pageSize","in":"query","required":false,"schemaId":"schema_7"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/history","href":"food-specifications/foodspecifications_history","openApiOperationId":"FoodSpecifications_History","summary":"Get specification history"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the specification history","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/SpecificationHistoryPagedList"}},"schemaId":"components/schemas/SpecificationHistoryPagedList"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1history/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/SpecificationHistoryPagedList","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/SpecificationHistoryPagedList"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specifications/foodspecifications_history"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/history"}],"content":{"contentType":"group","meta":{"name":"food-specifications"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"food-specifications","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Food specification — create, read, contacts, share, folder move, versions, modification requests, history"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/food/specifications","summary":"Create food specification","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specifications/foodspecifications_create","deprecated":false},{"title":"/v2/food/specifications/{specificationId}","summary":"Get food specification","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specifications/foodspecifications_getbyid","deprecated":false},{"title":"/v2/food/specifications/collection","summary":"Get food specifications by IDs","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specifications/foodspecifications_collection","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/versions","summary":"Get food specification versions","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specifications/foodspecifications_versions","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/contacts","summary":"Replace specification contacts","prefix":{"name":"put","color":"put"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specifications/foodspecifications_putcontacts","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/share","summary":"Share specification with the counterpart company","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specifications/foodspecifications_share","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/folder","summary":"Move specification to a folder","prefix":{"name":"put","color":"put"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specifications/foodspecifications_movetofolder","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/modification-requests","summary":"Get modification requests","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specifications/foodspecifications_modificationrequests","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/history","summary":"Get specification history","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specifications/foodspecifications_history","deprecated":false}]}]}]}]}},{"type":"group","label":"food-specification-chapters","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters","items":[{"label":"Get general chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_generalchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_generalchapter","metadata":{"seo":{"title":"Get general chapter","description":"Returns typed general information: version info, product identity (derived from the trade item), retailer and supplier companies and contacts, custom fields, and references to the chapter's requirements, documents and questionnaires."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_GeneralChapter","name":"Get general chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get general chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns typed general information: version info, product identity\n(derived from the trade item), retailer and supplier companies and\ncontacts, custom fields, and references to the chapter's\nrequirements, documents and questionnaires.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/general-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/general-chapter","href":"food-specification-chapters/foodspecifications_generalchapter","openApiOperationId":"FoodSpecifications_GeneralChapter","summary":"Get general chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the general chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodGeneralChapter"}},"schemaId":"components/schemas/FoodGeneralChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodGeneralChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodGeneralChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_generalchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/general-chapter"},{"label":"Replace general chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putgeneralchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putgeneralchapter","metadata":{"seo":{"title":"Replace general chapter","description":"Writes the writable part of the general chapter (FoodGeneralChapterWrite). A section that is null or absent keeps what it holds; a party's additionalContacts, when sent, replaces that party's list in full. The general chapter belongs to this specification only (never a library chapter)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutGeneralChapter","name":"Replace general chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace general chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Writes the writable part of the general chapter\n(FoodGeneralChapterWrite). A section that is null or absent keeps\nwhat it holds; a party's additionalContacts, when sent, replaces that\nparty's list in full. The general chapter belongs to this\nspecification only (never a library chapter).\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodGeneralChapterWrite"}},"schemaId":"components/schemas/FoodGeneralChapterWrite","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/general-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodGeneralChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/food/specifications/{specificationId}/general-chapter","href":"food-specification-chapters/foodspecifications_putgeneralchapter","openApiOperationId":"FoodSpecifications_PutGeneralChapter","summary":"Replace general chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodGeneralChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodGeneralChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was written. Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the specification changed since the chapter was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. customFields vs template schema; fields owned by the counterpart company in the payload; data for a section the template disables) — or the resource's state refuses the write, the chapter is locked (specification signature in progress) (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1general-chapter/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_putgeneralchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/general-chapter"},{"label":"Get production chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_productionchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_productionchapter","metadata":{"seo":{"title":"Get production chapter","description":"Returns the production chapters linked to the specification, one entryper linked library chapter, each with its sites, recipe, nutritiontable and allergens, plus the specification's requirements anddocuments for the production chapter type. Read-only projection: thechapter content is written at the chapter's own address(PUT /library/food/production-chapters/{chapterId})."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_ProductionChapter","name":"Get production chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get production chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns the production chapters linked to the specification, one entry"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"per linked library chapter, each with its sites, recipe, nutrition"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"table and allergens, plus the specification's requirements and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"documents for the production chapter type. Read-only projection: the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter content is written at the chapter's own address"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(PUT /library/food/production-chapters/{chapterId})."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/production-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/production-chapter","href":"food-specification-chapters/foodspecifications_productionchapter","openApiOperationId":"FoodSpecifications_ProductionChapter","summary":"Get production chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the production chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodProductionChapter"}},"schemaId":"components/schemas/FoodProductionChapter"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodProductionChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodProductionChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_productionchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/production-chapter"},{"label":"Get labelling chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_labellingchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_labellingchapter","metadata":{"seo":{"title":"Get labelling chapter","description":"Returns the labelling chapter: product information, business name andaddress, ingredient declaration and nutritional information (one entryper linked production chapter), Nutri-Score, claims, additionalmarketing information, consumer instructions, sorting instructions,GMO risk analysis, custom fields, and the chapter's requirements anddocuments as references."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_LabellingChapter","name":"Get labelling chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get labelling chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns the labelling chapter: product information, business name and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"address, ingredient declaration and nutritional information (one entry"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"per linked production chapter), Nutri-Score, claims, additional"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"marketing information, consumer instructions, sorting instructions,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GMO risk analysis, custom fields, and the chapter's requirements and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"documents as references."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The response carries the labelling inputs, which"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodSpecifications_PutLabellingChapter writes, and the content the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"platform derives (marked readOnly). Derived content comes from the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"trade item, the production chapters, the finished-product chapter, the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"labelling-information and claim libraries and the questionnaire"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answers, and is written there. A section the specification's template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"disables is null."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/labelling-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/labelling-chapter","href":"food-specification-chapters/foodspecifications_labellingchapter","openApiOperationId":"FoodSpecifications_LabellingChapter","summary":"Get labelling chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the labelling chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodLabellingChapter"}},"schemaId":"components/schemas/FoodLabellingChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodLabellingChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodLabellingChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_labellingchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/labelling-chapter"},{"label":"Create or replace labelling chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putlabellingchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putlabellingchapter","metadata":{"seo":{"title":"Create or replace labelling chapter","description":"Full chapter replace (upsert). The labelling chapter belongs to this specification only (never a library chapter)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutLabellingChapter","name":"Create or replace labelling chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create or replace labelling chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Full chapter replace (upsert). The labelling chapter belongs to this\nspecification only (never a library chapter).\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodLabellingChapterWrite"}},"schemaId":"components/schemas/FoodLabellingChapterWrite","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/labelling-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodLabellingChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/food/specifications/{specificationId}/labelling-chapter","href":"food-specification-chapters/foodspecifications_putlabellingchapter","openApiOperationId":"FoodSpecifications_PutLabellingChapter","summary":"Create or replace labelling chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodLabellingChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodLabellingChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was replaced. Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the specification changed since the chapter was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. customFields vs template schema; fields owned by the counterpart company in the payload; data for a section the template disables) — or the resource's state refuses the write, the chapter is locked (specification signature in progress) (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1labelling-chapter/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_putlabellingchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/labelling-chapter"},{"label":"Get testing chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_testingchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_testingchapter","metadata":{"seo":{"title":"Get testing chapter","description":"Returns the testing chapter with characteristics and control plans. The testing chapter is a library chapter linked to this specification; this endpoint is its read-only projection in document context."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_TestingChapter","name":"Get testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get testing chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the testing chapter with characteristics and control plans.\nThe testing chapter is a library chapter linked to this specification;\nthis endpoint is its read-only projection in document context.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/testing-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/testing-chapter","href":"food-specification-chapters/foodspecifications_testingchapter","openApiOperationId":"FoodSpecifications_TestingChapter","summary":"Get testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the testing chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodTestingChapter"}},"schemaId":"components/schemas/FoodTestingChapter"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodTestingChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodTestingChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_testingchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/testing-chapter"},{"label":"Get finished product chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_finishedproductchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_finishedproductchapter","metadata":{"seo":{"title":"Get finished product chapter","description":"Returns the finished product chapter content including product photos, shelf life, storage conditions, preservation methods, and traceability."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_FinishedProductChapter","name":"Get finished product chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get finished product chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the finished product chapter content including product photos,\nshelf life, storage conditions, preservation methods, and traceability.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/finished-product-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/finished-product-chapter","href":"food-specification-chapters/foodspecifications_finishedproductchapter","openApiOperationId":"FoodSpecifications_FinishedProductChapter","summary":"Get finished product chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the finished product chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapter"}},"schemaId":"components/schemas/FoodFinishedProductChapter"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodFinishedProductChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_finishedproductchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/finished-product-chapter"},{"label":"Get custom chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_customchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_customchapter","metadata":{"seo":{"title":"Get custom chapter","description":"Returns a retailer-defined custom chapter of this specification. The chapterType is the retailer-defined type code, communicated with the template at onboarding."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_CustomChapter","name":"Get custom chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get custom chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns a retailer-defined custom chapter of this specification.\nThe chapterType is the retailer-defined type code, communicated\nwith the template at onboarding.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true},{"name":"chapterType","in":"path","schemaId":"schema_5","description":"Retailer-defined custom chapter type code (communicated with the\ntemplate at onboarding). Standard chapters have their own routes;\nlibrary chapter types are rejected (they cannot be customized).\n","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"},{"name":"chapterType","in":"path","required":true,"schemaId":"schema_5"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}","href":"food-specification-chapters/foodspecifications_customchapter","openApiOperationId":"FoodSpecifications_CustomChapter","summary":"Get custom chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the custom chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CustomChapter"}},"schemaId":"components/schemas/CustomChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The specification was not found, or the template defines no such custom chapter"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/CustomChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CustomChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_customchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}"},{"label":"Create or replace custom chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putcustomchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putcustomchapter","metadata":{"seo":{"title":"Create or replace custom chapter","description":"Writes the custom chapter's content, which is custom fields only (CustomFields rules: an entry replaces its component's values; a component the payload does not carry keeps what it holds). Custom chapters belong to this specification only (never library chapters). Either party may write them."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutCustomChapter","name":"Create or replace custom chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create or replace custom chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Writes the custom chapter's content, which is custom fields only\n(CustomFields rules: an entry replaces its component's values; a\ncomponent the payload does not carry keeps what it holds). Custom\nchapters belong to this specification only (never library chapters).\nEither party may write them.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true},{"name":"chapterType","in":"path","schemaId":"schema_5","description":"Retailer-defined custom chapter type code (communicated with the\ntemplate at onboarding). Standard chapters have their own routes;\nlibrary chapter types are rejected (they cannot be customized).\n","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/CustomChapterWrite"}},"schemaId":"components/schemas/CustomChapterWrite","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"},{"name":"chapterType","in":"path","required":true,"schemaId":"schema_5"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/CustomChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}","href":"food-specification-chapters/foodspecifications_putcustomchapter","openApiOperationId":"FoodSpecifications_PutCustomChapter","summary":"Create or replace custom chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/CustomChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/CustomChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was replaced. Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The specification was not found, or the template defines no such custom chapter"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the specification changed since the chapter was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (customFields vs template schema) — or the resource's state refuses the write, the chapter is locked (specification signature in progress) (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1custom-chapters~1{chapterType}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_putcustomchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}"},{"label":"Link production chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_linkproductionchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_linkproductionchapter","metadata":{"seo":{"title":"Link production chapter","description":"Attaches an existing library production chapter to this specification(replaces the currently linked one, if any). Content updates happen atthe chapter's own address (PUT /library/food/production-chapters/{id}).Also the way a specification ADOPTS a new version of its chapter —new versions never propagate automatically."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_LinkProductionChapter","name":"Link production chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter~1link/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Link production chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Attaches an existing library production chapter to this specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(replaces the currently linked one, if any). Content updates happen at"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the chapter's own address (PUT /library/food/production-chapters/{id})."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Also the way a specification ADOPTS a new version of its chapter —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"new versions never propagate automatically."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter~1link/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"schemaId":"components/schemas/ChapterReference","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter~1link/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications/{specificationId}/production-chapter/link","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/production-chapter/link","href":"food-specification-chapters/foodspecifications_linkproductionchapter","openApiOperationId":"FoodSpecifications_LinkProductionChapter","summary":"Link production chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ChapterReference","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was linked"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The chapter is unknown, not a published active version, or not owned by your company — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1production-chapter~1link/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_linkproductionchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/production-chapter/link"},{"label":"Link testing chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_linktestingchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_linktestingchapter","metadata":{"seo":{"title":"Link testing chapter","description":"Attaches an existing library testing chapter to this specification(replaces the currently linked one, if any). Also the way aspecification ADOPTS a new version of its chapter — new versionsnever propagate automatically."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_LinkTestingChapter","name":"Link testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter~1link/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Link testing chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Attaches an existing library testing chapter to this specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(replaces the currently linked one, if any). Also the way a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification ADOPTS a new version of its chapter — new versions"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"never propagate automatically."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter~1link/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"schemaId":"components/schemas/ChapterReference","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter~1link/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications/{specificationId}/testing-chapter/link","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/testing-chapter/link","href":"food-specification-chapters/foodspecifications_linktestingchapter","openApiOperationId":"FoodSpecifications_LinkTestingChapter","summary":"Link testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ChapterReference","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was linked"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The chapter is unknown, not a published active version, or not owned by your company — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1testing-chapter~1link/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_linktestingchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/testing-chapter/link"},{"label":"Link finished product chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_linkfinishedproductchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_linkfinishedproductchapter","metadata":{"seo":{"title":"Link finished product chapter","description":"Attaches an existing library finished product chapter to thisspecification (replaces the currently linked one, if any). Also theway a specification ADOPTS a new version of its chapter — newversions never propagate automatically."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_LinkFinishedProductChapter","name":"Link finished product chapter","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter~1link/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Link finished product chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Attaches an existing library finished product chapter to this"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification (replaces the currently linked one, if any). Also the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"way a specification ADOPTS a new version of its chapter — new"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"versions never propagate automatically."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter~1link/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"schemaId":"components/schemas/ChapterReference","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter~1link/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications/{specificationId}/finished-product-chapter/link","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/finished-product-chapter/link","href":"food-specification-chapters/foodspecifications_linkfinishedproductchapter","openApiOperationId":"FoodSpecifications_LinkFinishedProductChapter","summary":"Link finished product chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ChapterReference","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was linked"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The chapter is unknown, not a published active version, or not owned by your company — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1finished-product-chapter~1link/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_linkfinishedproductchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/finished-product-chapter/link"},{"label":"Replace a chapter's documents","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putchapterdocuments","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-chapters/foodspecifications_putchapterdocuments","metadata":{"seo":{"title":"Replace a chapter's documents","description":"Full replace of the documents attached to one chapter of thespecification. Files are uploaded beforehand through the documentAPI and referenced by id. An id the list does not carry is detached(the file itself stays in the document API); an id it carries that isnot attached yet is attached; [] detaches them all."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutChapterDocuments","name":"Replace a chapter's documents","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1documents/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace a chapter's documents","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the documents attached to one chapter of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification. Files are uploaded beforehand through the document"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"API and referenced by id. An id the list does not carry is detached"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(the file itself stays in the document API); an id it carries that is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not attached yet is attached; [] detaches them all."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Anyone who can update the specification may change its documents, on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the retailer side or the supplier side."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refused with a 422 naming fileIds: an unknown file; a file owned by a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company other than the specification's owner or supplier; a file type"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the chapter does not accept; a file already attached to another"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter of the specification (detach it there first); the same file"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"twice; a file sent for a chapterType the specification does not have."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A locked specification is a 422 INVALID_RESOURCE_STATE with no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"paramName."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Nothing to change is a no-op (204): the list the chapter already"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carries, also on a locked specification, and [] for a chapterType the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification does not have."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read the result back on the chapter's documents."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true},{"name":"chapterType","in":"path","schemaId":"schema_5","description":"Chapter type code of a chapter of the specification, as\nTemplateStructureChapter.chapterType lists it: general, labelling,\nproduction, testing, finishedProduct, or a retailer-defined custom\nchapter code.\n","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1documents/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterDocumentsWrite"}},"schemaId":"components/schemas/ChapterDocumentsWrite","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1documents/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/documents","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"},{"name":"chapterType","in":"path","required":true,"schemaId":"schema_5"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ChapterDocumentsWrite"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/documents","href":"food-specification-chapters/foodspecifications_putchapterdocuments","openApiOperationId":"FoodSpecifications_PutChapterDocuments","summary":"Replace a chapter's documents"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ChapterDocumentsWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterDocumentsWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter's documents were replaced"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A file is refused (paramName fileIds) — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1documents/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-chapters/foodspecifications_putchapterdocuments"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/documents"}],"content":{"contentType":"group","meta":{"name":"food-specification-chapters"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"food-specification-chapters","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Food specification chapters — read, create or replace, link library chapters, custom chapters"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/food/specifications/{specificationId}/general-chapter","summary":"Get general chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_generalchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/general-chapter","summary":"Replace general chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_putgeneralchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/production-chapter","summary":"Get production chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_productionchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/labelling-chapter","summary":"Get labelling chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_labellingchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/labelling-chapter","summary":"Create or replace labelling chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_putlabellingchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/testing-chapter","summary":"Get testing chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_testingchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/finished-product-chapter","summary":"Get finished product chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_finishedproductchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}","summary":"Get custom chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_customchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/custom-chapters/{chapterType}","summary":"Create or replace custom chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_putcustomchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/production-chapter/link","summary":"Link production chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specification-chapters/foodspecifications_linkproductionchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/testing-chapter/link","summary":"Link testing chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specification-chapters/foodspecifications_linktestingchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/finished-product-chapter/link","summary":"Link finished product chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specification-chapters/foodspecifications_linkfinishedproductchapter","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/documents","summary":"Replace a chapter's documents","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-chapters/foodspecifications_putchapterdocuments","deprecated":false}]}]}]}]}},{"type":"group","label":"food-specification-questionnaires","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires","items":[{"label":"Get specification questionnaires (questions & answers)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires/foodspecifications_getquestionnaires","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires/foodspecifications_getquestionnaires","metadata":{"seo":{"title":"Get specification questionnaires (questions & answers)","description":"Every questionnaire instance linked to this specification, with itschapter placement (general, production, finishedProduct, labelling —derived from the questionnaire's template), its questions (stableid, text, description, type, options) and the current answers."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_GetQuestionnaires","name":"Get specification questionnaires (questions & answers)","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get specification questionnaires (questions & answers)","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every questionnaire instance linked to this specification, with its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter placement (general, production, finishedProduct, labelling —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"derived from the questionnaire's template), its questions (stable"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"id, text, description, type, options) and the current answers."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read-only projection — answers are written through"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PUT .../food/specifications/{specificationId}/questionnaires/{questionnaireId}/answers"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unanswered questions carry a null answer; a value is never"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"fabricated. Chapter reads expose these instances as references only."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language for question texts, descriptions and option labels.\nDefaults to each questionnaire's own language.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/questionnaires","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/questionnaires","href":"food-specification-questionnaires/foodspecifications_getquestionnaires","openApiOperationId":"FoodSpecifications_GetQuestionnaires","summary":"Get specification questionnaires (questions & answers)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the specification's questionnaires with answers","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_10"}},"schemaId":"schema_10"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not a participant of this specification"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_10","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_10"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-questionnaires/foodspecifications_getquestionnaires"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/questionnaires"},{"label":"Write questionnaire answers","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires/foodspecifications_putquestionnaireanswers","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires/foodspecifications_putquestionnaireanswers","metadata":{"seo":{"title":"Write questionnaire answers","description":"Full replace of the answers document of a questionnaire linked tothis specification. Questionnaires are attached when thespecification is created; list them, with their question codes,through GET .../food/specifications/{specificationId}/questionnaires."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutQuestionnaireAnswers","name":"Write questionnaire answers","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1{questionnaireId}~1answers/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Write questionnaire answers","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the answers document of a questionnaire linked to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"this specification. Questionnaires are attached when the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification is created; list them, with their question codes,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"through "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET .../food/specifications/{specificationId}/questionnaires"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"After the write, the questionnaires of the same chapter return to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"not validated\", and automatic labelling claims are recomputed from"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the answers: claims the answers produce are added, automatically"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"added claims the answers no longer produce are removed, and claims"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"added by a user are kept."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A locked questionnaire refuses the write."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true},{"name":"questionnaireId","in":"path","schemaId":"schema_0","description":"The unique identifier of the questionnaire instance","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1{questionnaireId}~1answers/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/QuestionnaireAnswers"}},"schemaId":"components/schemas/QuestionnaireAnswers","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1{questionnaireId}~1answers/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/questionnaires/{questionnaireId}/answers","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"},{"name":"questionnaireId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/QuestionnaireAnswers"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/questionnaires/{questionnaireId}/answers","href":"food-specification-questionnaires/foodspecifications_putquestionnaireanswers","openApiOperationId":"FoodSpecifications_PutQuestionnaireAnswers","summary":"Write questionnaire answers"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/QuestionnaireAnswers","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/QuestionnaireAnswers"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The answers were written"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found, or the questionnaire is not linked to it"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The answers were refused (paramName "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"answers"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"), or the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questionnaire is locked"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1{questionnaireId}~1answers/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-questionnaires/foodspecifications_putquestionnaireanswers"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/questionnaires/{questionnaireId}/answers"},{"label":"Link questionnaire to specification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires/foodspecifications_linkquestionnaire","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-questionnaires/foodspecifications_linkquestionnaire","metadata":{"seo":{"title":"Link questionnaire to specification","description":"Attaches an existing questionnaire instance to this specification.Chapter placement is derived server-side from the questionnaire'stemplate. Idempotent for an already-linked instance. At creationtime, prefer the questionnaires reference array of thespecification create."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_LinkQuestionnaire","name":"Link questionnaire to specification","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1link/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Link questionnaire to specification","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Attaches an existing questionnaire instance to this specification."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Chapter placement is derived server-side from the questionnaire's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"template. Idempotent for an already-linked instance. At creation"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"time, prefer the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"questionnaires"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" reference array of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification create."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1link/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/QuestionnaireReference"}},"schemaId":"components/schemas/QuestionnaireReference","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1link/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/food/specifications/{specificationId}/questionnaires/link","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/QuestionnaireReference"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/questionnaires/link","href":"food-specification-questionnaires/foodspecifications_linkquestionnaire","openApiOperationId":"FoodSpecifications_LinkQuestionnaire","summary":"Link questionnaire to specification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/QuestionnaireReference","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/QuestionnaireReference"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The questionnaire was linked"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The specification was not found"},{"code":"422","description":"The questionnaire instance was not found, or the specification\nalready carries an instance of the same specification-type\ntemplate.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1questionnaires~1link/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-questionnaires/foodspecifications_linkquestionnaire"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/questionnaires/link"}],"content":{"contentType":"group","meta":{"name":"food-specification-questionnaires"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"food-specification-questionnaires","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Questionnaires linked to a food specification — read questions and answers, link"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/food/specifications/{specificationId}/questionnaires","summary":"Get specification questionnaires (questions & answers)","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specification-questionnaires/foodspecifications_getquestionnaires","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/questionnaires/{questionnaireId}/answers","summary":"Write questionnaire answers","prefix":{"name":"put","color":"put"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/food-specification-questionnaires/foodspecifications_putquestionnaireanswers","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/questionnaires/link","summary":"Link questionnaire to specification","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-questionnaires/foodspecifications_linkquestionnaire","deprecated":false}]}]}]}]}},{"type":"group","label":"food-specification-requirements","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-requirements","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-requirements","items":[{"label":"Get linked requirements","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-requirements/foodspecifications_requirements","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-requirements/foodspecifications_requirements","metadata":{"seo":{"title":"Get linked requirements","description":"Returns the requirements linked to this specification, one entry per chapter attachment, with their validation state on this specification."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_Requirements","name":"Get linked requirements","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1requirements/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get linked requirements","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the requirements linked to this specification, one entry per\nchapter attachment, with their validation state on this\nspecification.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1requirements/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/food/specifications/{specificationId}/requirements","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/food/specifications/{specificationId}/requirements","href":"food-specification-requirements/foodspecifications_requirements","openApiOperationId":"FoodSpecifications_Requirements","summary":"Get linked requirements"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the requirements linked to the specification","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_11"}},"schemaId":"schema_11"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The food specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1requirements/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_11","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_11"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-requirements/foodspecifications_requirements"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/requirements"},{"label":"Replace a chapter's requirements","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-requirements/foodspecifications_putchapterrequirements","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/food-specification-requirements/foodspecifications_putchapterrequirements","metadata":{"seo":{"title":"Replace a chapter's requirements","description":"Full replace of the requirements attached to one chapter of thespecification. Requirements are PRE-CREATED library objects of thespecification's owner company, referenced by id. An id the list doesnot carry is detached; an id it carries that is not attached yet isattached; [] detaches them all. Removals are applied before additions,so replacing a requirement by its new version works in one call."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"FoodSpecifications_PutChapterRequirements","name":"Replace a chapter's requirements","isWebhook":false,"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1requirements/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace a chapter's requirements","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the requirements attached to one chapter of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification. Requirements are PRE-CREATED library objects of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification's owner company, referenced by id. An id the list does"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not carry is detached; an id it carries that is not attached yet is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"attached; [] detaches them all. Removals are applied before additions,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"so replacing a requirement by its new version works in one call."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Only a retailer contact of the specification may change its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"requirements; anyone else is a 403."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refused with a 422 naming requirementIds: an unknown id; a requirement"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"of another company; a requirement that is not its active version; a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"requirement already attached to another chapter of the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(detach it there first); the same requirement twice; a requirement sent"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for a chapterType the specification does not have. A locked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification is a 422 INVALID_RESOURCE_STATE with no paramName."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Nothing to change is a no-op (204): the list the chapter already"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carries, also on a locked specification, and [] for a chapterType the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification does not have."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read the result back on FoodSpecifications_Requirements."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true},{"name":"chapterType","in":"path","schemaId":"schema_5","description":"Chapter type code of a chapter of the specification, as\nTemplateStructureChapter.chapterType lists it: general, labelling,\nproduction, testing, finishedProduct, or a retailer-defined custom\nchapter code.\n","required":true}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1requirements/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterRequirementsWrite"}},"schemaId":"components/schemas/ChapterRequirementsWrite","pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1requirements/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/requirements","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"},{"name":"chapterType","in":"path","required":true,"schemaId":"schema_5"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ChapterRequirementsWrite"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/requirements","href":"food-specification-requirements/foodspecifications_putchapterrequirements","openApiOperationId":"FoodSpecifications_PutChapterRequirements","summary":"Replace a chapter's requirements"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ChapterRequirementsWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterRequirementsWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter's requirements were replaced"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not a retailer contact of the specification"},{"code":"404","description":"The food specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A requirement is refused (paramName requirementIds) — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1food~1specifications~1{specificationId}~1chapters~1{chapterType}~1requirements/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/food-specification-requirements/foodspecifications_putchapterrequirements"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/requirements"}],"content":{"contentType":"group","meta":{"name":"food-specification-requirements"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"food-specification-requirements","showPageActions":true},{"nodeType":"markdoc","content":"Requirements linked to a food specification"}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/food/specifications/{specificationId}/requirements","summary":"Get linked requirements","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-requirements/foodspecifications_requirements","deprecated":false},{"title":"/v2/food/specifications/{specificationId}/chapters/{chapterType}/requirements","summary":"Replace a chapter's requirements","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/food-specification-requirements/foodspecifications_putchapterrequirements","deprecated":false}]}]}]}]}},{"type":"group","label":"packaging-specifications","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications","items":[{"label":"Create packaging specification","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_create","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_create","metadata":{"seo":{"title":"Create packaging specification","description":"Creates a packaging specification in one call: identity plusREFERENCES to library items created beforehand. Atomic —everything this call creates exists after it, or nothing does (anyfailure returns 422 and no resource is created)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_Create","name":"Create packaging specification","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create packaging specification","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a packaging specification in one call: identity plus"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REFERENCES to library items created beforehand. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Atomic"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"everything this call creates exists after it, or nothing does (any"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"failure returns 422 and no resource is created)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Differences from the food create:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is required (packaging is the one type whose name is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"caller-chosen rather than derived from a trade item); there is NO"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"tradeItemId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (packaging specifications carry no trade item), NO"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"folderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (packaging specifications cannot be placed in folders)"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and NO "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"requirements"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (packaging chapters have no requirement"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sections). Sending any of them is a 400, not a silent drop."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library-chapter slots: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"testingChapter"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" takes a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{ \"chapterId\": ... }"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" reference to a published, active library"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"packagingSystemChapter"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" references a packaging system and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is not accepted yet: the member is refused (400), never dropped."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Questionnaires are attached AUTOMATICALLY at creation (one"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"instance per matching published template), same as the food"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"create; explicit "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"questionnaires"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" references are refused (400)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationCreateRequest"}},"schemaId":"components/schemas/PackagingSpecificationCreateRequest","pointer":"/paths/~1v2~1packaging~1specifications/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/packaging/specifications","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/packaging/specifications","href":"packaging-specifications/packagingspecifications_create","openApiOperationId":"PackagingSpecifications_Create","summary":"Create packaging specification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingSpecificationCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The specification was created","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationCreated"}},"schemaId":"components/schemas/PackagingSpecificationCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The document was rejected as a whole — nothing was created."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Causes: an unknown template; a referenced testing chapter that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is not a published active version of the packaging type."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/PackagingSpecificationCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_create"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications"},{"label":"Get packaging specification","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_getbyid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_getbyid","metadata":{"seo":{"title":"Get packaging specification","description":"Returns specification identity, status, and chapter references.include adds chapter content in the same response(PackagingSpecificationWithChapters): chapters for every chapter, ora list, e.g. include=general,attestation. Without include, nocontent is returned. Same rules as FoodSpecifications_GetById: aproperty is present only when included, a chapter the specificationdoes not have reads null, and the full document carries no ETags(a chapter write uses the ETag of that chapter's own GET)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_GetById","name":"Get packaging specification","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get packaging specification","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns specification identity, status, and chapter references."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" adds chapter content in the same response"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(PackagingSpecificationWithChapters): "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"chapters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for every chapter, or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a list, e.g. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include=general,attestation"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Without "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"content is returned. Same rules as FoodSpecifications_GetById: a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"property is present only when included, a chapter the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"does not have reads null, and the full document carries no ETags"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(a chapter write uses the ETag of that chapter's own GET)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"include","in":"query","style":"form","explode":false,"schemaId":"schema_12","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Comma-separated. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"chapters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = general, attestation, testing and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"packagingSystem. An unknown value is a 400."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"include","in":"query","required":false,"schemaId":"schema_12","style":"form","explode":false}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}","href":"packaging-specifications/packagingspecifications_getbyid","openApiOperationId":"PackagingSpecifications_GetById","summary":"Get packaging specification"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns the packaging specification, with the content "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" asked for"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationWithChapters"}},"schemaId":"components/schemas/PackagingSpecificationWithChapters"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingSpecificationWithChapters","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSpecificationWithChapters"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_getbyid"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}"},{"label":"Get packaging specification versions","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_versions","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_versions","metadata":{"seo":{"title":"Get packaging specification versions","description":"Returns all versions of the same logical specification. Given any version's ID, the server resolves the version chain and returns all sibling versions sorted by version number descending."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_Versions","name":"Get packaging specification versions","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1versions/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get packaging specification versions","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns all versions of the same logical specification.\nGiven any version's ID, the server resolves the version chain and\nreturns all sibling versions sorted by version number descending.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1versions/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/versions","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/versions","href":"packaging-specifications/packagingspecifications_versions","openApiOperationId":"PackagingSpecifications_Versions","summary":"Get packaging specification versions"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns all versions of the specification","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_3"}},"schemaId":"schema_3"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1versions/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_3","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_3"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_versions"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/versions"},{"label":"Share specification with the counterpart company","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_share","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_share","metadata":{"seo":{"title":"Share specification with the counterpart company","description":"Same behaviour as FoodSpecifications_Share. Explicit business action:hands the document to the counterpart company and opens thecollaboration phase. Idempotent: sharing an already sharedspecification changes nothing and answers 204, so a retried call isalways safe."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_Share","name":"Share specification with the counterpart company","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1share/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share specification with the counterpart company","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Same behaviour as FoodSpecifications_Share. Explicit business action:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"hands the document to the counterpart company and opens the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"collaboration phase. Idempotent: sharing an already shared"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification changes nothing and answers 204, so a retried call is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"always safe."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1share/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/packaging/specifications/{specificationId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["204","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/share","href":"packaging-specifications/packagingspecifications_share","openApiOperationId":"PackagingSpecifications_Share","summary":"Share specification with the counterpart company"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The specification is shared with the counterpart company (already shared included)"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1share/post/responses"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_share"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/share"},{"label":"Replace specification contacts","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_putcontacts","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_putcontacts","metadata":{"seo":{"title":"Replace specification contacts","description":"Same behaviour as FoodSpecifications_PutContacts, signatory flagincluded. Full replace ofYOUR company's direct contacts on the specification: the retailer'scontacts when you are the retailer, the supplier's when you are thesupplier. Left untouched: the other party's contacts, contacts thatcome from a collaboration, and translator contacts. Thespecification owner stays a contact whether or not it is sent. Theresponse lists exactly that scope, so sending it back unchanged is ano-op (200, nothing written)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_PutContacts","name":"Replace specification contacts","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1contacts/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace specification contacts","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Same behaviour as FoodSpecifications_PutContacts, signatory flag"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"included. Full replace of"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"YOUR company's direct contacts on the specification: the retailer's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"contacts when you are the retailer, the supplier's when you are the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"supplier. Left untouched: the other party's contacts, contacts that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"come from a collaboration, and translator contacts. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification owner stays a contact whether or not it is sent. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"response lists exactly that scope, so sending it back unchanged is a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no-op (200, nothing written)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1contacts/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"schemaId":"components/schemas/ContactListWrite","pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1contacts/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/packaging/specifications/{specificationId}/contacts","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"responseCodes":["200","400","401","403","404","422","429"],"pointer":"/v2/packaging/specifications/{specificationId}/contacts","href":"packaging-specifications/packagingspecifications_putcontacts","openApiOperationId":"PackagingSpecifications_PutContacts","summary":"Replace specification contacts"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ContactListWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Your company's direct contacts on the specification, as stored","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}},"schemaId":"components/schemas/ContactListWrite"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A contact userId is unknown or not a user of your company (paramName contacts), or the owner contact's isSignatory differs from the stored flag (paramName contacts[i].isSignatory) — or the specification's state refuses the change (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1contacts/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/ContactListWrite","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ContactListWrite"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_putcontacts"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/contacts"},{"label":"Get packaging specifications by IDs","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_collection","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_collection","metadata":{"seo":{"title":"Get packaging specifications by IDs","description":"Returns multiple packaging specifications (identity + chapter refs) ina single call. Maximum 50 IDs per request."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_Collection","name":"Get packaging specifications by IDs","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1collection/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get packaging specifications by IDs","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns multiple packaging specifications (identity + chapter refs) in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a single call. Maximum 50 IDs per request."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/SpecificationCollectionRequest"}},"schemaId":"components/schemas/SpecificationCollectionRequest","pointer":"/paths/~1v2~1packaging~1specifications~1collection/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/packaging/specifications/collection","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/SpecificationCollectionRequest"}},"responseCodes":["200","400","401","403","429"],"pointer":"/v2/packaging/specifications/collection","href":"packaging-specifications/packagingspecifications_collection","openApiOperationId":"PackagingSpecifications_Collection","summary":"Get packaging specifications by IDs"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/SpecificationCollectionRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/SpecificationCollectionRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the requested packaging specifications","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_13"}},"schemaId":"schema_13"},{"code":"400","description":"The request parameters are invalid"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1collection/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_13","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_13"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_collection"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/collection"},{"label":"Get modification requests","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_modificationrequests","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_modificationrequests","metadata":{"seo":{"title":"Get modification requests","description":"Returns the modification requests (RFM) on this specification that are shared with your company; a draft is visible only to the user who wrote it. Filter by status and chapter type."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_ModificationRequests","name":"Get modification requests","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1modification-requests/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get modification requests","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the modification requests (RFM) on this specification that\nare shared with your company; a draft is visible only to the user\nwho wrote it. Filter by status and chapter type.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1modification-requests/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"status","in":"query","schemaId":"schema_4","description":"Filter by RFM status"},{"name":"chapterType","in":"query","schemaId":"schema_5","description":"Filter by template chapter code"},{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language of sectionName and fieldName. Defaults to English."},{"name":"pageNumber","in":"query","schemaId":"schema_6"},{"name":"pageSize","in":"query","schemaId":"schema_7"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1modification-requests/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/modification-requests","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"status","in":"query","required":false,"schemaId":"schema_4"},{"name":"chapterType","in":"query","required":false,"schemaId":"schema_5"},{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"},{"name":"pageNumber","in":"query","required":false,"schemaId":"schema_6"},{"name":"pageSize","in":"query","required":false,"schemaId":"schema_7"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/modification-requests","href":"packaging-specifications/packagingspecifications_modificationrequests","openApiOperationId":"PackagingSpecifications_ModificationRequests","summary":"Get modification requests"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the modification requests","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ModificationRequestPagedList"}},"schemaId":"components/schemas/ModificationRequestPagedList"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1modification-requests/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/ModificationRequestPagedList","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ModificationRequestPagedList"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_modificationrequests"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/modification-requests"},{"label":"Get specification history","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_history","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specifications/packagingspecifications_history","metadata":{"seo":{"title":"Get specification history","description":"Returns the change log of this specification, newest first: field and document changes, section validations and requirement validations."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_History","name":"Get specification history","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1history/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get specification history","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the change log of this specification, newest first: field\nand document changes, section validations and requirement\nvalidations.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1history/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"fromDateUtc","in":"query","schemaId":"schema_8","description":"Only changes made at or after this date"},{"name":"toDateUtc","in":"query","schemaId":"schema_8","description":"Only changes made at or before this date"},{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language of names and values. Defaults to English."},{"name":"pageNumber","in":"query","schemaId":"schema_6"},{"name":"pageSize","in":"query","schemaId":"schema_7"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1history/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/history","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"fromDateUtc","in":"query","required":false,"schemaId":"schema_8"},{"name":"toDateUtc","in":"query","required":false,"schemaId":"schema_8"},{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"},{"name":"pageNumber","in":"query","required":false,"schemaId":"schema_6"},{"name":"pageSize","in":"query","required":false,"schemaId":"schema_7"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/history","href":"packaging-specifications/packagingspecifications_history","openApiOperationId":"PackagingSpecifications_History","summary":"Get specification history"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the specification history","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/SpecificationHistoryPagedList"}},"schemaId":"components/schemas/SpecificationHistoryPagedList"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1history/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/SpecificationHistoryPagedList","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/SpecificationHistoryPagedList"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specifications/packagingspecifications_history"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/history"}],"content":{"contentType":"group","meta":{"name":"packaging-specifications"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"packaging-specifications","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Packaging specification — create, read, modification requests, history"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/packaging/specifications","summary":"Create packaging specification","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specifications/packagingspecifications_create","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}","summary":"Get packaging specification","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specifications/packagingspecifications_getbyid","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/versions","summary":"Get packaging specification versions","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specifications/packagingspecifications_versions","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/share","summary":"Share specification with the counterpart company","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specifications/packagingspecifications_share","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/contacts","summary":"Replace specification contacts","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specifications/packagingspecifications_putcontacts","deprecated":false},{"title":"/v2/packaging/specifications/collection","summary":"Get packaging specifications by IDs","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specifications/packagingspecifications_collection","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/modification-requests","summary":"Get modification requests","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specifications/packagingspecifications_modificationrequests","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/history","summary":"Get specification history","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specifications/packagingspecifications_history","deprecated":false}]}]}]}]}},{"type":"group","label":"packaging-specification-chapters","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters","items":[{"label":"Get general chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_generalchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_generalchapter","metadata":{"seo":{"title":"Get general chapter","description":"Returns typed general information: version info, retailer and supplier companies and contacts, custom fields, and references to the chapter's documents and questionnaires."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_GeneralChapter","name":"Get general chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get general chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns typed general information: version info, retailer and\nsupplier companies and contacts, custom fields, and references to\nthe chapter's documents and questionnaires.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/general-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/general-chapter","href":"packaging-specification-chapters/packagingspecifications_generalchapter","openApiOperationId":"PackagingSpecifications_GeneralChapter","summary":"Get general chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the general chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingGeneralChapter"}},"schemaId":"components/schemas/PackagingGeneralChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingGeneralChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingGeneralChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_generalchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/general-chapter"},{"label":"Replace general chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_putgeneralchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_putgeneralchapter","metadata":{"seo":{"title":"Replace general chapter","description":"Writes the writable part of the general chapter (PackagingGeneralChapterWrite). The general chapter belongs to this specification only (never a library chapter)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_PutGeneralChapter","name":"Replace general chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace general chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Writes the writable part of the general chapter\n(PackagingGeneralChapterWrite). The general chapter belongs to this\nspecification only (never a library chapter).\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingGeneralChapterWrite"}},"schemaId":"components/schemas/PackagingGeneralChapterWrite","pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/packaging/specifications/{specificationId}/general-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingGeneralChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/packaging/specifications/{specificationId}/general-chapter","href":"packaging-specification-chapters/packagingspecifications_putgeneralchapter","openApiOperationId":"PackagingSpecifications_PutGeneralChapter","summary":"Replace general chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingGeneralChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingGeneralChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was written. Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the specification changed since the chapter was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. fields owned by the counterpart company in the payload; data for a section the template disables) — or the chapter is locked (specification signature in progress) (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1general-chapter/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_putgeneralchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/general-chapter"},{"label":"Get attestation chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_attestationchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_attestationchapter","metadata":{"seo":{"title":"Get attestation chapter","description":"Returns typed attestation data including Extended Producer Responsibility, environment compliance declarations, and ESC (circular economy) standards."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_AttestationChapter","name":"Get attestation chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get attestation chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns typed attestation data including Extended Producer Responsibility,\nenvironment compliance declarations, and ESC (circular economy) standards.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/attestation-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/attestation-chapter","href":"packaging-specification-chapters/packagingspecifications_attestationchapter","openApiOperationId":"PackagingSpecifications_AttestationChapter","summary":"Get attestation chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the attestation chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingAttestationChapter"}},"schemaId":"components/schemas/PackagingAttestationChapter"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingAttestationChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingAttestationChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_attestationchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/attestation-chapter"},{"label":"Replace attestation chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_putattestationchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_putattestationchapter","metadata":{"seo":{"title":"Replace attestation chapter","description":"Full replace of the attestation chapter (PackagingAttestationChapterWrite). The attestation chapter belongs to this specification only (never a library chapter). Either party may write it."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_PutAttestationChapter","name":"Replace attestation chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace attestation chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Full replace of the attestation chapter (PackagingAttestationChapterWrite).\nThe attestation chapter belongs to this specification only (never a\nlibrary chapter). Either party may write it.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingAttestationChapterWrite"}},"schemaId":"components/schemas/PackagingAttestationChapterWrite","pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/packaging/specifications/{specificationId}/attestation-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingAttestationChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/packaging/specifications/{specificationId}/attestation-chapter","href":"packaging-specification-chapters/packagingspecifications_putattestationchapter","openApiOperationId":"PackagingSpecifications_PutAttestationChapter","summary":"Replace attestation chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingAttestationChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingAttestationChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was replaced. Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the specification changed since the chapter was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The specification's template has no attestation chapter (paramName attestationChapter); data for a section the template disables (paramName the section) — or the chapter is locked (specification signature in progress) (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1attestation-chapter/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_putattestationchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/attestation-chapter"},{"label":"Get testing chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_testingchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_testingchapter","metadata":{"seo":{"title":"Get testing chapter","description":"Returns the testing chapter reference (linked from the library), with associated requirements and documents."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_TestingChapter","name":"Get testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get testing chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the testing chapter reference (linked from the library),\nwith associated requirements and documents.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/testing-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/testing-chapter","href":"packaging-specification-chapters/packagingspecifications_testingchapter","openApiOperationId":"PackagingSpecifications_TestingChapter","summary":"Get testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the testing chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingTestingChapter"}},"schemaId":"components/schemas/PackagingTestingChapter"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingTestingChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingTestingChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_testingchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/testing-chapter"},{"label":"Link testing chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_linktestingchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_linktestingchapter","metadata":{"seo":{"title":"Link testing chapter","description":"Same behaviour as FoodSpecifications_LinkTestingChapter. Attaches anexisting library testing chapter of the PACKAGING type (created withLibraryChapters_CreateTesting, templateType packaging) to this specification,replacing the currently linked one, if any. Also the way aspecification adopts a new version of its chapter. Linking thechapter already linked changes nothing (204)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_LinkTestingChapter","name":"Link testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter~1link/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Link testing chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Same behaviour as FoodSpecifications_LinkTestingChapter. Attaches an"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"existing library testing chapter of the PACKAGING type (created with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LibraryChapters_CreateTesting, templateType packaging) to this specification,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"replacing the currently linked one, if any. Also the way a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification adopts a new version of its chapter. Linking the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter already linked changes nothing (204)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter~1link/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"schemaId":"components/schemas/ChapterReference","pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter~1link/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/packaging/specifications/{specificationId}/testing-chapter/link","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/packaging/specifications/{specificationId}/testing-chapter/link","href":"packaging-specification-chapters/packagingspecifications_linktestingchapter","openApiOperationId":"PackagingSpecifications_LinkTestingChapter","summary":"Link testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ChapterReference","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ChapterReference"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was linked"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The chapter is unknown, not of the packaging type, not a published active version, or not owned by your company (paramName chapterId) — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1testing-chapter~1link/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_linktestingchapter"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/testing-chapter/link"},{"label":"Get packaging system chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_packagingsystemchapter","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_packagingsystemchapter","metadata":{"seo":{"title":"Get packaging system chapter","description":"Returns the packaging systems associated with this specification, including full component details (materials, dimensions, suppliers, characteristics). Data is aggregated from the Packaging microservice."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_PackagingSystemChapter","name":"Get packaging system chapter","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system-chapter/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get packaging system chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the packaging systems associated with this specification,\nincluding full component details (materials, dimensions, suppliers,\ncharacteristics). Data is aggregated from the Packaging microservice.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system-chapter/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/packaging/specifications/{specificationId}/packaging-system-chapter","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/packaging/specifications/{specificationId}/packaging-system-chapter","href":"packaging-specification-chapters/packagingspecifications_packagingsystemchapter","openApiOperationId":"PackagingSpecifications_PackagingSystemChapter","summary":"Get packaging system chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the packaging system chapter","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystemChapter"}},"schemaId":"components/schemas/PackagingSystemChapter"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system-chapter/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingSystemChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystemChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_packagingsystemchapter"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/packaging-system-chapter"},{"label":"Link packaging system","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_linkpackagingsystem","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/packaging-specification-chapters/packagingspecifications_linkpackagingsystem","metadata":{"seo":{"title":"Link packaging system","description":"Attaches an existing packaging system (created withLibraryPackagingSystems_Create, or in the Packaging application) asthe specification's packaging-system chapter,replacing the currently linked one, if any. The system must be ownedby your company, not a draft, and its active version. Once linked,the system is shared with the specification's owner company. Linkingthe system already linked changes nothing (204)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PackagingSpecifications_LinkPackagingSystem","name":"Link packaging system","isWebhook":false,"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system~1link/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Link packaging system","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Attaches an existing packaging system (created with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"LibraryPackagingSystems_Create, or in the Packaging application) as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the specification's packaging-system chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"replacing the currently linked one, if any. The system must be owned"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"by your company, not a draft, and its active version. Once linked,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the system is shared with the specification's owner company. Linking"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the system already linked changes nothing (204)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"specificationId","in":"path","schemaId":"schema_0","description":"The unique identifier of the specification","required":true}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system~1link/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSystemReference"}},"schemaId":"components/schemas/PackagingSystemReference","pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system~1link/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/packaging/specifications/{specificationId}/packaging-system/link","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"specificationId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingSystemReference"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/packaging/specifications/{specificationId}/packaging-system/link","href":"packaging-specification-chapters/packagingspecifications_linkpackagingsystem","openApiOperationId":"PackagingSpecifications_LinkPackagingSystem","summary":"Link packaging system"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingSystemReference","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSystemReference"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The packaging system was linked"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging specification was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The packaging system is unknown, a draft, not its active version, or not owned by your company (paramName packagingSystemId) — or the specification is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1packaging~1specifications~1{specificationId}~1packaging-system~1link/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/packaging-specification-chapters/packagingspecifications_linkpackagingsystem"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/packaging/specifications/{specificationId}/packaging-system/link"}],"content":{"contentType":"group","meta":{"name":"packaging-specification-chapters"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"packaging-specification-chapters","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Packaging specification chapters — general, attestation, testing, packaging system"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/packaging/specifications/{specificationId}/general-chapter","summary":"Get general chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_generalchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/general-chapter","summary":"Replace general chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_putgeneralchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/attestation-chapter","summary":"Get attestation chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_attestationchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/attestation-chapter","summary":"Replace attestation chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_putattestationchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/testing-chapter","summary":"Get testing chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_testingchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/testing-chapter/link","summary":"Link testing chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_linktestingchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/packaging-system-chapter","summary":"Get packaging system chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_packagingsystemchapter","deprecated":false},{"title":"/v2/packaging/specifications/{specificationId}/packaging-system/link","summary":"Link packaging system","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/packaging-specification-chapters/packagingspecifications_linkpackagingsystem","deprecated":false}]}]}]}]}},{"type":"group","label":"folders","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/folders","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/folders","items":[{"label":"Create folder","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/folders/folders_create","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/folders/folders_create","metadata":{"seo":{"title":"Create folder","description":"Creates a folder in preparation, private until it is shared. Foldersare flat (nohierarchy) and hold food-family specifications only.Specifications are placed in it via the create payload's folderId orthe move endpoint while it is in preparation; sharing the folder(POST .../share) starts it and hands it over — after that itsspecification set is sealed."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Folders_Create","name":"Create folder","isWebhook":false,"pointer":"/paths/~1v2~1folders/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create folder","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a folder in preparation, private until it is shared. Folders"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"are flat (no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"hierarchy) and hold food-family specifications only."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Specifications are placed in it via the create payload's folderId or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the move endpoint while it is in preparation; sharing the folder"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST .../share"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") starts it and hands it over — after that its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification set is sealed."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FolderCreateRequest"}},"schemaId":"components/schemas/FolderCreateRequest","pointer":"/paths/~1v2~1folders/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/folders","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FolderCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/folders","href":"folders/folders_create","openApiOperationId":"Folders_Create","summary":"Create folder"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FolderCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FolderCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The folder was created","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FolderCreated"}},"schemaId":"components/schemas/FolderCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":"Validation failed (e.g. unknown templateId, packaging template, target date in the past)","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1folders/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/FolderCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FolderCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/folders/folders_create"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/folders"},{"label":"Share folder and its specifications","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/folders/folders_share","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/folders/folders_share","metadata":{"seo":{"title":"Share folder and its specifications","description":"Hands the folder over. No payload: the folder is started (itspreparation ends) and shared with its owner company, and everyspecification it holds is shared with its own owner company andsupplier — which is what opens the collaboration. After the handoverthe folder's specification set is sealed: specifications can no longerbe added to or moved into it. Idempotent: a folder already in progressreturns 204, and re-sharing its specifications changes nothing."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Folders_Share","name":"Share folder and its specifications","isWebhook":false,"pointer":"/paths/~1v2~1folders~1{folderId}~1share/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share folder and its specifications","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Hands the folder over. No payload: the folder is started (its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"preparation ends) and shared with its owner company, and every"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification it holds is shared with its own owner company and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"supplier — which is what opens the collaboration. After the handover"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the folder's specification set is sealed: specifications can no longer"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be added to or moved into it. Idempotent: a folder already in progress"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"returns 204, and re-sharing its specifications changes nothing."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"folderId","in":"path","schemaId":"schema_0","description":"The unique identifier of the folder","required":true}],"pointer":"/paths/~1v2~1folders~1{folderId}~1share/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/folders/{folderId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"folderId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["204","401","403","404","422","429"],"pointer":"/v2/folders/{folderId}/share","href":"folders/folders_share","openApiOperationId":"Folders_Share","summary":"Share folder and its specifications"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The folder and its specifications were shared (or already were)"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The folder was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The folder cannot be started or shared in its current state (e.g. completed, or its target date has passed since creation) — errorCode INVALID_RESOURCE_STATE, no paramName"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1folders~1{folderId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/folders/folders_share"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/folders/{folderId}/share"}],"content":{"contentType":"group","meta":{"name":"folders"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"folders","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Folders — create, share (the share includes the folder's specifications)"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/folders","summary":"Create folder","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/folders/folders_create","deprecated":false},{"title":"/v2/folders/{folderId}/share","summary":"Share folder and its specifications","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/folders/folders_share","deprecated":false}]}]}]}]}},{"type":"group","label":"specification-templates","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specification-templates","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specification-templates","items":[{"label":"Get custom-fields schema for a chapter type","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specification-templates/templates_customfieldsschema","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specification-templates/templates_customfieldsschema","metadata":{"seo":{"title":"Get custom-fields schema for a chapter type","description":"Returns the custom components the template places in one chaptertype, each with its JSON Schema. Fetched once at design/integrationtime: the customFields entries of chapter writes are keyed by thesecomponentIds and their values validated against these schemas. Apublished component and a published template never change, so theanswer for a template never changes either. Only non-librarychapters can carry custom fields: library chapters — production,testing, finished product — cannot be customized, hence therestricted chapterType values."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Templates_CustomFieldsSchema","name":"Get custom-fields schema for a chapter type","isWebhook":false,"pointer":"/paths/~1v2~1templates~1{templateId}~1chapters~1{chapterType}~1custom-fields-schema/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get custom-fields schema for a chapter type","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns the custom components the template places in one chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"type, each with its JSON Schema. Fetched once at design/integration"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"time: the customFields entries of chapter writes are keyed by these"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"componentIds and their values validated against these schemas. A"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published component and a published template never change, so the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answer for a template never changes either. Only non-library"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapters can carry custom fields: library chapters — production,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"testing, finished product — cannot be customized, hence the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"restricted chapterType values."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"templateId","in":"path","schemaId":"schema_0","description":"The template identifier (communicated at onboarding)","required":true},{"name":"chapterType","in":"path","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"general"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"labelling"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"attestation"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (packaging), or a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"retailer-defined custom chapter type code — the values of TemplateStructure.chapters[].chapterType."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library chapter types are a 404 (they cannot carry custom fields)."},"children":[]}]}]}],"required":true}],"pointer":"/paths/~1v2~1templates~1{templateId}~1chapters~1{chapterType}~1custom-fields-schema/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language of componentName, sectionName and the field titles.\nDefaults to English; a label missing in the requested language\nfalls back to English (en-US).\n"}],"pointer":"/paths/~1v2~1templates~1{templateId}~1chapters~1{chapterType}~1custom-fields-schema/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/templates/{templateId}/chapters/{chapterType}/custom-fields-schema","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"templateId","in":"path","required":true,"schemaId":"schema_0"},{"name":"chapterType","in":"path","required":true,"schemaId":"schema_5"}],"query":[{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/templates/{templateId}/chapters/{chapterType}/custom-fields-schema","href":"specification-templates/templates_customfieldsschema","openApiOperationId":"Templates_CustomFieldsSchema","summary":"Get custom-fields schema for a chapter type"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The template's custom components for this chapter type","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CustomFieldsSchema"}},"schemaId":"components/schemas/CustomFieldsSchema"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The template or chapter type was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1templates~1{templateId}~1chapters~1{chapterType}~1custom-fields-schema/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/CustomFieldsSchema","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/CustomFieldsSchema"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/specification-templates/templates_customfieldsschema"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/templates/{templateId}/chapters/{chapterType}/custom-fields-schema"},{"label":"Get template structure (chapters, sections, flags)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specification-templates/templates_structure","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/specification-templates/templates_structure","metadata":{"seo":{"title":"Get template structure (chapters, sections, flags)","description":"Design-time discovery of the retailer template: which chapters exist,which sections each carries, which sections the retailer disabled(absent from reads, rejected on writes), which payload propertycarries each section, and where custom fields sit. Field-levelrules (types, mandatory fields) come from the custom-fields schemaand the chapter write schemas. Fetched once per template atintegration time — not per call."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Templates_Structure","name":"Get template structure (chapters, sections, flags)","isWebhook":false,"pointer":"/paths/~1v2~1templates~1{templateId}~1structure/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get template structure (chapters, sections, flags)","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Design-time discovery of the retailer template: which chapters exist,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"which sections each carries, which sections the retailer disabled"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(absent from reads, rejected on writes), which payload property"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carries each section, and where custom fields sit. Field-level"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"rules (types, mandatory fields) come from the custom-fields schema"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and the chapter write schemas. Fetched once per template at"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"integration time — not per call."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"templateId","in":"path","schemaId":"schema_0","description":"The template identifier (communicated at onboarding)","required":true}],"pointer":"/paths/~1v2~1templates~1{templateId}~1structure/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language of chapter and section names. Defaults to English; a\nname missing in the requested language falls back to English\n(en-US).\n"}],"pointer":"/paths/~1v2~1templates~1{templateId}~1structure/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/templates/{templateId}/structure","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"templateId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/templates/{templateId}/structure","href":"specification-templates/templates_structure","openApiOperationId":"Templates_Structure","summary":"Get template structure (chapters, sections, flags)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the template structure","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TemplateStructure"}},"schemaId":"components/schemas/TemplateStructure"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The template was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1templates~1{templateId}~1structure/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/TemplateStructure","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TemplateStructure"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/specification-templates/templates_structure"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/templates/{templateId}/structure"}],"content":{"contentType":"group","meta":{"name":"specification-templates"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"specification-templates","showPageActions":true},{"nodeType":"markdoc","content":"Specification template structure and custom-fields schemas (design-time)"}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/templates/{templateId}/chapters/{chapterType}/custom-fields-schema","summary":"Get custom-fields schema for a chapter type","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/specification-templates/templates_customfieldsschema","deprecated":false},{"title":"/v2/templates/{templateId}/structure","summary":"Get template structure (chapters, sections, flags)","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/specification-templates/templates_structure","deprecated":false}]}]}]}]}},{"type":"separator","label":"Library","content":null},{"type":"group","label":"library-food-chapters","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters","items":[{"label":"Create library production chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_createproduction","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_createproduction","metadata":{"seo":{"title":"Create library production chapter","description":"Creates a production chapter owned by the calling company, born as aPUBLISHED active version (drafts stay internal). This is where librarychapters come to exist — specification creates reference them({ chapterId } slots) and link endpoints attach them later.Either party may own library chapters (chapters.create permission,provisioned at onboarding). Visible to nobody until shared(POST .../{chapterId}/share)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_CreateProduction","name":"Create library production chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1production-chapters/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library production chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a production chapter owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PUBLISHED active version (drafts stay internal). This is where library"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapters come to exist — specification creates reference them"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"({ chapterId } slots) and link endpoints attach them later."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Either party may own library chapters (chapters.create permission,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"provisioned at onboarding). Visible to nobody until shared"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(POST .../{chapterId}/share)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodProductionChapterCreateRequest"}},"schemaId":"components/schemas/FoodProductionChapterCreateRequest","pointer":"/paths/~1v2~1library~1food~1production-chapters/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/food/production-chapters","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodProductionChapterCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/food/production-chapters","href":"library-food-chapters/libraryfoodchapters_createproduction","openApiOperationId":"LibraryFoodChapters_CreateProduction","summary":"Create library production chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodProductionChapterCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodProductionChapterCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The chapter was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryChapterCreated"}},"schemaId":"components/schemas/LibraryChapterCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. name already used by another library chapter of the owner company, errorCode NAME_ALREADY_USED; library chapters carry no customFields)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1production-chapters/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/LibraryChapterCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryChapterCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_createproduction"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/food/production-chapters"},{"label":"Get library production chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_getproduction","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_getproduction","metadata":{"seo":{"title":"Get library production chapter","description":"Reads the chapter at its own address — the owner never needs to knowwhich specifications link it. The response carries every section thePUT writes, under the same names, plus server-derived values markedreadOnly. Returns the ETag used by If-Match on the PUT(read-modify-write: PUT is a full replace)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_GetProduction","name":"Get library production chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get library production chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reads the chapter at its own address — the owner never needs to know"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"which specifications link it. The response carries every section the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PUT writes, under the same names, plus server-derived values marked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"readOnly. Returns the ETag used by If-Match on the PUT"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(read-modify-write: PUT is a full replace)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/library/food/production-chapters/{chapterId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/food/production-chapters/{chapterId}","href":"library-food-chapters/libraryfoodchapters_getproduction","openApiOperationId":"LibraryFoodChapters_GetProduction","summary":"Get library production chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the production chapter (active version)","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryFoodProductionChapter"}},"schemaId":"components/schemas/LibraryFoodProductionChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The chapter was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/LibraryFoodProductionChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryFoodProductionChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_getproduction"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/food/production-chapters/{chapterId}"},{"label":"Replace library production chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_putproduction","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_putproduction","metadata":{"seo":{"title":"Replace library production chapter","description":"Full replace of the chapter's active published version, IN PLACE —no new version is created. Every linked specification reads this sameversion, so all of them see the update immediately. The caller mustbe the chapter's owner company. When the chapter is locked (a linkedspecification entered signature) content can no longer change inplace — the write returns 422 INVALID_RESOURCE_STATE with noparamName, since nothing in the payload is at fault; adopting a NEWversion created in the product is per-spec, via the .../linkendpoints."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_PutProduction","name":"Replace library production chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace library production chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the chapter's active published version, IN PLACE —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no new version is created. Every linked specification reads this same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version, so all of them see the update immediately. The caller must"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be the chapter's owner company. When the chapter is locked (a linked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification entered signature) content can no longer change in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"place — the write returns 422 "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INVALID_RESOURCE_STATE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paramName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", since nothing in the payload is at fault; adopting a NEW"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version created in the product is per-spec, via the .../link"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"endpoints."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodProductionChapterWrite"}},"schemaId":"components/schemas/FoodProductionChapterWrite","pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/library/food/production-chapters/{chapterId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodProductionChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/library/food/production-chapters/{chapterId}","href":"library-food-chapters/libraryfoodchapters_putproduction","openApiOperationId":"LibraryFoodChapters_PutProduction","summary":"Replace library production chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodProductionChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodProductionChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was replaced in place (active version). Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not the chapter's owner company"},{"code":"404","description":"The chapter was not found"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the chapter changed since it was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. name already used by another library chapter of the owner company, errorCode NAME_ALREADY_USED; library chapters carry no customFields) — or the resource's state refuses the write, the chapter is locked (a linked specification is in signature) — content can no longer change in place (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_putproduction"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/food/production-chapters/{chapterId}"},{"label":"Share production chapter (library)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_shareproduction","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_shareproduction","metadata":{"seo":{"title":"Share production chapter (library)","description":"Grants access to this production chapter."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_ShareProduction","name":"Share production chapter (library)","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share production chapter (library)","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this production chapter.\n\nAlways grants access to the company that owns the chapter, taken from the\nchapter itself, never from the caller. A library chapter created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/food/production-chapters/{chapterId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/food/production-chapters/{chapterId}/share","href":"library-food-chapters/libraryfoodchapters_shareproduction","openApiOperationId":"LibraryFoodChapters_ShareProduction","summary":"Share production chapter (library)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not the chapter's owner company"},{"code":"404","description":"The chapter was not found (incl. a library chapter of another type)"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1production-chapters~1{chapterId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_shareproduction"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/food/production-chapters/{chapterId}/share"},{"label":"Create library finished product chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_createfinishedproduct","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_createfinishedproduct","metadata":{"seo":{"title":"Create library finished product chapter","description":"Creates a standalone finished product chapter owned by the callingcompany, born as a PUBLISHED active version (drafts stay internal).Visible to nobody until shared (POST .../{chapterId}/share)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_CreateFinishedProduct","name":"Create library finished product chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library finished product chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a standalone finished product chapter owned by the calling"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company, born as a PUBLISHED active version (drafts stay internal)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Visible to nobody until shared (POST .../{chapterId}/share)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapterWrite"}},"schemaId":"components/schemas/FoodFinishedProductChapterWrite","pointer":"/paths/~1v2~1library~1food~1finished-product-chapters/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/food/finished-product-chapters","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapterWrite"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/food/finished-product-chapters","href":"library-food-chapters/libraryfoodchapters_createfinishedproduct","openApiOperationId":"LibraryFoodChapters_CreateFinishedProduct","summary":"Create library finished product chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodFinishedProductChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The chapter was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryChapterCreated"}},"schemaId":"components/schemas/LibraryChapterCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. name already used by another library chapter of the owner company, errorCode NAME_ALREADY_USED; library chapters carry no customFields)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/LibraryChapterCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryChapterCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_createfinishedproduct"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/food/finished-product-chapters"},{"label":"Get library finished product chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_getfinishedproduct","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_getfinishedproduct","metadata":{"seo":{"title":"Get library finished product chapter","description":"Reads the chapter at its own address — the owner never needs to knowwhich specifications link it. Same content as the spec-scopedprojection (same read mapper). Returns the ETag used by If-Matchon the PUT (read-modify-write: PUT is a full replace)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_GetFinishedProduct","name":"Get library finished product chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get library finished product chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reads the chapter at its own address — the owner never needs to know"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"which specifications link it. Same content as the spec-scoped"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"projection (same read mapper). Returns the ETag used by If-Match"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"on the PUT (read-modify-write: PUT is a full replace)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/library/food/finished-product-chapters/{chapterId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/food/finished-product-chapters/{chapterId}","href":"library-food-chapters/libraryfoodchapters_getfinishedproduct","openApiOperationId":"LibraryFoodChapters_GetFinishedProduct","summary":"Get library finished product chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the finished product chapter (active version)","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapter"}},"schemaId":"components/schemas/FoodFinishedProductChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The chapter was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodFinishedProductChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_getfinishedproduct"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/food/finished-product-chapters/{chapterId}"},{"label":"Replace library finished product chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_putfinishedproduct","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_putfinishedproduct","metadata":{"seo":{"title":"Replace library finished product chapter","description":"Full replace of the chapter's active published version, IN PLACE —no new version is created. Every linked specification reads this sameversion, so all of them see the update immediately. The caller mustbe the chapter's owner company. When the chapter is locked (a linkedspecification entered signature) content can no longer change inplace — the write returns 422 INVALID_RESOURCE_STATE with noparamName, since nothing in the payload is at fault; adopting a NEWversion created in the product is per-spec, via the .../linkendpoints."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_PutFinishedProduct","name":"Replace library finished product chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace library finished product chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the chapter's active published version, IN PLACE —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no new version is created. Every linked specification reads this same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version, so all of them see the update immediately. The caller must"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be the chapter's owner company. When the chapter is locked (a linked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification entered signature) content can no longer change in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"place — the write returns 422 "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INVALID_RESOURCE_STATE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paramName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", since nothing in the payload is at fault; adopting a NEW"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version created in the product is per-spec, via the .../link"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"endpoints."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapterWrite"}},"schemaId":"components/schemas/FoodFinishedProductChapterWrite","pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/library/food/finished-product-chapters/{chapterId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/library/food/finished-product-chapters/{chapterId}","href":"library-food-chapters/libraryfoodchapters_putfinishedproduct","openApiOperationId":"LibraryFoodChapters_PutFinishedProduct","summary":"Replace library finished product chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodFinishedProductChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodFinishedProductChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was replaced in place (active version). Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not the chapter's owner company"},{"code":"404","description":"The chapter was not found"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the chapter changed since it was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. name already used by another library chapter of the owner company, errorCode NAME_ALREADY_USED; library chapters carry no customFields) — or the resource's state refuses the write, the chapter is locked (a linked specification is in signature) — content can no longer change in place (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_putfinishedproduct"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/food/finished-product-chapters/{chapterId}"},{"label":"Share finished product chapter (library)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_sharefinishedproduct","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-food-chapters/libraryfoodchapters_sharefinishedproduct","metadata":{"seo":{"title":"Share finished product chapter (library)","description":"Grants access to this finished product chapter."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryFoodChapters_ShareFinishedProduct","name":"Share finished product chapter (library)","isWebhook":false,"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share finished product chapter (library)","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this finished product chapter.\n\nAlways grants access to the company that owns the chapter, taken from the\nchapter itself, never from the caller. A library chapter created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/food/finished-product-chapters/{chapterId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/food/finished-product-chapters/{chapterId}/share","href":"library-food-chapters/libraryfoodchapters_sharefinishedproduct","openApiOperationId":"LibraryFoodChapters_ShareFinishedProduct","summary":"Share finished product chapter (library)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not the chapter's owner company"},{"code":"404","description":"The chapter was not found (incl. a library chapter of another type)"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1food~1finished-product-chapters~1{chapterId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-food-chapters/libraryfoodchapters_sharefinishedproduct"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/food/finished-product-chapters/{chapterId}/share"}],"content":{"contentType":"group","meta":{"name":"library-food-chapters"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"library-food-chapters","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library food chapters (production, finished product) — created, updated and shared at their own address"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/library/food/production-chapters","summary":"Create library production chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_createproduction","deprecated":false},{"title":"/v2/library/food/production-chapters/{chapterId}","summary":"Get library production chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_getproduction","deprecated":false},{"title":"/v2/library/food/production-chapters/{chapterId}","summary":"Replace library production chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_putproduction","deprecated":false},{"title":"/v2/library/food/production-chapters/{chapterId}/share","summary":"Share production chapter (library)","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_shareproduction","deprecated":false},{"title":"/v2/library/food/finished-product-chapters","summary":"Create library finished product chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_createfinishedproduct","deprecated":false},{"title":"/v2/library/food/finished-product-chapters/{chapterId}","summary":"Get library finished product chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_getfinishedproduct","deprecated":false},{"title":"/v2/library/food/finished-product-chapters/{chapterId}","summary":"Replace library finished product chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_putfinishedproduct","deprecated":false},{"title":"/v2/library/food/finished-product-chapters/{chapterId}/share","summary":"Share finished product chapter (library)","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-food-chapters/libraryfoodchapters_sharefinishedproduct","deprecated":false}]}]}]}]}},{"type":"group","label":"library-testing-chapters","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters","items":[{"label":"Create library testing chapter","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_createtesting","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_createtesting","metadata":{"seo":{"title":"Create library testing chapter","description":"Creates a standalone testing chapter owned by the calling company,born as a PUBLISHED active version (drafts stay internal). Visible tonobody until shared (POST .../{chapterId}/share)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryChapters_CreateTesting","name":"Create library testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library testing chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a standalone testing chapter owned by the calling company,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"born as a PUBLISHED active version (drafts stay internal). Visible to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"nobody until shared (POST .../{chapterId}/share)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One testing chapter object for every template type (same content,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"decision D-09). The template type in the path is the family of"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specifications that can link the chapter: a packaging specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"links only a packaging chapter, a food specification only a food one."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A new template type is a new value of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"templateType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", not a new route."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"templateType","in":"path","schemaId":"schema_14","description":"The template type of the library chapter: the family of specifications\nthat can link it. A value outside the list is a 404; so is a chapter of\nanother template type.\n","required":true}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodTestingChapterWrite"}},"schemaId":"components/schemas/FoodTestingChapterWrite","pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/{templateType}/testing-chapters","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"templateType","in":"path","required":true,"schemaId":"schema_14"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodTestingChapterWrite"}},"responseCodes":["201","400","401","403","404","422","429"],"pointer":"/v2/library/{templateType}/testing-chapters","href":"library-testing-chapters/librarychapters_createtesting","openApiOperationId":"LibraryChapters_CreateTesting","summary":"Create library testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodTestingChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodTestingChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The chapter was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryChapterCreated"}},"schemaId":"components/schemas/LibraryChapterCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The template type was not found (a value outside the list)"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. name already used by another library chapter of the owner company, errorCode NAME_ALREADY_USED; library chapters carry no customFields)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/LibraryChapterCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LibraryChapterCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-testing-chapters/librarychapters_createtesting"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/{templateType}/testing-chapters"},{"label":"Get library testing chapter","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_gettesting","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_gettesting","metadata":{"seo":{"title":"Get library testing chapter","description":"Reads the chapter at its own address — the owner never needs to knowwhich specifications link it. Same content as the spec-scopedprojection (same read mapper). Returns the ETag used by If-Matchon the PUT (read-modify-write: PUT is a full replace)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryChapters_GetTesting","name":"Get library testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get library testing chapter","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reads the chapter at its own address — the owner never needs to know"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"which specifications link it. Same content as the spec-scoped"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"projection (same read mapper). Returns the ETag used by If-Match"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"on the PUT (read-modify-write: PUT is a full replace)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"templateType","in":"path","schemaId":"schema_14","description":"The template type of the library chapter: the family of specifications\nthat can link it. A value outside the list is a 404; so is a chapter of\nanother template type.\n","required":true},{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/library/{templateType}/testing-chapters/{chapterId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"templateType","in":"path","required":true,"schemaId":"schema_14"},{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/{templateType}/testing-chapters/{chapterId}","href":"library-testing-chapters/librarychapters_gettesting","openApiOperationId":"LibraryChapters_GetTesting","summary":"Get library testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the testing chapter (active version)","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodTestingChapter"}},"schemaId":"components/schemas/FoodTestingChapter","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"headerSchemaId":"schema_9"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The chapter was not found (incl. a chapter of another template type than the path)"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/FoodTestingChapter","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FoodTestingChapter"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-testing-chapters/librarychapters_gettesting"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/{templateType}/testing-chapters/{chapterId}"},{"label":"Replace library testing chapter","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_puttesting","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_puttesting","metadata":{"seo":{"title":"Replace library testing chapter","description":"Full replace of the chapter's active published version, IN PLACE —no new version is created. Every linked specification reads this sameversion, so all of them see the update immediately. The caller mustbe the chapter's owner company. When the chapter is locked (a linkedspecification entered signature) content can no longer change inplace — the write returns 422 INVALID_RESOURCE_STATE with noparamName, since nothing in the payload is at fault; adopting a NEWversion created in the product is per-spec, via the .../linkendpoints."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryChapters_PutTesting","name":"Replace library testing chapter","isWebhook":false,"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace library testing chapter","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the chapter's active published version, IN PLACE —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no new version is created. Every linked specification reads this same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version, so all of them see the update immediately. The caller must"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be the chapter's owner company. When the chapter is locked (a linked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification entered signature) content can no longer change in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"place — the write returns 422 "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INVALID_RESOURCE_STATE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paramName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", since nothing in the payload is at fault; adopting a NEW"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version created in the product is per-spec, via the .../link"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"endpoints."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"templateType","in":"path","schemaId":"schema_14","description":"The template type of the library chapter: the family of specifications\nthat can link it. A value outside the list is a 404; so is a chapter of\nanother template type.\n","required":true},{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/put/parameters"},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"If-Match","in":"header","schemaId":"schema_5","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional optimistic concurrency: the ETag returned by the chapter GET."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When provided, the write is rejected with 412 if the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed since the chapter was read (anything on it: another chapter,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a contact, a share), or, for a library chapter, if the chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changed. Guards against concurrent writers within the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owner company (cross-company overwrite is already impossible — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is the ownership boundary)."},"children":[]}]}]}]}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodTestingChapterWrite"}},"schemaId":"components/schemas/FoodTestingChapterWrite","pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/library/{templateType}/testing-chapters/{chapterId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"templateType","in":"path","required":true,"schemaId":"schema_14"},{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[{"name":"If-Match","in":"header","required":false,"schemaId":"schema_5"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FoodTestingChapterWrite"}},"responseCodes":["204","400","401","403","404","412","422","429"],"pointer":"/v2/library/{templateType}/testing-chapters/{chapterId}","href":"library-testing-chapters/librarychapters_puttesting","openApiOperationId":"LibraryChapters_PutTesting","summary":"Replace library testing chapter"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FoodTestingChapterWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FoodTestingChapterWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was replaced in place (active version). Read it back, with its new ETag, from the chapter GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not the chapter's owner company"},{"code":"404","description":"The chapter was not found (incl. a chapter of another template type than the path)"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If-Match precondition failed — the chapter changed since it was read"},"children":[]}]}]}]},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failed (incl. name already used by another library chapter of the owner company, errorCode NAME_ALREADY_USED; library chapters carry no customFields) — or the resource's state refuses the write, the chapter is locked (a linked specification is in signature) — content can no longer change in place (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"412"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-testing-chapters/librarychapters_puttesting"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/{templateType}/testing-chapters/{chapterId}"},{"label":"Share testing chapter (library)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_sharetesting","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-testing-chapters/librarychapters_sharetesting","metadata":{"seo":{"title":"Share testing chapter (library)","description":"Grants access to this testing chapter."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryChapters_ShareTesting","name":"Share testing chapter (library)","isWebhook":false,"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share testing chapter (library)","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this testing chapter.\n\nAlways grants access to the company that owns the chapter, taken from the\nchapter itself, never from the caller. A library chapter created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"templateType","in":"path","schemaId":"schema_14","description":"The template type of the library chapter: the family of specifications\nthat can link it. A value outside the list is a 404; so is a chapter of\nanother template type.\n","required":true},{"name":"chapterId","in":"path","schemaId":"schema_0","description":"The unique identifier of the library chapter","required":true}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/{templateType}/testing-chapters/{chapterId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"templateType","in":"path","required":true,"schemaId":"schema_14"},{"name":"chapterId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/{templateType}/testing-chapters/{chapterId}/share","href":"library-testing-chapters/librarychapters_sharetesting","openApiOperationId":"LibraryChapters_ShareTesting","summary":"Share testing chapter (library)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The chapter was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller is not the chapter's owner company"},{"code":"404","description":"The chapter was not found (incl. a library chapter of another type, or of another template type than the path)"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1{templateType}~1testing-chapters~1{chapterId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-testing-chapters/librarychapters_sharetesting"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/{templateType}/testing-chapters/{chapterId}/share"}],"content":{"contentType":"group","meta":{"name":"library-testing-chapters"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"library-testing-chapters","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library testing chapters — one chapter object for every template type (food, packaging), the template type in the path; created, updated and shared at their own address"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/library/{templateType}/testing-chapters","summary":"Create library testing chapter","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-testing-chapters/librarychapters_createtesting","deprecated":false},{"title":"/v2/library/{templateType}/testing-chapters/{chapterId}","summary":"Get library testing chapter","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-testing-chapters/librarychapters_gettesting","deprecated":false},{"title":"/v2/library/{templateType}/testing-chapters/{chapterId}","summary":"Replace library testing chapter","prefix":{"name":"put","color":"put"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-testing-chapters/librarychapters_puttesting","deprecated":false},{"title":"/v2/library/{templateType}/testing-chapters/{chapterId}/share","summary":"Share testing chapter (library)","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-testing-chapters/librarychapters_sharetesting","deprecated":false}]}]}]}]}},{"type":"group","label":"library-materials","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials","items":[{"label":"Create library raw material","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createrawmaterial","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createrawmaterial","metadata":{"seo":{"title":"Create library raw material","description":"Creates a raw material owned by the calling company, born as apublished library item — immediately referenceable from recipesand composites. Minimal payloads are accepted (name andcommercialName)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_CreateRawMaterial","name":"Create library raw material","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1raw-materials/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library raw material","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a raw material owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published library item — immediately referenceable from recipes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and composites. Minimal payloads are accepted (name and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"commercialName)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/RawMaterialCreateRequest"}},"schemaId":"components/schemas/RawMaterialCreateRequest","pointer":"/paths/~1v2~1library~1materials~1raw-materials/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/raw-materials","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/RawMaterialCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/materials/raw-materials","href":"library-materials/librarymaterials_createrawmaterial","openApiOperationId":"LibraryMaterials_CreateRawMaterial","summary":"Create library raw material"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/RawMaterialCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/RawMaterialCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The raw material was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}},"schemaId":"components/schemas/MaterialCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failure (incl. a duplicate name for the owning company - errorCode NAME_ALREADY_USED, or an unknown referenced id). The response names the field at fault."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1raw-materials/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MaterialCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_createrawmaterial"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/raw-materials"},{"label":"Share raw material","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_sharerawmaterial","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_sharerawmaterial","metadata":{"seo":{"title":"Share raw material","description":"Grants access to this raw material."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_ShareRawMaterial","name":"Share raw material","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1raw-materials~1{materialId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share raw material","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this raw material.\n\nAlways grants access to the company that owns the raw material, taken from the\nraw material itself, never from the caller. A raw material created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"materialId","in":"path","schemaId":"schema_0","description":"The unique identifier of the material","required":true}],"pointer":"/paths/~1v2~1library~1materials~1raw-materials~1{materialId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1materials~1raw-materials~1{materialId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/raw-materials/{materialId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"materialId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/materials/raw-materials/{materialId}/share","href":"library-materials/librarymaterials_sharerawmaterial","openApiOperationId":"LibraryMaterials_ShareRawMaterial","summary":"Share raw material"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The raw material was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The raw material was not found"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1raw-materials~1{materialId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_sharerawmaterial"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/raw-materials/{materialId}/share"},{"label":"Create library additive","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createadditive","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createadditive","metadata":{"seo":{"title":"Create library additive","description":"Creates a additive owned by the calling company, born as apublished library item — immediately referenceable from recipesand composites. Minimal payloads are accepted (name only)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_CreateAdditive","name":"Create library additive","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1additives/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library additive","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a additive owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published library item — immediately referenceable from recipes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and composites. Minimal payloads are accepted (name only)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/AdditiveCreateRequest"}},"schemaId":"components/schemas/AdditiveCreateRequest","pointer":"/paths/~1v2~1library~1materials~1additives/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/additives","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/AdditiveCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/materials/additives","href":"library-materials/librarymaterials_createadditive","openApiOperationId":"LibraryMaterials_CreateAdditive","summary":"Create library additive"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/AdditiveCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/AdditiveCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The additive was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}},"schemaId":"components/schemas/MaterialCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failure (incl. a duplicate name for the owning company - errorCode NAME_ALREADY_USED, or an unknown referenced id). The response names the field at fault."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1additives/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MaterialCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_createadditive"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/additives"},{"label":"Share additive","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareadditive","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareadditive","metadata":{"seo":{"title":"Share additive","description":"Grants access to this additive."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_ShareAdditive","name":"Share additive","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1additives~1{materialId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share additive","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this additive.\n\nAlways grants access to the company that owns the additive, taken from the\nadditive itself, never from the caller. An additive created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"materialId","in":"path","schemaId":"schema_0","description":"The unique identifier of the material","required":true}],"pointer":"/paths/~1v2~1library~1materials~1additives~1{materialId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1materials~1additives~1{materialId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/additives/{materialId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"materialId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/materials/additives/{materialId}/share","href":"library-materials/librarymaterials_shareadditive","openApiOperationId":"LibraryMaterials_ShareAdditive","summary":"Share additive"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The additive was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The additive was not found"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1additives~1{materialId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_shareadditive"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/additives/{materialId}/share"},{"label":"Create library processing aid","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createprocessingaid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createprocessingaid","metadata":{"seo":{"title":"Create library processing aid","description":"Creates a processing aid owned by the calling company, born as apublished library item — immediately referenceable from recipesand composites. Minimal payloads are accepted (name only)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_CreateProcessingAid","name":"Create library processing aid","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1processing-aids/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library processing aid","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a processing aid owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published library item — immediately referenceable from recipes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and composites. Minimal payloads are accepted (name only)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ProcessingAidCreateRequest"}},"schemaId":"components/schemas/ProcessingAidCreateRequest","pointer":"/paths/~1v2~1library~1materials~1processing-aids/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/processing-aids","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ProcessingAidCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/materials/processing-aids","href":"library-materials/librarymaterials_createprocessingaid","openApiOperationId":"LibraryMaterials_CreateProcessingAid","summary":"Create library processing aid"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ProcessingAidCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ProcessingAidCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The processing aid was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}},"schemaId":"components/schemas/MaterialCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failure (incl. a duplicate name for the owning company - errorCode NAME_ALREADY_USED, or an unknown referenced id). The response names the field at fault."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1processing-aids/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MaterialCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_createprocessingaid"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/processing-aids"},{"label":"Share processing aid","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareprocessingaid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareprocessingaid","metadata":{"seo":{"title":"Share processing aid","description":"Grants access to this processing aid."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_ShareProcessingAid","name":"Share processing aid","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1processing-aids~1{materialId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share processing aid","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this processing aid.\n\nAlways grants access to the company that owns the processing aid, taken from the\nprocessing aid itself, never from the caller. A processing aid created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"materialId","in":"path","schemaId":"schema_0","description":"The unique identifier of the material","required":true}],"pointer":"/paths/~1v2~1library~1materials~1processing-aids~1{materialId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1materials~1processing-aids~1{materialId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/processing-aids/{materialId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"materialId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/materials/processing-aids/{materialId}/share","href":"library-materials/librarymaterials_shareprocessingaid","openApiOperationId":"LibraryMaterials_ShareProcessingAid","summary":"Share processing aid"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The processing aid was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The processing aid was not found"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1processing-aids~1{materialId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_shareprocessingaid"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/processing-aids/{materialId}/share"},{"label":"Create library flavor","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createflavor","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createflavor","metadata":{"seo":{"title":"Create library flavor","description":"Creates a flavor owned by the calling company, born as apublished library item — immediately referenceable from recipesand composites. Minimal payloads are accepted (name,commercialName and flavorType)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_CreateFlavor","name":"Create library flavor","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1flavors/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library flavor","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a flavor owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published library item — immediately referenceable from recipes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and composites. Minimal payloads are accepted (name,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"commercialName and flavorType)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FlavorCreateRequest"}},"schemaId":"components/schemas/FlavorCreateRequest","pointer":"/paths/~1v2~1library~1materials~1flavors/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/flavors","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/FlavorCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/materials/flavors","href":"library-materials/librarymaterials_createflavor","openApiOperationId":"LibraryMaterials_CreateFlavor","summary":"Create library flavor"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/FlavorCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/FlavorCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The flavor was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}},"schemaId":"components/schemas/MaterialCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failure (incl. a duplicate name for the owning company - errorCode NAME_ALREADY_USED, or an unknown referenced id). The response names the field at fault."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1flavors/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MaterialCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_createflavor"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/flavors"},{"label":"Share flavor","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareflavor","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareflavor","metadata":{"seo":{"title":"Share flavor","description":"Grants access to this flavor."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_ShareFlavor","name":"Share flavor","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1flavors~1{materialId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share flavor","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this flavor.\n\nAlways grants access to the company that owns the flavor, taken from the\nflavor itself, never from the caller. A flavor created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"materialId","in":"path","schemaId":"schema_0","description":"The unique identifier of the material","required":true}],"pointer":"/paths/~1v2~1library~1materials~1flavors~1{materialId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1materials~1flavors~1{materialId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/flavors/{materialId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"materialId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/materials/flavors/{materialId}/share","href":"library-materials/librarymaterials_shareflavor","openApiOperationId":"LibraryMaterials_ShareFlavor","summary":"Share flavor"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The flavor was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The flavor was not found"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1flavors~1{materialId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_shareflavor"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/flavors/{materialId}/share"},{"label":"Create library bought composite","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createboughtcomposite","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createboughtcomposite","metadata":{"seo":{"title":"Create library bought composite","description":"Creates a bought composite owned by the calling company, born as apublished library item — immediately referenceable from recipesand composites. Minimal payloads are accepted (name andcommercialName)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_CreateBoughtComposite","name":"Create library bought composite","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1bought-composites/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library bought composite","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a bought composite owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published library item — immediately referenceable from recipes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and composites. Minimal payloads are accepted (name and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"commercialName)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/BoughtCompositeCreateRequest"}},"schemaId":"components/schemas/BoughtCompositeCreateRequest","pointer":"/paths/~1v2~1library~1materials~1bought-composites/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/bought-composites","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/BoughtCompositeCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/materials/bought-composites","href":"library-materials/librarymaterials_createboughtcomposite","openApiOperationId":"LibraryMaterials_CreateBoughtComposite","summary":"Create library bought composite"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/BoughtCompositeCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/BoughtCompositeCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The bought composite was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}},"schemaId":"components/schemas/MaterialCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failure (incl. a duplicate name for the owning company - errorCode NAME_ALREADY_USED, or an unknown referenced id). The response names the field at fault."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1bought-composites/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MaterialCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_createboughtcomposite"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/bought-composites"},{"label":"Share bought composite","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareboughtcomposite","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_shareboughtcomposite","metadata":{"seo":{"title":"Share bought composite","description":"Grants access to this bought composite."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_ShareBoughtComposite","name":"Share bought composite","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1bought-composites~1{materialId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share bought composite","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this bought composite.\n\nAlways grants access to the company that owns the bought composite, taken from the\nbought composite itself, never from the caller. A bought composite created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"materialId","in":"path","schemaId":"schema_0","description":"The unique identifier of the material","required":true}],"pointer":"/paths/~1v2~1library~1materials~1bought-composites~1{materialId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1materials~1bought-composites~1{materialId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/bought-composites/{materialId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"materialId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/materials/bought-composites/{materialId}/share","href":"library-materials/librarymaterials_shareboughtcomposite","openApiOperationId":"LibraryMaterials_ShareBoughtComposite","summary":"Share bought composite"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The bought composite was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The bought composite was not found"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1bought-composites~1{materialId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_shareboughtcomposite"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/bought-composites/{materialId}/share"},{"label":"Create library made composite","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createmadecomposite","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_createmadecomposite","metadata":{"seo":{"title":"Create library made composite","description":"Creates a made composite owned by the calling company, born as apublished library item — immediately referenceable from recipesand composites. Minimal payloads are accepted (name andcommercialName)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_CreateMadeComposite","name":"Create library made composite","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1made-composites/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create library made composite","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a made composite owned by the calling company, born as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"published library item — immediately referenceable from recipes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and composites. Minimal payloads are accepted (name and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"commercialName)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MadeCompositeCreateRequest"}},"schemaId":"components/schemas/MadeCompositeCreateRequest","pointer":"/paths/~1v2~1library~1materials~1made-composites/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/made-composites","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MadeCompositeCreateRequest"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/materials/made-composites","href":"library-materials/librarymaterials_createmadecomposite","openApiOperationId":"LibraryMaterials_CreateMadeComposite","summary":"Create library made composite"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MadeCompositeCreateRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MadeCompositeCreateRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The made composite was created and published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}},"schemaId":"components/schemas/MaterialCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field validation failure (incl. a duplicate name for the owning company - errorCode NAME_ALREADY_USED, or an unknown referenced id). The response names the field at fault."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1made-composites/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/MaterialCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/MaterialCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_createmadecomposite"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/made-composites"},{"label":"Share made composite","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_sharemadecomposite","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-materials/librarymaterials_sharemadecomposite","metadata":{"seo":{"title":"Share made composite","description":"Grants access to this made composite."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryMaterials_ShareMadeComposite","name":"Share made composite","isWebhook":false,"pointer":"/paths/~1v2~1library~1materials~1made-composites~1{materialId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share made composite","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Grants access to this made composite.\n\nAlways grants access to the company that owns the made composite, taken from the\nmade composite itself, never from the caller. A made composite created through this\nAPI is visible to nobody until it is shared, so this is how its owner\nfirst sees it.\n\nList companyIds to grant access to other companies as well, typically\na retailer. No body and an empty list both grant the owner only.\n\nIdempotent: a company that already has access is left as it is.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"materialId","in":"path","schemaId":"schema_0","description":"The unique identifier of the material","required":true}],"pointer":"/paths/~1v2~1library~1materials~1made-composites~1{materialId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":false,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"schemaId":"components/schemas/MaterialShareRequest","pointer":"/paths/~1v2~1library~1materials~1made-composites~1{materialId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/materials/made-composites/{materialId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"materialId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/materials/made-composites/{materialId}/share","href":"library-materials/librarymaterials_sharemadecomposite","openApiOperationId":"LibraryMaterials_ShareMadeComposite","summary":"Share made composite"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/MaterialShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/MaterialShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The made composite was shared"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The made composite was not found"},{"code":"422","description":"Field validation failure (incl. an unknown companyId). The response names the field at fault.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1materials~1made-composites~1{materialId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-materials/librarymaterials_sharemadecomposite"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/materials/made-composites/{materialId}/share"}],"content":{"contentType":"group","meta":{"name":"library-materials"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"library-materials","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library materials (six material types) — create (published), share"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/library/materials/raw-materials","summary":"Create library raw material","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_createrawmaterial","deprecated":false},{"title":"/v2/library/materials/raw-materials/{materialId}/share","summary":"Share raw material","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_sharerawmaterial","deprecated":false},{"title":"/v2/library/materials/additives","summary":"Create library additive","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_createadditive","deprecated":false},{"title":"/v2/library/materials/additives/{materialId}/share","summary":"Share additive","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_shareadditive","deprecated":false},{"title":"/v2/library/materials/processing-aids","summary":"Create library processing aid","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_createprocessingaid","deprecated":false},{"title":"/v2/library/materials/processing-aids/{materialId}/share","summary":"Share processing aid","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_shareprocessingaid","deprecated":false},{"title":"/v2/library/materials/flavors","summary":"Create library flavor","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_createflavor","deprecated":false},{"title":"/v2/library/materials/flavors/{materialId}/share","summary":"Share flavor","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_shareflavor","deprecated":false},{"title":"/v2/library/materials/bought-composites","summary":"Create library bought composite","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_createboughtcomposite","deprecated":false},{"title":"/v2/library/materials/bought-composites/{materialId}/share","summary":"Share bought composite","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_shareboughtcomposite","deprecated":false},{"title":"/v2/library/materials/made-composites","summary":"Create library made composite","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_createmadecomposite","deprecated":false},{"title":"/v2/library/materials/made-composites/{materialId}/share","summary":"Share made composite","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-materials/librarymaterials_sharemadecomposite","deprecated":false}]}]}]}]}},{"type":"group","label":"library-packaging-components","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components","items":[{"label":"Create a packaging component","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_create","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_create","metadata":{"seo":{"title":"Create a packaging component","description":"Creates a packaging component owned by your company, born published and in progress (status inProgress): it can be referenced by a packaging system right away. Atomic: a refused value rejects the whole component and nothing is created."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingComponents_Create","name":"Create a packaging component","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-components/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create a packaging component","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Creates a packaging component owned by your company, born published and in progress\n(status inProgress): it can be referenced by a packaging system right away. Atomic: a\nrefused value rejects the whole component and nothing is created.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"Idempotency-Key","in":"header","schemaId":"schema_15","description":"Not active yet. A unique key per create: a retried call with the same key will answer\nthe result of the first call instead of creating again. Until it is active, check\nwhether the item exists before retrying a create.\n"}],"pointer":"/paths/~1v2~1library~1packaging-components/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingComponentWrite"}},"schemaId":"components/schemas/PackagingComponentWrite","pointer":"/paths/~1v2~1library~1packaging-components/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/packaging-components","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[{"name":"Idempotency-Key","in":"header","required":false,"schemaId":"schema_15"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingComponentWrite"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/packaging-components","href":"library-packaging-components/librarypackagingcomponents_create","openApiOperationId":"LibraryPackagingComponents_Create","summary":"Create a packaging component"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingComponentWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingComponentWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The component was created","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingComponentCreated"}},"schemaId":"components/schemas/PackagingComponentCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":"A value is refused (paramName names it), e.g. an unknown reference-list item or substance, a name already used by another component of your company.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-components/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/PackagingComponentCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingComponentCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-components/librarypackagingcomponents_create"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/packaging-components"},{"label":"Get a packaging component","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_getbyid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_getbyid","metadata":{"seo":{"title":"Get a packaging component","description":"Get a packaging component"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingComponents_GetById","name":"Get a packaging component","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get a packaging component","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"packagingComponentId","in":"path","schemaId":"schema_0","required":true}],"pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/library/packaging-components/{packagingComponentId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"packagingComponentId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/packaging-components/{packagingComponentId}","href":"library-packaging-components/librarypackagingcomponents_getbyid","openApiOperationId":"LibraryPackagingComponents_GetById","summary":"Get a packaging component"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The packaging component","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingComponent"}},"schemaId":"components/schemas/PackagingComponent"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging component was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingComponent","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingComponent"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-components/librarypackagingcomponents_getbyid"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/packaging-components/{packagingComponentId}"},{"label":"Replace a packaging component","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_put","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_put","metadata":{"seo":{"title":"Replace a packaging component","description":"Full replace of the component's active version: what you send is what the component holds afterwards (a member that is null or absent is cleared). Owner company only. Every packaging system that references the component sees the change."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingComponents_Put","name":"Replace a packaging component","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace a packaging component","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Full replace of the component's active version: what you send is what the component\nholds afterwards (a member that is null or absent is cleared). Owner company only.\nEvery packaging system that references the component sees the change.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"packagingComponentId","in":"path","schemaId":"schema_0","required":true}],"pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingComponentWrite"}},"schemaId":"components/schemas/PackagingComponentWrite","pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/library/packaging-components/{packagingComponentId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"packagingComponentId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingComponentWrite"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/packaging-components/{packagingComponentId}","href":"library-packaging-components/librarypackagingcomponents_put","openApiOperationId":"LibraryPackagingComponents_Put","summary":"Replace a packaging component"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingComponentWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingComponentWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The component was replaced. Read it back from the GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The component is visible to you but owned by another company"},{"code":"404","description":"The packaging component was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A value is refused (paramName names it) - or the component is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-components~1{packagingComponentId}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-components/librarypackagingcomponents_put"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/packaging-components/{packagingComponentId}"},{"label":"Get packaging components by ids","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_collection","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-components/librarypackagingcomponents_collection","metadata":{"seo":{"title":"Get packaging components by ids","description":"Get packaging components by ids"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingComponents_Collection","name":"Get packaging components by ids","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-components~1collection/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get packaging components by ids","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_16"}},"schemaId":"schema_16","pointer":"/paths/~1v2~1library~1packaging-components~1collection/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/packaging-components/collection","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"schema_16"}},"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/packaging-components/collection","href":"library-packaging-components/librarypackagingcomponents_collection","openApiOperationId":"LibraryPackagingComponents_Collection","summary":"Get packaging components by ids"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"schema_16","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_16"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The packaging components","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_17"}},"schemaId":"schema_17"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"One of the packaging components was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-components~1collection/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_17","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_17"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-components/librarypackagingcomponents_collection"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/packaging-components/collection"}],"content":{"contentType":"group","meta":{"name":"library-packaging-components"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"library-packaging-components","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library packaging components — one physical part (a bottle, a cap, a label) with its material, dimensions and characteristics; create, replace, read"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/library/packaging-components","summary":"Create a packaging component","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-packaging-components/librarypackagingcomponents_create","deprecated":false},{"title":"/v2/library/packaging-components/{packagingComponentId}","summary":"Get a packaging component","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-packaging-components/librarypackagingcomponents_getbyid","deprecated":false},{"title":"/v2/library/packaging-components/{packagingComponentId}","summary":"Replace a packaging component","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-packaging-components/librarypackagingcomponents_put","deprecated":false},{"title":"/v2/library/packaging-components/collection","summary":"Get packaging components by ids","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-packaging-components/librarypackagingcomponents_collection","deprecated":false}]}]}]}]}},{"type":"group","label":"library-packaging-systems","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems","items":[{"label":"Create a packaging system","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_create","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_create","metadata":{"seo":{"title":"Create a packaging system","description":"Creates a packaging system owned by your company from existing, published packaging components, born published as version 1, active: a packaging specification can link it right away. Atomic: nothing is created when a value is refused."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingSystems_Create","name":"Create a packaging system","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-systems/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create a packaging system","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Creates a packaging system owned by your company from existing, published packaging\ncomponents, born published as version 1, active: a packaging specification can link it\nright away. Atomic: nothing is created when a value is refused.\n\nThe component fields keep the names the Packaging application uses (componentId,\ncomponentRecyclabilityId).\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"headers","label":"Headers","labelTranslationKey":"header","parameters":[{"name":"Idempotency-Key","in":"header","schemaId":"schema_15","description":"Not active yet. A unique key per create: a retried call with the same key will answer\nthe result of the first call instead of creating again. Until it is active, check\nwhether the item exists before retrying a create.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSystemWrite"}},"schemaId":"components/schemas/PackagingSystemWrite","pointer":"/paths/~1v2~1library~1packaging-systems/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/packaging-systems","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[{"name":"Idempotency-Key","in":"header","required":false,"schemaId":"schema_15"}],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingSystemWrite"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/library/packaging-systems","href":"library-packaging-systems/librarypackagingsystems_create","openApiOperationId":"LibraryPackagingSystems_Create","summary":"Create a packaging system"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingSystemWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSystemWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The system was created.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystemCreated"}},"schemaId":"components/schemas/PackagingSystemCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":"A value is refused (paramName names it): a name already used by another packaging\nsystem of your company, a component that is unknown, not visible to you or still a\ndraft, a quantity below 1, a link to a component that is not part of the system, a\ncomponent linked to two main components, two main components linked together.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/PackagingSystemCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystemCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-systems/librarypackagingsystems_create"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/packaging-systems"},{"label":"Get a packaging system","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_getbyid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_getbyid","metadata":{"seo":{"title":"Get a packaging system","description":"Get a packaging system"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingSystems_GetById","name":"Get a packaging system","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get a packaging system","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"packagingSystemId","in":"path","schemaId":"schema_0","required":true}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/library/packaging-systems/{packagingSystemId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"packagingSystemId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/packaging-systems/{packagingSystemId}","href":"library-packaging-systems/librarypackagingsystems_getbyid","openApiOperationId":"LibraryPackagingSystems_GetById","summary":"Get a packaging system"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The packaging system","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystem"}},"schemaId":"components/schemas/PackagingSystem"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The packaging system was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PackagingSystem","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystem"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-systems/librarypackagingsystems_getbyid"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/packaging-systems/{packagingSystemId}"},{"label":"Replace a packaging system","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_put","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_put","metadata":{"seo":{"title":"Replace a packaging system","description":"Full replace of the system's active version: name and components (quantities, maincomponent, recyclability, links). Owner company only. Every packaging specification thatlinks the system sees the change. A system locked by a specification in signature isrefused; it changes through a new version (LibraryPackagingSystems_NewVersion)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingSystems_Put","name":"Replace a packaging system","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/put","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Replace a packaging system","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full replace of the system's active version: name and components (quantities, main"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"component, recyclability, links). Owner company only. Every packaging specification that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"links the system sees the change. A system locked by a specification in signature is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"refused; it changes through a new version (LibraryPackagingSystems_NewVersion)."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"packagingSystemId","in":"path","schemaId":"schema_0","required":true}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/put/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSystemWrite"}},"schemaId":"components/schemas/PackagingSystemWrite","pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/put/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"PUT","path":"/v2/library/packaging-systems/{packagingSystemId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"packagingSystemId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PackagingSystemWrite"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/packaging-systems/{packagingSystemId}","href":"library-packaging-systems/librarypackagingsystems_put","openApiOperationId":"LibraryPackagingSystems_Put","summary":"Replace a packaging system"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/PackagingSystemWrite","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PackagingSystemWrite"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The system was replaced. Read it back from the GET."},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The system is visible to you but owned by another company"},{"code":"404","description":"The packaging system was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A value is refused (paramName names it, same rules as the create) - or the system is locked (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}/put/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-systems/librarypackagingsystems_put"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/packaging-systems/{packagingSystemId}"},{"label":"Share a packaging system","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_share","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_share","metadata":{"seo":{"title":"Share a packaging system","description":"Shares the system with the companies listed, together with its components. Additive: companies it is already shared with stay. Sharing with a company it is already shared with changes nothing (204). Owner company only."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingSystems_Share","name":"Share a packaging system","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1share/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Share a packaging system","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Shares the system with the companies listed, together with its components. Additive:\ncompanies it is already shared with stay. Sharing with a company it is already shared\nwith changes nothing (204). Owner company only.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"packagingSystemId","in":"path","schemaId":"schema_0","required":true}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1share/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ShareRequest"}},"schemaId":"components/schemas/ShareRequest","pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1share/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/packaging-systems/{packagingSystemId}/share","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"packagingSystemId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/ShareRequest"}},"responseCodes":["204","400","401","403","404","422","429"],"pointer":"/v2/library/packaging-systems/{packagingSystemId}/share","href":"library-packaging-systems/librarypackagingsystems_share","openApiOperationId":"LibraryPackagingSystems_Share","summary":"Share a packaging system"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/ShareRequest","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ShareRequest"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"204","description":"The system is shared with the companies listed"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The system is visible to you but owned by another company"},{"code":"404","description":"The packaging system was not found"},{"code":"422","description":"A company id is unknown (paramName companyIds)","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1share/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"204"},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-systems/librarypackagingsystems_share"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/packaging-systems/{packagingSystemId}/share"},{"label":"Create a new version of a packaging system","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_newversion","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_newversion","metadata":{"seo":{"title":"Create a new version of a packaging system","description":"Not implemented yet. Creates the next version of a locked system, born published and active, with the content of the previous version. Specifications that link the previous version keep it; a specification adopts the new version by linking it again."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingSystems_NewVersion","name":"Create a new version of a packaging system","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1new-version/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create a new version of a packaging system","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Not implemented yet. Creates the next version of a locked system, born published and\nactive, with the content of the previous version. Specifications that link the previous\nversion keep it; a specification adopts the new version by linking it again.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"packagingSystemId","in":"path","schemaId":"schema_0","required":true}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1new-version/post/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/packaging-systems/{packagingSystemId}/new-version","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"packagingSystemId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["201","401","403","404","422","429"],"pointer":"/v2/library/packaging-systems/{packagingSystemId}/new-version","href":"library-packaging-systems/librarypackagingsystems_newversion","openApiOperationId":"LibraryPackagingSystems_NewVersion","summary":"Create a new version of a packaging system"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The new version was created","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystemVersionCreated"}},"schemaId":"components/schemas/PackagingSystemVersionCreated"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The system is visible to you but owned by another company"},{"code":"404","description":"The packaging system was not found"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The system is not locked, or it is not its last version (errorCode INVALID_RESOURCE_STATE, no paramName)"},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems~1{packagingSystemId}~1new-version/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/PackagingSystemVersionCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PackagingSystemVersionCreated"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-systems/librarypackagingsystems_newversion"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/library/packaging-systems/{packagingSystemId}/new-version"},{"label":"Get packaging systems by ids","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_collection","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/library-packaging-systems/librarypackagingsystems_collection","metadata":{"seo":{"title":"Get packaging systems by ids","description":"Get packaging systems by ids"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"LibraryPackagingSystems_Collection","name":"Get packaging systems by ids","isWebhook":false,"pointer":"/paths/~1v2~1library~1packaging-systems~1collection/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get packaging systems by ids","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_16"}},"schemaId":"schema_16","pointer":"/paths/~1v2~1library~1packaging-systems~1collection/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/library/packaging-systems/collection","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"schema_16"}},"responseCodes":["200","401","403","404","429"],"pointer":"/v2/library/packaging-systems/collection","href":"library-packaging-systems/librarypackagingsystems_collection","openApiOperationId":"LibraryPackagingSystems_Collection","summary":"Get packaging systems by ids"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"schema_16","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_16"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The packaging systems","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_18"}},"schemaId":"schema_18"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"One of the packaging systems was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1library~1packaging-systems~1collection/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_18","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_18"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/library-packaging-systems/librarypackagingsystems_collection"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/library/packaging-systems/collection"}],"content":{"contentType":"group","meta":{"name":"library-packaging-systems"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"library-packaging-systems","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library packaging systems — an assembly of components, what a packaging specification links to; create, replace, share, new version, read. Import order - components, then the system, then the specification link"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/library/packaging-systems","summary":"Create a packaging system","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-packaging-systems/librarypackagingsystems_create","deprecated":false},{"title":"/v2/library/packaging-systems/{packagingSystemId}","summary":"Get a packaging system","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-packaging-systems/librarypackagingsystems_getbyid","deprecated":false},{"title":"/v2/library/packaging-systems/{packagingSystemId}","summary":"Replace a packaging system","prefix":{"name":"put","color":"put"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-packaging-systems/librarypackagingsystems_put","deprecated":false},{"title":"/v2/library/packaging-systems/{packagingSystemId}/share","summary":"Share a packaging system","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-packaging-systems/librarypackagingsystems_share","deprecated":false},{"title":"/v2/library/packaging-systems/{packagingSystemId}/new-version","summary":"Create a new version of a packaging system","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/library-packaging-systems/librarypackagingsystems_newversion","deprecated":false},{"title":"/v2/library/packaging-systems/collection","summary":"Get packaging systems by ids","prefix":{"name":"post","color":"post"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/library-packaging-systems/librarypackagingsystems_collection","deprecated":false}]}]}]}]}},{"type":"group","label":"questionnaire-templates","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaire-templates","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaire-templates","items":[{"label":"Get questionnaire template (questions)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaire-templates/questionnairetemplates_getbyid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaire-templates/questionnairetemplates_getbyid","metadata":{"seo":{"title":"Get questionnaire template (questions)","description":"Design-time view of a published questionnaire template: itsquestions, their codes, value types, options and dependencies.Templates are created by Professional Services through theapplication. Fetched once per template at integration time — thequestion codes are the keys of the answers document."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"QuestionnaireTemplates_GetById","name":"Get questionnaire template (questions)","isWebhook":false,"pointer":"/paths/~1v2~1questionnaire-templates~1{questionnaireTemplateId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get questionnaire template (questions)","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Design-time view of a published questionnaire template: its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questions, their codes, value types, options and dependencies."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Templates are created by Professional Services through the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"application. Fetched once per template at integration time — the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"question codes are the keys of the answers document."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"questionnaireTemplateId","in":"path","schemaId":"schema_0","description":"The unique identifier of the questionnaire template","required":true}],"pointer":"/paths/~1v2~1questionnaire-templates~1{questionnaireTemplateId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/questionnaire-templates/{questionnaireTemplateId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"questionnaireTemplateId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/questionnaire-templates/{questionnaireTemplateId}","href":"questionnaire-templates/questionnairetemplates_getbyid","openApiOperationId":"QuestionnaireTemplates_GetById","summary":"Get questionnaire template (questions)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the questionnaire template","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/QuestionnaireTemplateView"}},"schemaId":"components/schemas/QuestionnaireTemplateView"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The questionnaire template was not found, or is not published"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1questionnaire-templates~1{questionnaireTemplateId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/QuestionnaireTemplateView","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/QuestionnaireTemplateView"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/questionnaire-templates/questionnairetemplates_getbyid"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/questionnaire-templates/{questionnaireTemplateId}"},{"label":"Get the answers schema (design time)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaire-templates/questionnairetemplates_answersschema","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaire-templates/questionnairetemplates_answersschema","metadata":{"seo":{"title":"Get the answers schema (design time)","description":"Returns the JSON Schema that answer documents for this templatemust satisfy. This is the design-time contract for the answerswrite: fetch it once per template, bake the mapping into theintegration, and send answer documents that validate against it.One schema per template — hundreds of templates scale withoutper-template DTOs. A published template never changes, so neitherdoes its schema."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"QuestionnaireTemplates_AnswersSchema","name":"Get the answers schema (design time)","isWebhook":false,"pointer":"/paths/~1v2~1questionnaire-templates~1{questionnaireTemplateId}~1answers-schema/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get the answers schema (design time)","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns the JSON Schema that answer documents for this template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"must satisfy. This is the design-time contract for the answers"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"write: fetch it once per template, bake the mapping into the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"integration, and send answer documents that validate against it."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One schema per template — hundreds of templates scale without"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"per-template DTOs. A published template never changes, so neither"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"does its schema."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The schema is a JSON Schema draft-07 document projected from the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"stored one:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"properties are keyed by question code (QuestionnaireQuestion.code:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"generated names question1, question2, … stable for the published"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"template — map them through questionId or text of the template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET, not by guessing);"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a question other questions depend on sits with its dependants in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a condition object (condition1, …) whose draft-07 dependencies /"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"oneOf branches carry the dependants per parent answer;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a choice question carries enum of its option codes (items.enum"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for multi-choice);"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the root has additionalProperties false: a key that is not a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"question or condition code is refused;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the schema declares no required keyword: which questions must be"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answered for the questionnaire to validate is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"QuestionnaireQuestion.required (and dependsOn) of the template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"GET. Mandatory answers are not checked on write;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"internal keywords of the stored schema are not exposed."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The dialect stays draft-07 (dependencies is a draft-07 keyword); a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"newer dialect would only ever be offered as an opt-in."},"children":[]}]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"questionnaireTemplateId","in":"path","schemaId":"schema_0","description":"The unique identifier of the questionnaire template","required":true}],"pointer":"/paths/~1v2~1questionnaire-templates~1{questionnaireTemplateId}~1answers-schema/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/questionnaire-templates/{questionnaireTemplateId}/answers-schema","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"questionnaireTemplateId","in":"path","required":true,"schemaId":"schema_0"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/questionnaire-templates/{questionnaireTemplateId}/answers-schema","href":"questionnaire-templates/questionnairetemplates_answersschema","openApiOperationId":"QuestionnaireTemplates_AnswersSchema","summary":"Get the answers schema (design time)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the JSON Schema for this template's answers","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_19"}},"schemaId":"schema_19"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"404","description":"The questionnaire template was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1questionnaire-templates~1{questionnaireTemplateId}~1answers-schema/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"schema_19","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_19"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/questionnaire-templates/questionnairetemplates_answersschema"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/questionnaire-templates/{questionnaireTemplateId}/answers-schema"}],"content":{"contentType":"group","meta":{"name":"questionnaire-templates"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"questionnaire-templates","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Questionnaire templates — questions and answers schema (design-time)"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/questionnaire-templates/{questionnaireTemplateId}","summary":"Get questionnaire template (questions)","prefix":{"name":"get","color":"get"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/questionnaire-templates/questionnairetemplates_getbyid","deprecated":false},{"title":"/v2/questionnaire-templates/{questionnaireTemplateId}/answers-schema","summary":"Get the answers schema (design time)","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/questionnaire-templates/questionnairetemplates_answersschema","deprecated":false}]}]}]}]}},{"type":"group","label":"questionnaires","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaires","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaires","items":[{"label":"Create questionnaire instance","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaires/questionnaires_create","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaires/questionnaires_create","metadata":{"seo":{"title":"Create questionnaire instance","description":"Creates a questionnaire instance from a published template. Theinstance is owned by the template's owner company and isINDEPENDENT of any specification until it is linked(POST .../food/specifications/{specificationId}/questionnaires/link).Answers are written once it is linked."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Questionnaires_Create","name":"Create questionnaire instance","isWebhook":false,"pointer":"/paths/~1v2~1questionnaires/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create questionnaire instance","badges":[{"name":"Designed","color":"grey","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates a questionnaire instance from a published template. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"instance is owned by the template's owner company and is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"INDEPENDENT of any specification until it is linked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST .../food/specifications/{specificationId}/questionnaires/link"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Answers are written once it is linked."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/QuestionnaireInstanceCreate"}},"schemaId":"components/schemas/QuestionnaireInstanceCreate","pointer":"/paths/~1v2~1questionnaires/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/questionnaires","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"requestBody":{"application/json":{"schemaId":"components/schemas/QuestionnaireInstanceCreate"}},"responseCodes":["201","400","401","403","422","429"],"pointer":"/v2/questionnaires","href":"questionnaires/questionnaires_create","openApiOperationId":"Questionnaires_Create","summary":"Create questionnaire instance"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"schemaId":"components/schemas/QuestionnaireInstanceCreate","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/QuestionnaireInstanceCreate"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"201","description":"The questionnaire instance was created","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/QuestionnaireInstanceCreated"}},"schemaId":"components/schemas/QuestionnaireInstanceCreated"},{"code":"400","description":"The request is malformed"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have permissions"},{"code":"422","description":"The questionnaire template was not found or is not published","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}},"schemaId":"components/schemas/ValidationErrorResponse"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1questionnaires/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"201","schemaId":"components/schemas/QuestionnaireInstanceCreated","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/QuestionnaireInstanceCreated"}}},{"code":"400"},{"code":"401"},{"code":"403"},{"code":"422","schemaId":"components/schemas/ValidationErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationErrorResponse"}}},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/questionnaires/questionnaires_create"}],"panels":[]}]},"badges":[{"name":"Designed","color":"grey","position":"before"}],"httpPath":"/v2/questionnaires"},{"label":"Get questionnaire instance (questions & answers)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaires/questionnaires_getbyid","routeSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification/questionnaires/questionnaires_getbyid","metadata":{"seo":{"title":"Get questionnaire instance (questions & answers)","description":"Reads one questionnaire instance at its own address: its questions(stable id, text, description, type, options) and the currentanswers. Symmetric with PUT .../answers. Template-type agnostic —also serves packaging questionnaires, whose ids are exposed by thepackaging chapter reads. Unanswered questions carry a null answer;a value is never fabricated."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"Questionnaires_GetById","name":"Get questionnaire instance (questions & answers)","isWebhook":false,"pointer":"/paths/~1v2~1questionnaires~1{questionnaireId}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get questionnaire instance (questions & answers)","badges":[{"name":"Limited","color":"orange","position":"before"}],"isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reads one questionnaire instance at its own address: its questions"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(stable id, text, description, type, options) and the current"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answers. Symmetric with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PUT .../answers"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Template-type agnostic —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"also serves packaging questionnaires, whose ids are exposed by the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"packaging chapter reads. Unanswered questions carry a null answer;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a value is never fabricated."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"oauth2","scopes":["t1_api"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"questionnaireId","in":"path","schemaId":"schema_0","description":"The unique identifier of the questionnaire instance","required":true}],"pointer":"/paths/~1v2~1questionnaires~1{questionnaireId}/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"languageCode","in":"query","schemaId":"schema_5","description":"Language for question texts, descriptions and option labels.\nDefaults to the questionnaire's own language.\n"}],"pointer":"/paths/~1v2~1questionnaires~1{questionnaireId}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/v2/questionnaires/{questionnaireId}","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"parameters":{"path":[{"name":"questionnaireId","in":"path","required":true,"schemaId":"schema_0"}],"query":[{"name":"languageCode","in":"query","required":false,"schemaId":"schema_5"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"oauth2","type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}],"scopes":["t1_api"]}],"responseCodes":["200","401","403","404","429"],"pointer":"/v2/questionnaires/{questionnaireId}","href":"questionnaires/questionnaires_getbyid","openApiOperationId":"Questionnaires_GetById","summary":"Get questionnaire instance (questions & answers)"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Returns the questionnaire with its answers","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/QuestionnaireView"}},"schemaId":"components/schemas/QuestionnaireView"},{"code":"401","description":"The authentication credentials are invalid"},{"code":"403","description":"The caller does not have access to this questionnaire"},{"code":"404","description":"The questionnaire instance was not found"},{"code":"429","description":"Too many requests. The gateway limits the number of requests each client sends; retry\nlater, with backoff.\n"}],"pointer":"/paths/~1v2~1questionnaires~1{questionnaireId}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/QuestionnaireView","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/QuestionnaireView"}}},{"code":"401"},{"code":"403"},{"code":"404"},{"code":"429"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/questionnaires/questionnaires_getbyid"}],"panels":[]}]},"badges":[{"name":"Limited","color":"orange","position":"before"}],"httpPath":"/v2/questionnaires/{questionnaireId}"}],"content":{"contentType":"group","meta":{"name":"questionnaires"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"questionnaires","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Questionnaire instances — create, read, write answers"},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/questionnaires","summary":"Create questionnaire instance","prefix":{"name":"post","color":"post"},"badges":[{"name":"Designed","color":"grey","position":"before"}],"link":"/questionnaires/questionnaires_create","deprecated":false},{"title":"/v2/questionnaires/{questionnaireId}","summary":"Get questionnaire instance (questions & answers)","prefix":{"name":"get","color":"get"},"badges":[{"name":"Limited","color":"orange","position":"before"}],"link":"/questionnaires/questionnaires_getbyid","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/ValidationErrorResponse":{"id":"components/schemas/ValidationErrorResponse","kind":"json-schema","title":"ValidationErrorResponse","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returned when a write is rejected (422): the payload cannot be processed, or the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"resource's current state does not allow the write. One entry per problem. Read "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errors[]"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"message"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is only a human-readable summary and its wording changes with the number of"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"errors. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorCode"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" tells which kind: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"UNPROCESSABLE_CONTENT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (a value in the payload is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"refused; "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paramName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" names it), "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"NAME_ALREADY_USED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of a library object is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"already used by another object of the owner company; "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paramName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - pick another"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"name and retry) or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INVALID_RESOURCE_STATE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (the resource is locked, completed or otherwise"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not in a state that allows this write; "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paramName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is null - fix the resource, not the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"request). This API does not use 409; concurrency is 412 (If-Match)."},"children":[]}]}]}]}],"properties":{"message":{"type":"string","description":"Summary for humans and logs. Do not branch on this value.","example":"Errors have occured"},"traceId":{"type":"string","description":"Correlation id. Quote it when reporting a problem to Trace One."},"errors":{"type":"array","description":"One entry per rejected value.","items":{"type":"object","properties":{"errorCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Stable machine-readable code. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"UNPROCESSABLE_CONTENT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (payload value refused), "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"NAME_ALREADY_USED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (library object name taken by the owner company) or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"INVALID_RESOURCE_STATE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (resource state refuses the write)."},"children":[]}]}]}],"example":"UNPROCESSABLE_CONTENT"},"errorMessage":{"type":"string","description":"What is wrong with this value.","example":"Unknown product type."},"paramName":{"type":"string","nullable":true,"description":"The field the error concerns, named as it appears in the request.\nNull when the error is not about one specific field.\n","example":"productTypeId"},"legacyErrorCode":{"type":"string","nullable":true,"description":"Legacy identifier. Usually null; do not depend on it."}}}}}}},"components/schemas/SpecificationCollectionRequest":{"id":"components/schemas/SpecificationCollectionRequest","kind":"json-schema","title":"SpecificationCollectionRequest","data":{"type":"object","required":["specificationIds"],"properties":{"specificationIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50}}}},"components/schemas/SpecificationSearchRequest":{"id":"components/schemas/SpecificationSearchRequest","kind":"json-schema","title":"SpecificationSearchRequest","data":{"type":"object","properties":{"searchTerms":{"type":"string","nullable":true,"description":"Free-text search (matches specification name; also GTIN and trade item name for product specs)","example":"organic yogurt"},"templateTypes":{"type":"array","items":{"type":"string","enum":["Food","PetFood","Packaging","FruitsAndVegetable","Formula","BabyFood","FoodSupplement"]},"nullable":true,"description":"Filter by template types (omit for all)"},"statuses":{"type":"array","items":{"type":"string","enum":["Draft","InProgress","Validated","Signed","Revised","Cancelled"]},"nullable":true},"supplierIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"ownerCompanyIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"categoryItemId":{"type":"string","format":"uuid","nullable":true},"tradeItemId":{"type":"string","format":"uuid","nullable":true,"description":"Filter by trade item ID (food templates only)"},"gtin":{"type":"string","nullable":true,"description":"Filter by product GTIN barcode (food templates only)","example":"3270190207924"},"latest":{"type":"boolean","nullable":true,"description":"If true, return only the latest version per logical specification"},"active":{"type":"boolean","nullable":true,"description":"If true, return only the active (current production) version"},"orderBy":{"type":"string","enum":["CreationDateUtc","LastUpdateDateUtc","Name","Status"],"default":"CreationDateUtc"},"orderByDescending":{"type":"boolean","default":true},"pageNumber":{"type":"integer","minimum":1,"default":1},"pageSize":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},"components/schemas/ObjectVersion":{"id":"components/schemas/ObjectVersion","kind":"json-schema","title":"ObjectVersion","data":{"type":"object","properties":{"number":{"type":"integer","format":"int32"},"activeVersion":{"type":"boolean","description":"True if this is the currently active (production) version"},"lastVersion":{"type":"boolean","description":"True if this is the latest created version"}},"additionalProperties":false}},"components/schemas/SpecificationVersion":{"id":"components/schemas/SpecificationVersion","kind":"json-schema","title":"SpecificationVersion","data":{"type":"object","readOnly":true,"description":"One version of a specification. Signature details are on the specification read of that version.","properties":{"specificationId":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/SpecificationStatus"},"version":{"$ref":"#/components/schemas/ObjectVersion"},"ownerCompanyId":{"type":"string","format":"uuid"},"supplierCompanyId":{"type":"string","format":"uuid","nullable":true},"creationDateUtc":{"type":"string","format":"date-time"}},"additionalProperties":false}},"components/schemas/SpecificationSignatures":{"id":"components/schemas/SpecificationSignatures","kind":"json-schema","title":"SpecificationSignatures","data":{"type":"object","readOnly":true,"description":"The signature of this specification version. Absent (null) until a signature process starts.","properties":{"signedFileId":{"type":"string","format":"uuid","description":"The signed PDF of the specification (file id)"},"retailerSignature":{"type":"object","allOf":[{"$ref":"#/components/schemas/SignatureInfo"}],"nullable":true,"description":"Null until the retailer has signed"},"supplierSignature":{"type":"object","allOf":[{"$ref":"#/components/schemas/SignatureInfo"}],"nullable":true,"description":"Null until the supplier has signed"}},"additionalProperties":false}},"components/schemas/SignatureInfo":{"id":"components/schemas/SignatureInfo","kind":"json-schema","title":"SignatureInfo","data":{"type":"object","readOnly":true,"properties":{"signedDateUtc":{"type":"string","format":"date-time","nullable":true,"description":"Date the signature of the specification completed (both parties signed). Same value on both parties; null until completion."},"signedByUserId":{"type":"string","format":"uuid","description":"The user who signed for this party"}},"additionalProperties":false}},"components/schemas/LinkedChapter":{"id":"components/schemas/LinkedChapter","kind":"json-schema","title":"LinkedChapter","data":{"type":"object","readOnly":true,"properties":{"chapterType":{"type":"string","description":"Template chapter code of the linked library chapter: production,\ntesting or finishedProduct on food specifications; testing on\npackaging specifications.\n","example":"production"},"chapterId":{"type":"string","format":"uuid","description":"The linked library chapter version"}},"additionalProperties":false}},"components/schemas/SpecificationCompany":{"id":"components/schemas/SpecificationCompany","kind":"json-schema","title":"SpecificationCompany","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Company and contacts for a specification party (retailer or supplier)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No name enrichment — IDs only. Resolve via the CUMD public API."},"children":[]}]}]}],"properties":{"companyId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The party's company. Set by the specification; not writable in the chapter."},"subsidiaryCompanyId":{"type":"string","format":"uuid","nullable":true},"signatoryContacts":{"type":"array","items":{"$ref":"#/components/schemas/SpecificationContact"},"nullable":true,"readOnly":true,"description":"The party's contacts on the specification, each flagged\nisSignatory. Written with the contacts endpoint, not the chapter.\n"},"additionalContacts":{"type":"array","items":{"$ref":"#/components/schemas/AdditionalContact"},"nullable":true,"description":"The party's additional contacts. Written through the chapter\nwrite's retailer.additionalContacts / supplier.additionalContacts.\n"},"validations":{"type":"array","items":{"$ref":"#/components/schemas/ValidationInfo"},"readOnly":true,"description":"Validations of this section. A caller that is not the\nspecification owner sees only the owner's validations and its own.\nEmpty when the section is not validated.\n"}},"additionalProperties":false}},"components/schemas/SpecificationContact":{"id":"components/schemas/SpecificationContact","kind":"json-schema","title":"SpecificationContact","data":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","readOnly":true},"isSignatory":{"type":"boolean","readOnly":true,"description":"Whether this contact signs the specification for the party"}},"additionalProperties":false}},"components/schemas/AdditionalContact":{"id":"components/schemas/AdditionalContact","kind":"json-schema","title":"AdditionalContact","data":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/NetContent":{"id":"components/schemas/NetContent","kind":"json-schema","title":"NetContent","data":{"type":"object","properties":{"value":{"type":"string","nullable":true},"unitId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}},"components/schemas/Requirement":{"id":"components/schemas/Requirement","kind":"json-schema","title":"Requirement","data":{"type":"object","description":"A requirement attached to the chapter (reference). Attached at\nspecification creation (FoodSpecificationCreateRequest.requirements);\nnever written through a chapter payload.\n","properties":{"requirementId":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","nullable":true,"readOnly":true},"requirementType":{"type":"string","enum":["Text","Document"],"readOnly":true},"validated":{"type":"boolean","readOnly":true}},"additionalProperties":false}},"components/schemas/ChapterRequirementsWrite":{"id":"components/schemas/ChapterRequirementsWrite","kind":"json-schema","title":"ChapterRequirementsWrite","data":{"type":"object","required":["requirementIds"],"properties":{"requirementIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The requirements the chapter carries after the call; [] detaches them all."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/ChapterDocumentsWrite":{"id":"components/schemas/ChapterDocumentsWrite","kind":"json-schema","title":"ChapterDocumentsWrite","data":{"type":"object","required":["fileIds"],"properties":{"fileIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The files the chapter carries after the call; [] detaches them all."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/DocumentSection":{"id":"components/schemas/DocumentSection","kind":"json-schema","title":"DocumentSection","data":{"type":"object","properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/DocumentItem"},"nullable":true,"readOnly":true,"description":"Documents attached to this chapter; null when none"}},"additionalProperties":false}},"components/schemas/DocumentItem":{"id":"components/schemas/DocumentItem","kind":"json-schema","title":"DocumentItem","data":{"type":"object","properties":{"fileId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/Measurement":{"id":"components/schemas/Measurement","kind":"json-schema","title":"Measurement","data":{"type":"object","properties":{"value":{"type":"number","format":"double","nullable":true},"unitId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}},"components/schemas/VersionInfo":{"id":"components/schemas/VersionInfo","kind":"json-schema","title":"VersionInfo","data":{"type":"object","nullable":true,"description":"Version section of the packaging general chapter, the read twin of\nPackagingVersionWrite. null when the chapter has no version section.\n","properties":{"reasonForThisVersion":{"type":"string","nullable":true,"description":"Reason for the current specification version/revision"},"impactOnLabeling":{"type":"boolean","description":"Whether this version has impact on labeling"}},"additionalProperties":false}},"components/schemas/FoodProduct":{"id":"components/schemas/FoodProduct","kind":"json-schema","title":"FoodProduct","data":{"type":"object","description":"Product identity for food specifications (READ side). Packaging specs have no direct\nproduct link. Every field here is derived from the trade item the specification points\nat and is refused in a write payload: change the specification's tradeItemId instead.\n","properties":{"tradeItemId":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"gtin":{"type":"string","nullable":true,"readOnly":true,"example":"3270190207924"},"productBrandId":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"productCategoryIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"readOnly":true},"netContents":{"type":"array","items":{"$ref":"#/components/schemas/NetContent"},"nullable":true,"readOnly":true}},"additionalProperties":false}},"components/schemas/SpecificationSearchResult":{"id":"components/schemas/SpecificationSearchResult","kind":"json-schema","title":"SpecificationSearchResult","data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SpecificationListItem"}},"totalCount":{"type":"integer"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalPages":{"type":"integer"},"hasNextPage":{"type":"boolean"},"hasPreviousPage":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/SpecificationListItem":{"id":"components/schemas/SpecificationListItem","kind":"json-schema","title":"SpecificationListItem","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Chapter-agnostic specification summary. Same shape regardless of template type."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No enrichment — IDs only. Resolve company/product names via other APIs."},"children":[]}]}]}],"properties":{"specificationId":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true,"example":"Organic Strawberry Yogurt 150g"},"templateType":{"type":"string","example":"Food"},"ownerCompanyId":{"type":"string","format":"uuid"},"supplierCompanyId":{"type":"string","format":"uuid","nullable":true},"productTypeId":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string","enum":["Draft","InProgress","Validated","Signed","Revised","Cancelled"]},"sharedWithCompanyIds":{"type":"array","readOnly":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Companies with access — the owner always; the supplier once shared."},"children":[]}]}]}],"items":{"type":"string","format":"uuid"}},"version":{"$ref":"#/components/schemas/ObjectVersion"},"creationDateUtc":{"type":"string","format":"date-time"},"lastUpdateDateUtc":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}},"components/schemas/FoodSpecification":{"id":"components/schemas/FoodSpecification","kind":"json-schema","title":"FoodSpecification","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Food specification identity, status, version, contacts and chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"references. IDs only, no enrichment. Every member the create accepts"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"reads back here under the same name, except the chapters"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(include=chapters, libraryLinkedChapters) and requirements"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(GET .../requirements)."},"children":[]}]}]}],"properties":{"specificationId":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","nullable":true,"readOnly":true,"description":"Derived from the trade item","example":"Organic Strawberry Yogurt 150g"},"templateType":{"type":"string","readOnly":true,"example":"Food"},"templateId":{"type":"string","format":"uuid"},"tradeItemId":{"type":"string","format":"uuid","nullable":true},"ownerCompanyId":{"type":"string","format":"uuid","readOnly":true},"ownerUserId":{"type":"string","format":"uuid","description":"The user of the owner company who owns the specification"},"supplierCompanyId":{"type":"string","format":"uuid"},"languageCode":{"type":"string","nullable":true,"example":"en-US"},"reasonForThisVersion":{"type":"string","nullable":true},"folderId":{"type":"string","format":"uuid","nullable":true,"description":"The folder the specification is placed in; null when it is in none"},"status":{"$ref":"#/components/schemas/SpecificationStatus"},"sharedWithCompanyIds":{"type":"array","readOnly":true,"description":"Companies with access to the specification: the owner always,\nthe supplier once the specification has been shared\n(POST .../share or the share of its folder).\n","items":{"type":"string","format":"uuid"}},"contacts":{"type":"array","readOnly":true,"description":"Contacts of both parties","items":{"$ref":"#/components/schemas/SpecificationPartyContact"}},"version":{"$ref":"#/components/schemas/ObjectVersion"},"creationDateUtc":{"type":"string","format":"date-time","readOnly":true},"lastUpdateDateUtc":{"type":"string","format":"date-time","readOnly":true},"signatures":{"type":"object","allOf":[{"$ref":"#/components/schemas/SpecificationSignatures"}],"nullable":true},"libraryLinkedChapters":{"type":"array","readOnly":true,"description":"Library chapters linked to the specification (empty when none)","items":{"$ref":"#/components/schemas/LinkedChapter"}}}}},"components/schemas/FoodGeneralChapter":{"id":"components/schemas/FoodGeneralChapter","kind":"json-schema","title":"FoodGeneralChapter","data":{"type":"object","description":"Read shape of the general chapter. Written through\nFoodGeneralChapterWrite: each party's subsidiaryCompanyId and\nadditionalContacts, and customFields. Party contacts (and their\nsignatory flag) are written through PUT .../contacts. The product block is derived\nfrom the specification's trade item. Requirements, documents and\nquestionnaires are references, attached at the specification level.\n","properties":{"versionInfo":{"$ref":"#/components/schemas/FoodVersionInfo"},"product":{"$ref":"#/components/schemas/FoodProduct"},"retailer":{"$ref":"#/components/schemas/SpecificationCompany"},"supplier":{"$ref":"#/components/schemas/SpecificationCompany"},"customFields":{"$ref":"#/components/schemas/CustomFields"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/Requirement"},"nullable":true},"documents":{"$ref":"#/components/schemas/DocumentSection"},"questionnaires":{"type":"array","items":{"$ref":"#/components/schemas/Questionnaire"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Questionnaire instances attached to this chapter (references;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"content at GET /questionnaires/{questionnaireId})."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/ProductionSite":{"id":"components/schemas/ProductionSite","kind":"json-schema","title":"ProductionSite","data":{"type":"object","properties":{"siteId":{"type":"string","format":"uuid","description":"Resolve via Sites API for full site details"}},"required":["siteId"],"additionalProperties":false}},"components/schemas/FoodProductionChapter":{"id":"components/schemas/FoodProductionChapter","kind":"json-schema","title":"FoodProductionChapter","data":{"type":"object","description":"Spec-scoped read of the production chapter: the library production\nchapters linked to the specification (one entry each), and the\nspecification's own requirements and documents for this chapter type.\nRead-only projection; chapter content is written at the chapter's own\naddress.\n","properties":{"productionChapters":{"type":"array","items":{"$ref":"#/components/schemas/ProductionSubChapter"},"nullable":true,"description":"One entry per linked library production chapter. Empty when no\nchapter is linked. An assortment specification links several.\n"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/Requirement"},"nullable":true},"documents":{"$ref":"#/components/schemas/DocumentSection"}},"additionalProperties":false}},"components/schemas/ProductionSubChapter":{"id":"components/schemas/ProductionSubChapter","kind":"json-schema","title":"ProductionSubChapter","data":{"type":"object","description":"One library production chapter as linked to the specification: the\nchapter's content (same names as LibraryFoodProductionChapter) plus\nwhat the specification adds to it (linkedChapterId, commercialName,\npercentage).\n","properties":{"linkedChapterId":{"type":"string","format":"uuid","readOnly":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The linked library chapter; read and write it at /library/food/production-chapters/{chapterId}."},"children":[]}]}]}]},"name":{"type":"string","nullable":true,"readOnly":true,"description":"Library display name of the linked chapter."},"commercialName":{"type":"string","nullable":true,"readOnly":true,"example":"Strawberry variant","description":"Name of this chapter within an assortment specification. null for a product specification."},"percentage":{"type":"number","format":"double","nullable":true,"readOnly":true,"description":"Share of this chapter within an assortment specification (greater than 0, 2 decimals). null for a product specification."},"sites":{"type":"array","items":{"$ref":"#/components/schemas/ProductionSite"},"nullable":true},"recipe":{"$ref":"#/components/schemas/RecipeRead"},"nutrition":{"$ref":"#/components/schemas/NutritionalInformation"},"allergens":{"$ref":"#/components/schemas/AllergenDeclarationRead"}},"additionalProperties":false}},"components/schemas/RecipeRead":{"id":"components/schemas/RecipeRead","kind":"json-schema","title":"RecipeRead","data":{"type":"object","description":"The chapter's recipe: its own composite, the ingredients read through\nit, and the chapter's own manufacturing detail.\n","properties":{"compositeId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The chapter's own composite material, created with the chapter.\nIt never changes: the recipe is written into it (RecipeWrite), the\nchapter is never pointed at another composite.\n"},"ingredients":{"type":"array","items":{"$ref":"#/components/schemas/Ingredient"},"nullable":true,"readOnly":true,"description":"Read through the chapter's composite. Written through\nRecipeWrite.ingredients on the chapter update.\n"},"totalPercentage":{"type":"number","format":"double","nullable":true,"readOnly":true},"manufacturingDiagramFileIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"calculationOfYield":{"$ref":"#/components/schemas/CalculationOfYield"},"recycledProductQuantity":{"$ref":"#/components/schemas/RecycledProductQuantity"}},"required":["compositeId"],"additionalProperties":false}},"components/schemas/RecipeWrite":{"id":"components/schemas/RecipeWrite","kind":"json-schema","title":"RecipeWrite","data":{"type":"object","description":"The chapter's recipe, written on the chapter update only (not on the\ncreate - see FoodProductionChapterCreateRequest). The ingredients go\ninto the chapter's OWN composite, the one created with the chapter; the\nchapter cannot be pointed at another composite, so compositeId is\nread-only (RecipeRead). Writing the ingredients re-derives the allergen\nsections. The three other blocks belong to the chapter itself.\n","properties":{"ingredients":{"type":"array","items":{"$ref":"#/components/schemas/MaterialIngredientWrite"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Replaces the recipe's ingredient list in full. null or absent"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"leaves it unchanged; send [] to clear it. Each ingredient references"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"an existing library material the caller can see (leaf-first import"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"order); an ingredient the recipe refuses is a 422 naming"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ingredients[i]. Each materialId appears at most once - the update"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"matches the stored ingredients by materialId - so a duplicate is a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"422 naming ingredients[i].materialId."},"children":[]}]}]}]},"manufacturingDiagramFileIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Replaces the current list in full. null or absent leaves it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"unchanged; send [] to clear it."},"children":[]}]}]}]},"calculationOfYield":{"$ref":"#/components/schemas/CalculationOfYield"},"recycledProductQuantity":{"$ref":"#/components/schemas/RecycledProductQuantity"}},"additionalProperties":false}},"components/schemas/CalculationOfYield":{"id":"components/schemas/CalculationOfYield","kind":"json-schema","title":"CalculationOfYield","data":{"type":"object","properties":{"percentage":{"type":"number","format":"double","nullable":true},"method":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/RecycledProductQuantity":{"id":"components/schemas/RecycledProductQuantity","kind":"json-schema","title":"RecycledProductQuantity","data":{"type":"object","properties":{"minimumValue":{"type":"number","format":"double","nullable":true},"targetValue":{"type":"number","format":"double","nullable":true},"maximumValue":{"type":"number","format":"double","nullable":true},"unitId":{"type":"string","format":"uuid","nullable":true,"description":"Reference list \"unit of measure\", restricted to volume, mass and\npercentage units.\n"}},"additionalProperties":false}},"components/schemas/Ingredient":{"id":"components/schemas/Ingredient","kind":"json-schema","title":"Ingredient","data":{"type":"object","description":"One ingredient of the chapter's recipe, read through the chapter's\ncomposite. Top-level entries are the ones written\n(MaterialIngredientWrite), under the same names; subIngredients are\nthe ingredients of a composite ingredient, read only.\n","properties":{"ingredientId":{"type":"string","format":"uuid","readOnly":true},"materialId":{"type":"string","format":"uuid","nullable":true,"description":"The referenced material. null for an ingredient a bought sub-composite declares by name."},"ingredientName":{"type":"string","nullable":true,"readOnly":true,"example":"Organic Strawberry Puree","description":"Taken from the referenced material."},"percentage":{"type":"number","format":"double","nullable":true,"description":"Share of the recipe, in percent, under the ingredient's parent."},"minPercentage":{"type":"number","format":"double","nullable":true},"maxPercentage":{"type":"number","format":"double","nullable":true},"functionId":{"type":"string","format":"uuid","nullable":true,"description":"Technological function of the ingredient in the recipe (reference list)."},"subIngredients":{"type":"array","items":{"$ref":"#/components/schemas/Ingredient"},"nullable":true,"readOnly":true}},"additionalProperties":false}},"components/schemas/FoodLabellingChapter":{"id":"components/schemas/FoodLabellingChapter","kind":"json-schema","title":"FoodLabellingChapter","data":{"type":"object","description":"Read shape of the labelling chapter. Every field of\nFoodLabellingChapterWrite comes back under the same name; fields the\nplatform derives are readOnly. A section the specification's template\ndisables is null. Requirements and documents are read-only references.\n","properties":{"productInformation":{"$ref":"#/components/schemas/LabellingProductInformationRead"},"nutriScore":{"$ref":"#/components/schemas/NutriScoreRead"},"consumerInstructions":{"$ref":"#/components/schemas/ConsumerInstructionsRead"},"sortingInstructions":{"$ref":"#/components/schemas/SortingInstructions"},"gmoRiskAnalysis":{"$ref":"#/components/schemas/GmoRiskAnalysisRead"},"additionalMarketingInformation":{"$ref":"#/components/schemas/MarketingInformation"},"businessNameAndAddress":{"$ref":"#/components/schemas/BusinessNameAndAddressRead"},"ingredientDeclaration":{"$ref":"#/components/schemas/IngredientDeclarationRead"},"nutritionalInformation":{"$ref":"#/components/schemas/NutritionDeclarationRead"},"claims":{"type":"array","items":{"$ref":"#/components/schemas/LabellingClaimRead"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every claim the chapter carries, manual and automatic alike;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"automaticallyAdded says which is which. Only the manual ones are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"writable — see FoodLabellingChapterWrite.claims."},"children":[]}]}]}]},"customFields":{"$ref":"#/components/schemas/CustomFields"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/Requirement"},"nullable":true},"documents":{"$ref":"#/components/schemas/DocumentSection"}},"additionalProperties":false}},"components/schemas/IngredientDeclarationRead":{"id":"components/schemas/IngredientDeclarationRead","kind":"json-schema","title":"IngredientDeclarationRead","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read shape of section pack_ingredient_list: one ingredient list per"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"production chapter linked to the specification. The list text is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"generated from the production chapter's recipe and the declaration"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"rows; overrideText is the text printed instead of it when set. A"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"recipe change regenerates generatedText and leaves overrideText as it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"stands."},"children":[]}]}]}],"properties":{"languageCode":{"type":"string","nullable":true,"readOnly":true,"example":"en"},"entries":{"type":"array","nullable":true,"items":{"type":"object","properties":{"productionChapterId":{"type":"string","format":"uuid","nullable":true,"description":"null on the single merged list of a specification in merged (assortment) mode."},"generatedText":{"type":"string","nullable":true,"readOnly":true,"example":"Milk, sugar, strawberry puree (8%), modified starch, natural flavouring"},"overrideText":{"type":"string","nullable":true},"printedText":{"type":"string","nullable":true,"readOnly":true,"description":"overrideText when set, generatedText otherwise."},"displayOnPack":{"type":"boolean"},"declareAllergens":{"type":"boolean","nullable":true},"characteristicIngredients":{"type":"array","items":{"$ref":"#/components/schemas/CharacteristicIngredient"}},"rows":{"type":"array","description":"The declaration rows of the list, in recipe order: one per\nrecipe ingredient, plus the groups. parentId builds the tree.\n","items":{"$ref":"#/components/schemas/IngredientDeclarationRowRead"}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/CharacteristicIngredient":{"id":"components/schemas/CharacteristicIngredient","kind":"json-schema","title":"CharacteristicIngredient","data":{"type":"object","required":["materialId"],"properties":{"materialId":{"type":"string","format":"uuid","description":"The material of the recipe ingredient, or the bought (B3P)\ncomposite that holds it when ingredientId is set.\n"},"ingredientId":{"type":"string","format":"uuid","nullable":true,"description":"The ingredient inside a bought composite; null otherwise."}},"additionalProperties":false}},"components/schemas/IngredientDeclarationRowRead":{"id":"components/schemas/IngredientDeclarationRowRead","kind":"json-schema","title":"IngredientDeclarationRowRead","data":{"type":"object","properties":{"rowId":{"type":"string","format":"uuid"},"parentId":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string","nullable":true,"readOnly":true},"ingredientType":{"type":"string","readOnly":true,"enum":["Composite","RawMaterial","Additive","ProcessingAid","Flavor","Group"]},"materialId":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"ingredientId":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"percentage":{"type":"number","nullable":true,"readOnly":true},"allergenIds":{"type":"array","nullable":true,"readOnly":true,"items":{"type":"string","format":"uuid"}},"declarationType":{"$ref":"#/components/schemas/IngredientDeclarationType"},"declareAs":{"type":"string","nullable":true},"quid":{"type":"number","nullable":true}},"additionalProperties":false}},"components/schemas/IngredientDeclarationType":{"id":"components/schemas/IngredientDeclarationType","kind":"json-schema","title":"IngredientDeclarationType","data":{"type":"string","enum":["DoNotDeclare","NotApplicable","DeclareAsSingle","DeclareAsComposite"]}},"components/schemas/IngredientDeclarationWrite":{"id":"components/schemas/IngredientDeclarationWrite","kind":"json-schema","title":"IngredientDeclarationWrite","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_ingredient_list — INPUTS ONLY, keyed by production"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter. The list text is generated from each production chapter's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"recipe and from the declaration rows below, and is read-only"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(IngredientDeclarationRead generatedText). The rows themselves come"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"from the recipe: they are addressed, never created or removed, except"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the groups."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An entry addresses a production chapter linked to the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(on a create: referenced by this same create). A productionChapterId"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"that is not linked is a 422 naming the entry; the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"productionChapterId twice is a 422 naming the second occurrence."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Entries are not created or removed here: a linked chapter the array"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"does not carry keeps what it holds."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Within an entry:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"overrideText: null or absent removes the override (the generated"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"text is printed)."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"displayOnPack: null or absent is true."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"declareAllergens: null or absent keeps the current value."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"characteristicIngredients: replaces the list in full; null or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"absent keeps it, [] clears it. An item that is not an ingredient"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"of the production chapter's recipe is a 422 naming the section."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"rows: sets the declaration of the rows it names (by rowId, as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"read on IngredientDeclarationRead); a row it does not name keeps"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"its declaration. Within a row, a null or absent field keeps its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"value. Refused with a 422 naming the item: a rowId that is not on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the list; a declarationType not allowed for the row's ingredient"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"type; any change to a row whose declarationType is NotApplicable;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a quid on a row declared DoNotDeclare or NotApplicable."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"groups: replaces the groups in full; null or absent keeps them,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"[] removes them all. A group carrying a groupId already on the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"list is kept (its name, declarationType and members are updated);"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a group without groupId is created; a group on the list the array"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"does not carry is removed, its members go back to their parent."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refused with a 422 naming the item: a memberRowId that is not on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the list; members with different parents; a member declared"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DoNotDeclare or NotApplicable; a group declarationType other than"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DeclareAsSingle or DeclareAsComposite."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Rows are applied before groups; the list text is regenerated once,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"after the entry is applied."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merged (assortment) mode is out of scope: on a specification in merged"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"mode the section is refused with a 422 naming the section."},"children":[]}]}]}],"properties":{"entries":{"type":"array","items":{"type":"object","required":["productionChapterId"],"properties":{"productionChapterId":{"type":"string","format":"uuid"},"overrideText":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Text printed instead of the generated list. null = no override."},"children":[]}]}]}]},"displayOnPack":{"type":"boolean","nullable":true,"default":true},"declareAllergens":{"type":"boolean","nullable":true},"characteristicIngredients":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CharacteristicIngredient"}},"rows":{"type":"array","nullable":true,"items":{"type":"object","required":["rowId"],"properties":{"rowId":{"type":"string","format":"uuid"},"declarationType":{"$ref":"#/components/schemas/IngredientDeclarationType"},"declareAs":{"type":"string","nullable":true,"description":"Name printed for the row instead of the ingredient name."},"quid":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Quantitative ingredient declaration, in percent; > 0 and <= 100, step 0.01."},"children":[]}]}]}]}},"additionalProperties":false}},"groups":{"type":"array","nullable":true,"items":{"type":"object","required":["name","declarationType","memberRowIds"],"properties":{"groupId":{"type":"string","format":"uuid","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A group already on the list (its rowId); null or absent = a new group."},"children":[]}]}]}]},"name":{"type":"string"},"declarationType":{"$ref":"#/components/schemas/IngredientDeclarationType"},"memberRowIds":{"type":"array","minItems":1,"items":{"type":"string","format":"uuid"}}},"additionalProperties":false}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/NutritionDeclarationRead":{"id":"components/schemas/NutritionDeclarationRead","kind":"json-schema","title":"NutritionDeclarationRead","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read shape of section pack_nutrition: one nutrition declaration per"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"production chapter linked to the specification. The per-100 g values,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"their units and the default serving are copied from the production"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter's nutrition table (written there, see"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodProductionChapterWrite.nutrition). The additional servings, the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"manual per-serving values, displayToConsumer and the analysis files"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"are labelling inputs (NutritionDeclarationWrite)."},"children":[]}]}]}],"properties":{"entries":{"type":"array","nullable":true,"items":{"type":"object","properties":{"productionChapterId":{"type":"string","format":"uuid","nullable":true,"description":"null on the single merged declaration of a specification in merged (assortment) mode."},"servings":{"type":"array","items":{"type":"object","properties":{"servingId":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"defaultServing":{"type":"boolean","readOnly":true},"value":{"type":"number","nullable":true},"massUnitId":{"type":"string","format":"uuid","nullable":true},"volumeUnitId":{"type":"string","format":"uuid","nullable":true},"servingTypeCode":{"type":"string","nullable":true},"automaticCalculation":{"type":"boolean"},"ratio":{"type":"number","readOnly":true}},"additionalProperties":false}},"nutrients":{"type":"array","items":{"type":"object","properties":{"nutrientId":{"type":"string","format":"uuid"},"unitId":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"unroundedValue":{"type":"number","nullable":true,"readOnly":true,"description":"Per reference quantity (100 g / 100 ml), copied from the production chapter."},"displayToConsumer":{"type":"boolean"},"perServing":{"type":"array","items":{"type":"object","properties":{"servingId":{"type":"string","format":"uuid"},"unroundedValue":{"type":"number","nullable":true},"unroundedDailyIntake":{"type":"number","nullable":true},"roundedValue":{"type":"number","nullable":true},"roundedValueText":{"type":"string","nullable":true,"readOnly":true,"example":"372 kJ / 89 kcal"},"roundedDailyIntake":{"type":"number","nullable":true}},"additionalProperties":false}}},"additionalProperties":false}},"nutritionalAnalysisFileIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/NutritionDeclarationWrite":{"id":"components/schemas/NutritionDeclarationWrite","kind":"json-schema","title":"NutritionDeclarationWrite","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_nutrition — INPUTS ONLY, keyed by production chapter. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"per-100 g values, their units and the default serving come from the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"production chapter's nutrition table and are read-only here: they are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"written on the production chapter (FoodProductionChapterWrite.nutrition)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Per-serving values are computed for a serving whose"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"automaticCalculation is true, and entered by the caller for a serving"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"whose automaticCalculation is false."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An entry addresses a production chapter linked to the specification"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(on a create: referenced by this same create). A productionChapterId"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"that is not linked is a 422 naming the entry; the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"productionChapterId twice is a 422 naming the second occurrence."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Entries are not created or removed here: a linked chapter the array"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"does not carry keeps what it holds."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Within an entry:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"servings: replaces the ADDITIONAL servings in full (the default"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"serving is read-only); null or absent keeps them, [] removes them"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"all. A servingId already on the table updates that serving; a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"servingId not on the table adds a serving with that id; a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"serving on the table the array does not carry is removed with its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"per-serving values. The default serving's id is a 422 naming the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"item; the same servingId twice is a 422 naming the second"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"occurrence."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"nutrients: sets what it names; a nutrient it does not name keeps"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"what it holds. A nutrientId absent from the production chapter's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"nutrition table is a 422 naming the item. displayToConsumer null"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"or absent keeps the flag. perServing carries the manual values of"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a serving whose automaticCalculation is false (after the servings"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"above are applied); a servingId of a serving whose"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"automaticCalculation is true, or that is not on the table, is a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"422 naming the item. Within a perServing item, null or absent"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"keeps the value."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"nutritionalAnalysisFileIds: replaces the analysis files in full;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"null or absent keeps them, [] clears them. A file that does not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"exist or is not a nutritional-analysis file is a 422 naming the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"section."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merged (assortment) mode is out of scope: on a specification in merged"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"mode the section is refused with a 422 naming the section."},"children":[]}]}]}],"properties":{"entries":{"type":"array","items":{"type":"object","required":["productionChapterId"],"properties":{"productionChapterId":{"type":"string","format":"uuid"},"servings":{"type":"array","nullable":true,"items":{"type":"object","required":["servingId","name","value","automaticCalculation"],"properties":{"servingId":{"type":"string","format":"uuid","description":"Chosen by the caller for a new serving; stable afterwards."},"name":{"type":"string","minLength":1},"value":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Portion size, > 0, step 0.00001."},"children":[]}]}]}]},"massUnitId":{"type":"string","format":"uuid","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Mass unit of the portion (Units of measure list, mass type); null = the default serving's."},"children":[]}]}]}]},"volumeUnitId":{"type":"string","format":"uuid","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Volume unit of the portion (Units of measure list, volume type); null = the default serving's."},"children":[]}]}]}]},"servingTypeCode":{"type":"string","nullable":true,"description":"Code from the ServingTypes list."},"automaticCalculation":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"true = per-serving values computed from the per-100 g values; false = entered in nutrients[].perServing."},"children":[]}]}]}]}},"additionalProperties":false}},"nutrients":{"type":"array","nullable":true,"items":{"type":"object","required":["nutrientId"],"properties":{"nutrientId":{"type":"string","format":"uuid"},"displayToConsumer":{"type":"boolean","nullable":true},"perServing":{"type":"array","nullable":true,"items":{"type":"object","required":["servingId"],"properties":{"servingId":{"type":"string","format":"uuid"},"unroundedValue":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"= 0, step 0.00001."},"children":[]}]}]}]}]},"unroundedDailyIntake":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reference intake percentage, >= 0, step 0.00001."},"children":[]}]}]}]},"roundedValue":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"= 0, step 0.00001."},"children":[]}]}]}]}]},"roundedDailyIntake":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"= 0, step 0.00001."},"children":[]}]}]}]}]}},"additionalProperties":false}}},"additionalProperties":false}},"nutritionalAnalysisFileIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/NutritionalInformation":{"id":"components/schemas/NutritionalInformation","kind":"json-schema","title":"NutritionalInformation","data":{"type":"object","description":"READ shape of the production chapter's nutrition table, the\ncounterpart of NutritionalInformationWrite: the nutrient values per\nreference quantity (100 g / 100 ml), the two automatic switches and\nthe default serving portion. Rounded, per-serving and\nreference-intake values and the nutri-score are labelling data\n(NutritionDeclarationRead, labelling chapter).\n","properties":{"nutrients":{"type":"array","items":{"$ref":"#/components/schemas/Nutrient"},"nullable":true},"servingSize":{"$ref":"#/components/schemas/ServingSizeRead"},"automaticCalculation":{"type":"boolean","nullable":true,"description":"When true, the server computes the energy values from the other nutrients."},"automaticConversion":{"type":"boolean","nullable":true,"description":"When true, the server converts nutrient values between units."}},"additionalProperties":false}},"components/schemas/Nutrient":{"id":"components/schemas/Nutrient","kind":"json-schema","title":"Nutrient","data":{"type":"object","description":"One row of the nutrition table, under the names of NutrientWrite.\nWith automaticCalculation the energy rows hold the computed value;\nwith automaticConversion a value may be converted to the row's unit.\n","properties":{"nutrientId":{"type":"string","format":"uuid"},"unitId":{"type":"string","format":"uuid","nullable":true,"description":"Unit of measure of the value. Filled with the nutrient's default unit when written empty."},"unroundedValue":{"type":"number","nullable":true,"description":"Value per reference quantity (100 g / 100 ml), unrounded."}},"required":["nutrientId"],"additionalProperties":false}},"components/schemas/NutritionalInformationWrite":{"id":"components/schemas/NutritionalInformationWrite","kind":"json-schema","title":"NutritionalInformationWrite","data":{"type":"object","description":"WRITE shape of the nutrition section. Writes carry the INPUTS only:\nthe nutrient values as entered, the serving size and the two automatic flags. The\nrendered and computed values of NutritionalInformation (per100g / perServing strings,\nreferenceIntakePercentage, nutriScore) are read-only and computed server-side from\nthese inputs. On the update, full replace within the section: an omitted nutrient\nis removed, and omitting a mandatory nutrient is a 422 naming nutrition. On the\ncreate, the sent nutrients are added to the mandatory ones (see\nFoodProductionChapterCreateRequest.nutrition).\n","properties":{"nutrients":{"type":"array","items":{"$ref":"#/components/schemas/NutrientWrite"},"nullable":true},"servingSize":{"$ref":"#/components/schemas/ServingSizeWrite"},"automaticCalculation":{"type":"boolean","nullable":true,"description":"Let the server compute the derived nutrient values (default true)."},"automaticConversion":{"type":"boolean","nullable":true,"description":"Let the server convert between mass and volume units (default true)."}},"additionalProperties":false}},"components/schemas/NutrientWrite":{"id":"components/schemas/NutrientWrite","kind":"json-schema","title":"NutrientWrite","data":{"type":"object","required":["nutrientId"],"properties":{"nutrientId":{"type":"string","format":"uuid","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Nutrient reference (Nutrients reference list). Unknown id = 422 naming the entry."},"children":[]}]}]}]},"unitId":{"type":"string","format":"uuid","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unit of measure of the value; null = the nutrient's default unit."},"children":[]}]}]}]},"unroundedValue":{"type":"number","nullable":true,"description":"The value as entered, per reference quantity (100 g / 100 ml), unrounded (decimal).\nRounding, per-serving values and reference-intake percentages are computed server-side.\n"}},"additionalProperties":false}},"components/schemas/ServingSizeWrite":{"id":"components/schemas/ServingSizeWrite","kind":"json-schema","title":"ServingSizeWrite","data":{"type":"object","description":"Default serving portion the per-serving values are computed from.","properties":{"value":{"type":"number","nullable":true,"description":"Portion size (default 100)."},"massUnitId":{"type":"string","format":"uuid","nullable":true,"description":"Mass unit of the portion (default gram)."},"volumeUnitId":{"type":"string","format":"uuid","nullable":true,"description":"Volume unit of the portion (default millilitre)."},"servingTypeCode":{"type":"string","nullable":true},"servingTypeDescription":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/AllergenDeclarationRead":{"id":"components/schemas/AllergenDeclarationRead","kind":"json-schema","title":"AllergenDeclarationRead","data":{"type":"object","description":"The three allergen blocks of the production chapter. Raw-material\nentries come from the recipe composite's PRESENT declarations.\nCross-contamination entries come from the composite's\nUNINTENTIONALLY PRESENT declarations and from the allergens the\nchapter's sites handle; an entry with neither is dropped. Free-from\nentries are the chapter's own list.\n","properties":{"rawMaterialAllergens":{"type":"array","items":{"$ref":"#/components/schemas/RawMaterialAllergenRead"},"nullable":true,"readOnly":true},"crossContaminationAllergens":{"type":"array","items":{"$ref":"#/components/schemas/CrossContaminationAllergenRead"},"nullable":true},"freeFromAllergens":{"type":"array","items":{"$ref":"#/components/schemas/FreeFromAllergenRead"},"nullable":true}},"additionalProperties":false}},"components/schemas/RawMaterialAllergenRead":{"id":"components/schemas/RawMaterialAllergenRead","kind":"json-schema","title":"RawMaterialAllergenRead","data":{"type":"object","description":"An allergen the composite declares as PRESENT, with the ingredients it\ncomes from. Entirely derived - there is no write counterpart.\n","properties":{"allergenId":{"type":"string","format":"uuid"},"ingredientIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"required":["allergenId"],"additionalProperties":false}},"components/schemas/CrossContaminationAllergenRead":{"id":"components/schemas/CrossContaminationAllergenRead","kind":"json-schema","title":"CrossContaminationAllergenRead","data":{"type":"object","description":"A cross-contamination risk: the recipe ingredients and the production\nsites it comes from, and whether it is controlled (the only input,\nsee CrossContaminationAllergenWrite).\n","properties":{"allergenId":{"type":"string","format":"uuid"},"ingredientIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"readOnly":true},"siteIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"readOnly":true},"controlledRisk":{"type":"boolean"}},"required":["allergenId"],"additionalProperties":false}},"components/schemas/FreeFromAllergenRead":{"id":"components/schemas/FreeFromAllergenRead","kind":"json-schema","title":"FreeFromAllergenRead","data":{"type":"object","description":"An allergen the chapter declares itself free from, with its proof.","properties":{"allergenId":{"type":"string","format":"uuid"},"proofFileId":{"type":"string","format":"uuid","nullable":true}},"required":["allergenId"],"additionalProperties":false}},"components/schemas/AllergenDeclarationWrite":{"id":"components/schemas/AllergenDeclarationWrite","kind":"json-schema","title":"AllergenDeclarationWrite","data":{"type":"object","description":"Qualifies allergens the chapter already carries. The allergen SET is\nnot writable: an allergenId that the derived list does not contain is a\n422 naming the entry, because there is nothing to qualify.\nrawMaterialAllergens has no write shape at all - it is pure derivation.\n\nThe cross-contamination entries come from two sources: the recipe's\ncomposite, and the allergens the chapter's SITES declare; an entry\nleft with no ingredient behind it is dropped. The set is the union\nof the two, recomputed on each write to either section - which is\nwhy a caller can qualify an entry but never create or remove one.\n","properties":{"crossContaminationAllergens":{"type":"array","items":{"$ref":"#/components/schemas/CrossContaminationAllergenWrite"},"nullable":true,"description":"Qualifies the derived cross-contamination entries. An entry absent\nfrom the array keeps what it holds - this is NOT a full replace,\nbecause the list is not the caller's to replace. null or absent\nchanges nothing.\n"},"freeFromAllergens":{"type":"array","items":{"$ref":"#/components/schemas/FreeFromAllergenWrite"},"nullable":true,"description":"Same rule: qualifies derived entries, never adds or removes them.\n"}},"additionalProperties":false}},"components/schemas/CrossContaminationAllergenWrite":{"id":"components/schemas/CrossContaminationAllergenWrite","kind":"json-schema","title":"CrossContaminationAllergenWrite","data":{"type":"object","description":"controlledRisk is the only thing a caller decides about a\ncross-contamination entry, and this shape carries nothing else.\n\nThe sites an entry applies to are derived: a site declares which\nallergens it handles, and the entry lists the sites that handle this\none. They are rebuilt from the chapter's sites on every write to the\nsites section, while controlledRisk is kept.\n","properties":{"allergenId":{"type":"string","format":"uuid","description":"Must be one of the entries the chapter already carries (see\nAllergenDeclarationWrite for where they come from). An allergenId\nwith no entry is a 422 naming this entry - there is nothing to\nqualify.\n"},"controlledRisk":{"type":"boolean","nullable":true}},"required":["allergenId"],"additionalProperties":false}},"components/schemas/FreeFromAllergenWrite":{"id":"components/schemas/FreeFromAllergenWrite","kind":"json-schema","title":"FreeFromAllergenWrite","data":{"type":"object","properties":{"allergenId":{"type":"string","format":"uuid","description":"Must be one of the allergens the composite left free-from."},"proofFileId":{"type":"string","format":"uuid","nullable":true}},"required":["allergenId"],"additionalProperties":false}},"components/schemas/LabellingClaimRead":{"id":"components/schemas/LabellingClaimRead","kind":"json-schema","title":"LabellingClaimRead","data":{"type":"object","description":"A claim carried by the labelling chapter, with its origin.\n","properties":{"claimId":{"type":"string","format":"uuid"},"claimType":{"type":"string","enum":["Marketing","Health","Nutrition"]},"claimText":{"type":"string","nullable":true,"readOnly":true,"description":"The claim's sentence in the specification's language, copied from\nthe library item (placeholders filled in for marketing claims).\n"},"automaticallyAdded":{"type":"boolean","readOnly":true,"description":"True when the platform added this claim from questionnaire\nanswers. Such a claim is server-managed: it is not part of the\ncaller's replace scope, and sending it back in a write neither\nadopts it nor removes it (see LabellingClaimWrite).\n"}},"required":["claimId","claimType","automaticallyAdded"],"additionalProperties":false}},"components/schemas/LabellingClaimWrite":{"id":"components/schemas/LabellingClaimWrite","kind":"json-schema","title":"LabellingClaimWrite","data":{"type":"object","description":"A manual claim to carry on the labelling chapter, by reference.\n\nclaimText is NOT accepted: the chapter copies the sentence from the\nlibrary item, and a caller-supplied one would be silently overwritten.\nIt is returned on the read side.\n","properties":{"claimId":{"type":"string","format":"uuid","description":"A claim of your company's library, a claim shared with it, or a\nsystem-provided one.\n"},"claimType":{"type":"string","enum":["Marketing","Health","Nutrition"],"description":"The library item's own type. The chapter keeps claims in three\ntyped lists, so the write has to say which list the id joins.\n\nThe caller states the type; the platform does not infer it from\nthe id.\n\nA wrong type is not silently accepted: the id is then absent from\nthat type's library, and the write is refused with the same answer\nan unknown id gets.\n"}},"required":["claimId","claimType"],"additionalProperties":false}},"components/schemas/FoodTestingChapter":{"id":"components/schemas/FoodTestingChapter","kind":"json-schema","title":"FoodTestingChapter","data":{"type":"object","description":"Read shape of the testing chapter, at its own library address and in\na specification. Its content is what FoodTestingChapterWrite writes,\nunder the same names and shapes, so a read can be sent back as a PUT.\n","properties":{"chapterId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The library chapter this content belongs to."},"name":{"type":"string","description":"Library display name of the chapter, as written on its create or replace."},"characteristics":{"type":"array","items":{"$ref":"#/components/schemas/Characteristic"},"nullable":true,"description":"The characteristics table, in table order. A characteristic with\nno photos reads with empty acceptedPhotoFileIds and\nrejectedPhotoFileIds lists.\n"},"controlPlans":{"type":"array","items":{"$ref":"#/components/schemas/ControlPlan"},"nullable":true,"description":"The control plans table, one row per controlled characteristic, in\nthe order of the characteristics table.\n"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/Requirement"},"nullable":true,"readOnly":true,"description":"Requirements attached to this chapter by the specification. A\nspecification-level value: null when the chapter is read at its\nlibrary address.\n"},"documents":{"type":"object","allOf":[{"$ref":"#/components/schemas/DocumentSection"}],"nullable":true,"readOnly":true,"description":"Documents attached to this chapter by the specification. A\nspecification-level value: null when the chapter is read at its\nlibrary address.\n"}},"additionalProperties":false}},"components/schemas/Characteristic":{"id":"components/schemas/Characteristic","kind":"json-schema","title":"Characteristic","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One row of the characteristics table. Targets and tolerances are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"strings, not numbers - they carry things like"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"4.0 - 4.5\" and \"< 10 ppm\" - with an optional numeric quantity and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"unit alongside for the cases that are measurable."},"children":[]}]}]}],"properties":{"characteristicId":{"type":"string","format":"uuid","description":"Row identity. Server-assigned when omitted; send it back to update\nthat row, omit it to add one. A characteristic that a control plan\nrefers to must carry one.\n"},"libraryCharacteristicId":{"type":"string","format":"uuid","nullable":true,"description":"The library characteristic this row was taken from, when it was."},"typeId":{"type":"string","format":"uuid","nullable":true,"description":"Reference list \"characteristic type\". Required."},"name":{"type":"string","nullable":true,"maxLength":2000,"example":"pH level"},"controlPhaseId":{"type":"string","format":"uuid","nullable":true,"description":"Reference list \"control phase\"."},"method":{"type":"string","nullable":true},"frequency":{"type":"string","nullable":true,"example":"Every batch"},"legalCriteria":{"type":"string","nullable":true},"target":{"type":"string","nullable":true,"example":"4.0 - 4.5"},"tolerance":{"type":"string","nullable":true},"lowerTarget":{"type":"string","nullable":true},"upperTarget":{"type":"string","nullable":true},"lowerTolerance":{"type":"string","nullable":true},"upperTolerance":{"type":"string","nullable":true},"precision":{"type":"string","nullable":true},"nonConformity":{"type":"string","nullable":true},"quantity":{"type":"number","format":"double","nullable":true,"multipleOf":0.001,"minimum":0},"unitOfMeasureId":{"type":"string","format":"uuid","nullable":true,"description":"Reference list \"unit of measure\"."},"acceptedPhotoFileIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":"Files of type \"characteristic photo\". Replaces the row's list in\nfull; null or absent leaves it unchanged.\n"},"rejectedPhotoFileIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":"Same rule as acceptedPhotoFileIds."},"hasControlPlans":{"type":"boolean","readOnly":true,"description":"Whether the characteristic is marked as controlled: true when it is\nlisted in controlPlans. A control plan row exists for it only when\nit also carries a controlPhaseId.\n"}},"additionalProperties":false}},"components/schemas/ControlPlan":{"id":"components/schemas/ControlPlan","kind":"json-schema","title":"ControlPlan","data":{"type":"object","description":"One row of the control plans table, one per controlled\ncharacteristic. A row exists when the characteristic is listed in\ncontrolPlans and carries a controlPhaseId. Its identity, library\nreference, type, name, control phase, target and tolerance are copied\nfrom the characteristic and are read-only here; send them on the\ncharacteristic.\n","properties":{"controlPlanId":{"type":"string","format":"uuid","readOnly":true,"description":"Row identity, assigned by the server."},"characteristicId":{"type":"string","format":"uuid","description":"The characteristics-table row this plan controls."},"libraryCharacteristicId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the characteristic."},"characteristicTypeId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the characteristic. Reference list \"characteristic type\"."},"characteristicName":{"type":"string","nullable":true,"readOnly":true,"description":"Copied from the characteristic."},"controlPhaseId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the characteristic. Reference list \"control phase\"."},"controlType":{"type":"string","nullable":true},"method":{"type":"string","nullable":true},"madeBy":{"type":"string","nullable":true,"description":"Who performs the control. Free text, not an enum.\n"},"frequency":{"type":"string","nullable":true,"example":"Every batch"},"batchLotSize":{"type":"string","nullable":true},"sampleSize":{"type":"string","nullable":true},"target":{"type":"string","nullable":true,"readOnly":true,"description":"Copied from the characteristic."},"tolerance":{"type":"string","nullable":true,"readOnly":true,"description":"Copied from the characteristic."},"criticity":{"type":"string","nullable":true},"precision":{"type":"string","nullable":true},"release":{"type":"boolean"},"registered":{"type":"boolean"}},"required":["characteristicId"],"additionalProperties":false}},"components/schemas/FoodFinishedProductChapter":{"id":"components/schemas/FoodFinishedProductChapter","kind":"json-schema","title":"FoodFinishedProductChapter","data":{"type":"object","description":"Read shape of the finished product chapter, at its own library\naddress and in a specification. Its content is what\nFoodFinishedProductChapterWrite writes, under the same names and\nshapes, so a read can be sent back as a PUT. Every section is\nreturned; a section never written reads with null members and empty\nlists.\n","properties":{"chapterId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The library chapter this content belongs to."},"name":{"type":"string","description":"Library display name of the chapter, as written on its create or replace."},"productPhotos":{"$ref":"#/components/schemas/ProductPhotos"},"shelfLife":{"$ref":"#/components/schemas/FinishedProductShelfLife"},"consumerShelfLife":{"$ref":"#/components/schemas/FinishedProductConsumerShelfLife"},"storageConditions":{"type":"array","items":{"$ref":"#/components/schemas/StorageCondition"},"nullable":true},"preservationMethodIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":"PreservationMethod reference list."},"traceability":{"allOf":[{"$ref":"#/components/schemas/Traceability"}],"description":"sampleStorage is present exactly when sample storage is accepted\nand absent otherwise, never null - the same rule as on the write,\nso sending the read back keeps the acceptance as it is. Accepted\nwith no conditions entered, it reads as an object whose members\nare null.\n"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/Requirement"},"nullable":true,"readOnly":true,"description":"Requirements attached to this chapter by the specification. A\nspecification-level value: null when the chapter is read at its\nlibrary address.\n"},"documents":{"type":"object","allOf":[{"$ref":"#/components/schemas/DocumentSection"}],"nullable":true,"readOnly":true,"description":"Documents attached to this chapter by the specification. A\nspecification-level value: null when the chapter is read at its\nlibrary address.\n"}},"additionalProperties":false}},"components/schemas/ProductPhotos":{"id":"components/schemas/ProductPhotos","kind":"json-schema","title":"ProductPhotos","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The product photos of the finished product chapter. Three separate lists"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"of file ids - packaged, sectioned, unpackaged - the category is the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"list an id is in, not a property of the photo. There is no per-photo name or description"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"to write: the file name comes from the file itself."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Each list replaces the stored one in full; null or absent leaves that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"list unchanged, [] clears it. Every id must be a file of type"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"\"product picture\" owned by your company."},"children":[]}]}]}],"properties":{"packaged":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"sectioned":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"unpackaged":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false}},"components/schemas/StorageCondition":{"id":"components/schemas/StorageCondition","kind":"json-schema","title":"StorageCondition","data":{"type":"object","description":"One row of the storage-condition list, keyed by conditionId - the\nstorage CONTEXT the row is about. Each row carries its own temperature, humidity and\nlight rule. Replaced in full at the chapter level, keyed on conditionId.\n","required":["conditionId"],"properties":{"conditionId":{"type":"string","format":"uuid","description":"Row identity, and the context itself: StorageConditionContext\nreference list. An unknown id is refused by the platform's list\nrule with a 422 naming the section.\n"},"storageId":{"type":"string","format":"uuid","nullable":true,"description":"StorageConditionTemperature reference list."},"temperature":{"type":"object","nullable":true,"properties":{"unitId":{"type":"string","format":"uuid","nullable":true,"description":"UnitOfMeasure reference list, International System temperature units."},"minimumValue":{"type":"number","nullable":true,"multipleOf":0.1},"maximumValue":{"type":"number","nullable":true,"multipleOf":0.1,"description":"Must be greater than minimumValue."}},"additionalProperties":false},"humidity":{"type":"object","nullable":true,"description":"Relative humidity, in percent.","properties":{"minimumValue":{"type":"integer","nullable":true,"minimum":0,"maximum":100},"maximumValue":{"type":"integer","nullable":true,"minimum":0,"maximum":100,"description":"Must be greater than minimumValue."}},"additionalProperties":false},"keepAwayFromLight":{"type":"boolean","nullable":true}},"additionalProperties":false}},"components/schemas/FinishedProductShelfLife":{"id":"components/schemas/FinishedProductShelfLife","kind":"json-schema","title":"FinishedProductShelfLife","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section shelf_life, first block. This chapter is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"where shelf life is DECLARED; the labelling chapter's copy of it is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"derived. The five durations are independent: the guaranteed shelf life"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"of the product, and how long it keeps at each stage."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"guaranteedShelfLife.duration exists only while indicationId is set -"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"clearing the id deletes the duration."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A payload carrying a duration with no indicationId is therefore refused"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"with a 422 naming guaranteedShelfLife.indicationId, rather than"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answering 200 having dropped it."},"children":[]}]}]}],"properties":{"guaranteedShelfLife":{"type":"object","nullable":true,"properties":{"indicationId":{"type":"string","format":"uuid","nullable":true,"description":"GuaranteedShelfLife reference list."},"duration":{"$ref":"#/components/schemas/ShelfLifeDuration"}},"additionalProperties":false},"production":{"$ref":"#/components/schemas/ShelfLifeDuration"},"packaging":{"$ref":"#/components/schemas/ShelfLifeDuration"},"shipping":{"$ref":"#/components/schemas/ShelfLifeDuration"},"delivery":{"$ref":"#/components/schemas/ShelfLifeDuration"},"protocolFileIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Files of type \"shelf life protocol\", uploaded through the document"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"API and referenced here by id. Replaces the list in full; null or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"absent leaves it unchanged, [] clears it."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/FinishedProductConsumerShelfLife":{"id":"components/schemas/FinishedProductConsumerShelfLife","kind":"json-schema","title":"FinishedProductConsumerShelfLife","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section shelf_life, second block - the shelf life as the consumer"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sees it."},"children":[]}]}]}],"properties":{"beforeOpeningIndicationId":{"type":"string","format":"uuid","nullable":true,"description":"ConsumerShelfLife reference list."},"afterOpening":{"type":"object","nullable":true,"properties":{"value":{"type":"integer","nullable":true,"minimum":0,"maximum":100},"unitId":{"type":"string","format":"uuid","nullable":true,"description":"UnitOfMeasure reference list, International System time units."}},"additionalProperties":false},"shelfLifeTesting":{"type":"boolean","nullable":true}},"additionalProperties":false}},"components/schemas/Traceability":{"id":"components/schemas/Traceability","kind":"json-schema","title":"Traceability","data":{"type":"object","description":"Section traceability: the batch/lot formatting, the batch size, the\nsample-storage policy and the procedure files.\n\nsampleStorage follows the materials' sample-storage rule: sending\nthe object turns sample-storage acceptance on,\nomitting it leaves the chapter with none. Turning acceptance off\ndeletes the block, so there is no\nacceptSampleStorage flag to write - the object's presence is the flag.\nIts shape is the materials' one without size and duration.\n","properties":{"batchLotNumberFormatting":{"type":"string","nullable":true,"maxLength":792},"productionBatchSize":{"type":"string","nullable":true,"maxLength":264},"samplesKeptPerBatch":{"type":"integer","nullable":true,"minimum":0,"maximum":1000},"sampleRetentionTime":{"type":"object","nullable":true,"properties":{"value":{"type":"integer","nullable":true,"minimum":0,"maximum":100},"unitId":{"type":"string","format":"uuid","nullable":true,"description":"UnitOfMeasure reference list, International System time units."}},"additionalProperties":false},"sampleStorage":{"$ref":"#/components/schemas/FinishedProductSampleStorageWrite"},"procedureFileIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Files of type \"traceability procedure\". Replaces the list in full;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"null or absent leaves it unchanged, [] clears it."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/SpecificationRequirement":{"id":"components/schemas/SpecificationRequirement","kind":"json-schema","title":"SpecificationRequirement","data":{"type":"object","readOnly":true,"description":"A requirement linked to the specification, one entry per chapter\nattachment. Grouping the entries by chapterType gives back the\ncreate's requirements member.\n","properties":{"chapterType":{"type":"string","description":"Template chapter code the requirement is attached to (same value as on the create)"},"requirementId":{"type":"string","format":"uuid","description":"The linked requirement version"},"name":{"type":"string","nullable":true},"requirementType":{"type":"string","enum":["Text","Document"]},"validated":{"type":"boolean","description":"True when the retailer has validated the requirement on this specification"},"status":{"type":"string","enum":["Draft","Published","Locked"],"description":"Library status of the requirement version"},"version":{"$ref":"#/components/schemas/ObjectVersion"},"ownerCompanyId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/ModificationRequest":{"id":"components/schemas/ModificationRequest","kind":"json-schema","title":"ModificationRequest","data":{"type":"object","readOnly":true,"properties":{"modificationRequestId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["Draft","InProgress","Performed","Declined","Completed","Archived"]},"statusReason":{"type":"string","enum":["ChapterUnlinked"],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Why the request reached its status, when the platform set it (ChapterUnlinked — the chapter was unlinked from the specification)"},"children":[]}]}]}]},"chapterType":{"type":"string","description":"Template chapter code the request targets"},"chapterId":{"type":"string","format":"uuid","nullable":true,"description":"The targeted library chapter version; null for a chapter that is not a library chapter"},"sectionName":{"type":"string","nullable":true,"description":"Display name of the targeted section, in the requested language"},"fieldName":{"type":"string","nullable":true,"description":"Display name of the targeted field (or document file name), in the requested language"},"message":{"type":"string","nullable":true},"ownerCompanyId":{"type":"string","format":"uuid","description":"Company that raised the request"},"createdByUserId":{"type":"string","format":"uuid"},"recipientCompanyId":{"type":"string","format":"uuid","description":"Company asked to perform the modification"},"createdDateUtc":{"type":"string","format":"date-time"},"lastUpdatedDateUtc":{"type":"string","format":"date-time"},"completedDateUtc":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}},"components/schemas/SpecificationHistoryPagedList":{"id":"components/schemas/SpecificationHistoryPagedList","kind":"json-schema","title":"SpecificationHistoryPagedList","data":{"type":"object","readOnly":true,"description":"Newest first. Paging counts change records: one record can produce\nseveral entries, so a page may hold more than pageSize entries and\ntotalCount counts records, not entries.\n","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEntry"}},"totalCount":{"type":"integer"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalPages":{"type":"integer"},"hasNextPage":{"type":"boolean"},"hasPreviousPage":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/HistoryEntry":{"id":"components/schemas/HistoryEntry","kind":"json-schema","title":"HistoryEntry","data":{"type":"object","readOnly":true,"description":"One change on the specification. Names and values are display text in the requested language.","properties":{"dateUtc":{"type":"string","format":"date-time"},"userId":{"type":"string","format":"uuid","description":"The user who made the change (from the CUMD public API)"},"chapterName":{"type":"string","nullable":true},"sectionName":{"type":"string","nullable":true},"fieldName":{"type":"string","nullable":true},"changeType":{"type":"string","enum":["Add","Update","Remove","Validation"],"description":"Add / Update / Remove of a field value or document; Validation of a section or requirement"},"oldValue":{"type":"string","nullable":true},"newValue":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/PackagingSpecification":{"id":"components/schemas/PackagingSpecification","kind":"json-schema","title":"PackagingSpecification","data":{"type":"object","description":"Packaging specification identity, status, version, contacts and\nchapter references. Every member the create accepts reads back here\nunder the same name, except the testing chapter (libraryLinkedChapters)\nand the packaging system (packaging).\n","properties":{"specificationId":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","nullable":true,"example":"Cardboard Box - Organic Cereal 500g"},"templateId":{"type":"string","format":"uuid"},"ownerCompanyId":{"type":"string","format":"uuid","readOnly":true},"ownerUserId":{"type":"string","format":"uuid","description":"The user of the owner company who owns the specification"},"supplierCompanyId":{"type":"string","format":"uuid"},"languageCode":{"type":"string","nullable":true,"example":"en-US"},"reasonForThisVersion":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/SpecificationStatus"},"sharedWithCompanyIds":{"type":"array","readOnly":true,"description":"Companies with access to the specification: the owner always,\nthe supplier once the specification has been shared (POST .../share).\n","items":{"type":"string","format":"uuid"}},"contacts":{"type":"array","readOnly":true,"description":"Contacts of both parties","items":{"$ref":"#/components/schemas/SpecificationPartyContact"}},"version":{"$ref":"#/components/schemas/ObjectVersion"},"creationDateUtc":{"type":"string","format":"date-time","readOnly":true},"lastUpdateDateUtc":{"type":"string","format":"date-time","readOnly":true},"signatures":{"type":"object","allOf":[{"$ref":"#/components/schemas/SpecificationSignatures"}],"nullable":true},"libraryLinkedChapters":{"type":"array","readOnly":true,"description":"Library chapters linked to the specification (empty when none)","items":{"$ref":"#/components/schemas/LinkedChapter"}},"packaging":{"type":"object","allOf":[{"$ref":"#/components/schemas/PackagingSystemReference"}],"nullable":true,"readOnly":true,"description":"The linked packaging system; null when none is linked"}}}},"components/schemas/PackagingSpecificationWithChapters":{"id":"components/schemas/PackagingSpecificationWithChapters","kind":"json-schema","title":"PackagingSpecificationWithChapters","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Packaging specification read with the chapter content "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" asked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for. Each chapter property is present only when included; a chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the specification does not have reads null. Each value is the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"shape as the matching chapter GET."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/PackagingSpecification"},{"type":"object","properties":{"generalChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/PackagingGeneralChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=general (or chapters). As PackagingSpecifications_GeneralChapter."},"children":[]}]}]}]},"attestationChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/PackagingAttestationChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=attestation (or chapters). As PackagingSpecifications_AttestationChapter."},"children":[]}]}]}]},"testingChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/PackagingTestingChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=testing (or chapters). As PackagingSpecifications_TestingChapter."},"children":[]}]}]}]},"packagingSystemChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/PackagingSystemChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=packagingSystem (or chapters). As PackagingSpecifications_PackagingSystemChapter."},"children":[]}]}]}]}}}]}},"components/schemas/PackagingGeneralChapterWrite":{"id":"components/schemas/PackagingGeneralChapterWrite","kind":"json-schema","title":"PackagingGeneralChapterWrite","data":{"type":"object","description":"Write shape of the packaging general chapter. Company ids, their\nsignatory contacts and the version number derive from the\nspecification identity and are read-only. What is writable: the\nversion information (versionInfo), each party's subsidiary and\nadditional contacts, and the custom fields. Same party\nrules as FoodGeneralChapterWrite: the retailer section is written by\nthe specification owner only (a supplier caller sending a value in\nit gets a 422 naming the field); the supplier section by either\nparty. A section that is null or absent keeps what it holds.\n","properties":{"versionInfo":{"$ref":"#/components/schemas/PackagingVersionWrite"},"retailer":{"$ref":"#/components/schemas/SpecificationPartyWrite"},"supplier":{"$ref":"#/components/schemas/SpecificationPartyWrite"},"customFields":{"$ref":"#/components/schemas/CustomFields"}},"additionalProperties":false}},"components/schemas/PackagingVersionWrite":{"id":"components/schemas/PackagingVersionWrite","kind":"json-schema","title":"PackagingVersionWrite","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section packaging_version. Either party may write it. Inside a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"supplied section, null clears a field."},"children":[]}]}]}],"properties":{"reasonForThisVersion":{"type":"string","nullable":true},"impactOnLabeling":{"type":"boolean","nullable":true}},"additionalProperties":false}},"components/schemas/PackagingAttestationChapterWrite":{"id":"components/schemas/PackagingAttestationChapterWrite","kind":"json-schema","title":"PackagingAttestationChapterWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Write shape of the attestation chapter. Full replace: a section that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is null or absent is cleared. Either party may write every section."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read-only, and therefore absent here: the environment supplier"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company (copied from the general chapter's supplier section) and the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ESC critical point."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"customFields keeps its own rule, not the full replace: null or absent"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"= not supplied, nothing changes (see CustomFields). The attestation"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter is not a library chapter, so a retailer template can place"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"custom components in it."},"children":[]}]}]}],"properties":{"extendedProducerResponsibility":{"$ref":"#/components/schemas/ExtendedProducerResponsibilityWrite"},"environment":{"$ref":"#/components/schemas/EnvironmentComplianceWrite"},"escStandards":{"$ref":"#/components/schemas/EscStandardsWrite"},"customFields":{"$ref":"#/components/schemas/CustomFields"}},"additionalProperties":false}},"components/schemas/ExtendedProducerResponsibilityWrite":{"id":"components/schemas/ExtendedProducerResponsibilityWrite","kind":"json-schema","title":"ExtendedProducerResponsibilityWrite","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section extended_producer_responsibility. supplierContributionText"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is kept only when supplierPaysContributionToEcoOrganization is true;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"otherwise it is cleared."},"children":[]}]}]}],"properties":{"supplierPaysContributionToEcoOrganization":{"type":"boolean","nullable":true},"supplierContributionText":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/EnvironmentComplianceWrite":{"id":"components/schemas/EnvironmentComplianceWrite","kind":"json-schema","title":"EnvironmentComplianceWrite","data":{"type":"object","nullable":true,"description":"Section environment.","properties":{"attestationOfCompliance":{"type":"boolean","nullable":true},"packagingComplianceCertification":{"type":"boolean","nullable":true}},"additionalProperties":false}},"components/schemas/EscStandardsWrite":{"id":"components/schemas/EscStandardsWrite","kind":"json-schema","title":"EscStandardsWrite","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section esc_standards. The critical point (read on EscStandards) is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"cleared when preventionByReductionAtSource is not true."},"children":[]}]}]}],"properties":{"reUsage":{"type":"boolean","nullable":true},"substanceRecycling":{"type":"boolean","nullable":true},"energyReProcessing":{"type":"boolean","nullable":true},"processingThroughCompostingAndBioDegradation":{"type":"boolean","nullable":true},"dangerousSubstances":{"type":"boolean","nullable":true},"heavyMetals":{"type":"boolean","nullable":true},"companyCanProvideDocuments":{"type":"boolean","nullable":true},"preventionByReductionAtSource":{"type":"boolean","nullable":true}},"additionalProperties":false}},"components/schemas/PackagingSystemReference":{"id":"components/schemas/PackagingSystemReference","kind":"json-schema","title":"PackagingSystemReference","data":{"type":"object","description":"Reference to an existing packaging system (Packaging application).","required":["packagingSystemId"],"properties":{"packagingSystemId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/PackagingGeneralChapter":{"id":"components/schemas/PackagingGeneralChapter","kind":"json-schema","title":"PackagingGeneralChapter","data":{"type":"object","description":"Read shape of the packaging general chapter, symmetric with\nPackagingGeneralChapterWrite: versionInfo holds what the write sends as\nversion; each party's subsidiaryCompanyId and additionalContacts are\nunder retailer / supplier, as written;\ncustomFields as written. A section the template disables is null.\n","properties":{"versionInfo":{"type":"object","allOf":[{"$ref":"#/components/schemas/VersionInfo"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section packaging_version (written as version). null when the template disables it."},"children":[]}]}]}]},"retailer":{"type":"object","allOf":[{"$ref":"#/components/schemas/SpecificationCompany"}],"nullable":true,"description":"Section retailer. null when the template disables it."},"supplier":{"type":"object","allOf":[{"$ref":"#/components/schemas/SpecificationCompany"}],"nullable":true,"description":"Section supplier. null when the template disables it."},"customFields":{"$ref":"#/components/schemas/CustomFields"},"questionnaires":{"type":"array","items":{"$ref":"#/components/schemas/Questionnaire"},"readOnly":true,"description":"Questionnaires attached to this chapter. Empty when there are none."},"documents":{"type":"object","allOf":[{"$ref":"#/components/schemas/DocumentSection"}],"nullable":true,"readOnly":true,"description":"Documents attached to this chapter. null when there are none."}},"additionalProperties":false}},"components/schemas/PackagingAttestationChapter":{"id":"components/schemas/PackagingAttestationChapter","kind":"json-schema","title":"PackagingAttestationChapter","data":{"type":"object","description":"Read shape of the attestation chapter, symmetric with\nPackagingAttestationChapterWrite (same section and field names). A\nsection the template disables is null; when the specification has no\nattestation chapter, every section is null.\n","properties":{"extendedProducerResponsibility":{"type":"object","allOf":[{"$ref":"#/components/schemas/ExtendedProducerResponsibility"}],"nullable":true},"environment":{"type":"object","allOf":[{"$ref":"#/components/schemas/EnvironmentCompliance"}],"nullable":true},"escStandards":{"type":"object","allOf":[{"$ref":"#/components/schemas/EscStandards"}],"nullable":true},"customFields":{"$ref":"#/components/schemas/CustomFields"},"questionnaires":{"type":"array","items":{"$ref":"#/components/schemas/Questionnaire"},"readOnly":true,"description":"Questionnaires attached to this chapter. Empty when there are none."},"documents":{"type":"object","allOf":[{"$ref":"#/components/schemas/DocumentSection"}],"nullable":true,"readOnly":true,"description":"Documents attached to this chapter. null when there are none."}},"additionalProperties":false}},"components/schemas/ExtendedProducerResponsibility":{"id":"components/schemas/ExtendedProducerResponsibility","kind":"json-schema","title":"ExtendedProducerResponsibility","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section extended_producer_responsibility."},"children":[]}]}]}],"properties":{"supplierPaysContributionToEcoOrganization":{"type":"boolean","nullable":true},"supplierContributionText":{"type":"string","nullable":true,"description":"null unless supplierPaysContributionToEcoOrganization is true."},"validations":{"type":"array","items":{"$ref":"#/components/schemas/ValidationInfo"},"readOnly":true,"description":"Validations of this section. A caller that is not the\nspecification owner sees only the owner's validations and its own.\n"}},"additionalProperties":false}},"components/schemas/EnvironmentCompliance":{"id":"components/schemas/EnvironmentCompliance","kind":"json-schema","title":"EnvironmentCompliance","data":{"type":"object","description":"Section environment.","properties":{"attestationOfCompliance":{"type":"boolean","nullable":true},"packagingComplianceCertification":{"type":"boolean","nullable":true},"supplierCompanyId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The supplier company, taken from the general chapter's supplier section. Not writable."},"supplierSubsidiaryCompanyId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The supplier subsidiary, taken from the general chapter's supplier section. Not writable."},"validations":{"type":"array","items":{"$ref":"#/components/schemas/ValidationInfo"},"readOnly":true,"description":"Validations of this section. A caller that is not the\nspecification owner sees only the owner's validations and its own.\n"}},"additionalProperties":false}},"components/schemas/EscStandards":{"id":"components/schemas/EscStandards","kind":"json-schema","title":"EscStandards","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section esc_standards."},"children":[]}]}]}],"properties":{"reUsage":{"type":"boolean","nullable":true},"substanceRecycling":{"type":"boolean","nullable":true},"energyReProcessing":{"type":"boolean","nullable":true},"processingThroughCompostingAndBioDegradation":{"type":"boolean","nullable":true},"dangerousSubstances":{"type":"boolean","nullable":true},"heavyMetals":{"type":"boolean","nullable":true},"companyCanProvideDocuments":{"type":"boolean","nullable":true},"preventionByReductionAtSource":{"type":"boolean","nullable":true},"criticalPointCode":{"type":"string","nullable":true,"readOnly":true,"description":"The critical point code. Not writable through this API. null when\npreventionByReductionAtSource is not true, and cleared when it\nstops being true.\n"},"validations":{"type":"array","items":{"$ref":"#/components/schemas/ValidationInfo"},"readOnly":true,"description":"Validations of this section. A caller that is not the\nspecification owner sees only the owner's validations and its own.\n"}},"additionalProperties":false}},"components/schemas/PackagingTestingChapter":{"id":"components/schemas/PackagingTestingChapter","kind":"json-schema","title":"PackagingTestingChapter","data":{"type":"object","description":"Testing chapter of a packaging specification. The testing chapter is\none template across food and packaging: characteristics and control\nplans read in the shapes FoodTestingChapterWrite writes them, the\nsame as FoodTestingChapter. When no testing chapter is linked,\nchapterId, name, characteristics and controlPlans are null.\n","properties":{"chapterId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The library chapter linked to this specification."},"name":{"type":"string","nullable":true,"description":"Library display name of the chapter, as written on its create or replace."},"characteristics":{"type":"array","items":{"$ref":"#/components/schemas/Characteristic"},"nullable":true,"description":"The characteristics table, in table order. A characteristic with\nno photos reads with empty acceptedPhotoFileIds and\nrejectedPhotoFileIds lists.\n"},"controlPlans":{"type":"array","items":{"$ref":"#/components/schemas/ControlPlan"},"nullable":true,"description":"The control plans table, one row per controlled characteristic, in\nthe order of the characteristics table.\n"},"questionnaires":{"type":"array","items":{"$ref":"#/components/schemas/Questionnaire"},"nullable":true,"readOnly":true},"documents":{"type":"object","allOf":[{"$ref":"#/components/schemas/DocumentSection"}],"nullable":true,"readOnly":true,"description":"Documents attached to this chapter by the specification."}},"additionalProperties":false}},"components/schemas/Questionnaire":{"id":"components/schemas/Questionnaire","kind":"json-schema","title":"Questionnaire","data":{"type":"object","properties":{"questionnaireId":{"type":"string","format":"uuid","readOnly":true}},"additionalProperties":false}},"components/schemas/PackagingSystemChapter":{"id":"components/schemas/PackagingSystemChapter","kind":"json-schema","title":"PackagingSystemChapter","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The packaging system linked to the specification. Every field is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"read-only: the system is attached with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PackagingSpecifications_LinkPackagingSystem and its content lives in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Packaging application. When no system is linked, packagingSystemId"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is null and sections is empty."},"children":[]}]}]}],"properties":{"packagingSystemId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"The linked packaging system (Packaging application)."},"name":{"type":"string","nullable":true,"readOnly":true,"description":"null when the Packaging application does not return the system."},"ownerCompanyId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"null when the Packaging application does not return the system."},"sections":{"type":"array","items":{"$ref":"#/components/schemas/PackagingSystemSection"},"readOnly":true},"questionnaires":{"type":"array","items":{"$ref":"#/components/schemas/PackagingSystemQuestionnaire"},"readOnly":true,"description":"Questionnaires attached to this chapter. Empty when there are none."},"documents":{"type":"object","allOf":[{"$ref":"#/components/schemas/DocumentSection"}],"nullable":true,"readOnly":true,"description":"Documents attached to this chapter. null when there are none."}},"additionalProperties":false}},"components/schemas/PackagingSystemSection":{"id":"components/schemas/PackagingSystemSection","kind":"json-schema","title":"PackagingSystemSection","data":{"type":"object","properties":{"sectionId":{"type":"string","format":"uuid","readOnly":true},"validations":{"type":"array","items":{"$ref":"#/components/schemas/ValidationInfo"},"readOnly":true,"description":"Validations of this section of the packaging system, as the Packaging application reports them."}},"additionalProperties":false}},"components/schemas/PackagingSystemQuestionnaire":{"id":"components/schemas/PackagingSystemQuestionnaire","kind":"json-schema","title":"PackagingSystemQuestionnaire","data":{"type":"object","properties":{"questionnaireId":{"type":"string","format":"uuid"},"packagingComponentId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}},"components/schemas/ValidationInfo":{"id":"components/schemas/ValidationInfo","kind":"json-schema","title":"ValidationInfo","data":{"type":"object","properties":{"companyId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid","nullable":true},"validatedOnUtc":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}},"components/schemas/MaterialCreateBase":{"id":"components/schemas/MaterialCreateBase","kind":"json-schema","title":"MaterialCreateBase","data":{"type":"object","description":"What every material type stores. commercialName is NOT here: additives and processing\naids have no commercial name, so the four types that do declare it themselves.\n","required":["name"],"properties":{"name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique per owning company (422 on duplicate, errorCode NAME_ALREADY_USED)"},"children":[]}]}]}]},"internalCode":{"type":"string","nullable":true}}}},"components/schemas/MaterialAllergensWrite":{"id":"components/schemas/MaterialAllergensWrite","kind":"json-schema","title":"MaterialAllergensWrite","data":{"type":"object","properties":{"present":{"type":"array","items":{"type":"string","format":"uuid"}},"unintentionallyPresent":{"type":"array","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/MaterialCharacteristicWrite":{"id":"components/schemas/MaterialCharacteristicWrite","kind":"json-schema","title":"MaterialCharacteristicWrite","data":{"type":"object","required":["name"],"properties":{"characteristicId":{"type":"string","format":"uuid","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Row identity, chosen by the caller. Only needed when a control plan"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"points at this row (controlPlans[].characteristicId); the same id"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"twice in the list is a 422 naming characteristics."},"children":[]}]}]}]},"libraryCharacteristicId":{"type":"string","format":"uuid","nullable":true,"description":"The catalogue characteristic this row is taken from; name stays\nthe row's own label. An unknown id, or one that does not fit the\nrow's typeId, is a 422 naming characteristics.\n"},"name":{"type":"string"},"typeId":{"type":"string","format":"uuid","nullable":true},"unitOfMeasureId":{"type":"string","format":"uuid","nullable":true},"quantity":{"type":"number","format":"double","nullable":true,"multipleOf":0.001,"minimum":0},"target":{"type":"number","nullable":true},"lowerTarget":{"type":"number","nullable":true},"upperTarget":{"type":"number","nullable":true},"tolerance":{"type":"number","nullable":true},"lowerTolerance":{"type":"number","nullable":true},"upperTolerance":{"type":"number","nullable":true},"precision":{"type":"number","nullable":true},"nonConformity":{"type":"string","nullable":true},"method":{"type":"string","nullable":true},"frequency":{"type":"string","nullable":true,"example":"Hourly"},"legalCriteria":{"type":"string","nullable":true},"controlPhaseId":{"type":"string","format":"uuid","nullable":true},"acceptedPhotoFileIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"Files of type \"characteristic photo\"."},"rejectedPhotoFileIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"Same rule as acceptedPhotoFileIds."}},"additionalProperties":false}},"components/schemas/MaterialControlPlanWrite":{"id":"components/schemas/MaterialControlPlanWrite","kind":"json-schema","title":"MaterialControlPlanWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One row of the material's control plans table. It controls the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"characteristic whose characteristicId it names. Type, name, control"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"phase, target and tolerance come from the characteristic and are not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sent here."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refused before anything is written:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a characteristicId that matches no characteristic in the same"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"request: 422 naming controlPlans;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"two control plans for the same characteristicId: 422 naming"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"controlPlans;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a control plan whose characteristic carries no controlPhaseId:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"422 naming characteristics."},"children":[]}]}]}]}],"required":["characteristicId"],"properties":{"characteristicId":{"type":"string","format":"uuid"},"controlType":{"type":"string","nullable":true},"method":{"type":"string","nullable":true},"madeBy":{"type":"string","nullable":true,"description":"Who performs the control. Free text, not an enum."},"frequency":{"type":"string","nullable":true,"example":"Every batch"},"batchLotSize":{"type":"string","nullable":true},"sampleSize":{"type":"string","nullable":true},"criticity":{"type":"string","nullable":true},"precision":{"type":"string","nullable":true},"release":{"type":"boolean","nullable":true},"registered":{"type":"boolean","nullable":true}},"additionalProperties":false}},"components/schemas/MaterialAttachmentFileIds":{"id":"components/schemas/MaterialAttachmentFileIds","kind":"json-schema","title":"MaterialAttachmentFileIds","data":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"Files uploaded through the document API and referenced here by id.\nEach must be owned by your company and be of type\n\"material-technical-datasheet\" (shown as Technical data sheet) or the\ndefault material type (shown as Other documents); anything else is a\n422 naming the field.\n"}},"components/schemas/MaterialCertificateIds":{"id":"components/schemas/MaterialCertificateIds","kind":"json-schema","title":"MaterialCertificateIds","data":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"Existing certificates, by id. An unknown id is a 422 naming the field.\n"}},"components/schemas/MaterialSupplierWrite":{"id":"components/schemas/MaterialSupplierWrite","kind":"json-schema","title":"MaterialSupplierWrite","data":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"internalCode":{"type":"string","nullable":true},"origins":{"type":"array","nullable":true,"items":{"type":"object","description":"One origin. The origin type decides which fields apply: a land-based type takes marketId, countryId, regionId and zoneId; a water-based type takes fishingZoneIds and fishingGearIds.\nRefused with a 422 naming suppliers: a field of the other kind; a regionId or zoneId without countryId; a zoneId without regionId; a country outside the market, or a region or zone outside the country (or the zone outside the region).\nCompleteness is checked when the material is locked, not on the create: a land-based origin needs marketId or countryId, and a water-based origin at least one fishingZoneId, before the material can be locked. The create accepts and publishes the material without them.","required":["originTypeId"],"properties":{"originTypeId":{"type":"string","format":"uuid","description":"Catalogue origin-type id. An unknown id is a 422 naming the field."},"marketId":{"type":"string","format":"uuid","nullable":true},"countryId":{"type":"string","format":"uuid","nullable":true},"regionId":{"type":"string","format":"uuid","nullable":true},"zoneId":{"type":"string","format":"uuid","nullable":true},"fishingZoneIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"FishingZones list"},"fishingGearIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"FishingGears list"}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/MaterialSampleStorageWrite":{"id":"components/schemas/MaterialSampleStorageWrite","kind":"json-schema","title":"MaterialSampleStorageWrite","data":{"type":"object","description":"Sample storage conditions. Sending the object turns sample storage acceptance on for\nthe material; omitting it leaves the material with no sample storage.\n\nHumidity and temperature do not have the same precision, and the difference is the\ndomain's: SampleStorage.Humidity is a NumericRange of precision 0 and its temperature\na NumericRange of precision 1. So humidity is whole percents and temperature goes to a tenth,\nand both are stated here rather than left to be discovered against a 422.\n","properties":{"storageConditionTemperatureId":{"type":"string","format":"uuid","nullable":true},"temperatureUnitOfMeasureId":{"type":"string","format":"uuid","nullable":true},"minimumTemperature":{"type":"number","nullable":true,"multipleOf":0.1,"description":"One decimal place; more is refused."},"maximumTemperature":{"type":"number","nullable":true,"multipleOf":0.1,"description":"One decimal place; more is refused. Must be greater than minimumTemperature."},"minimumHumidity":{"type":"integer","nullable":true,"minimum":0,"maximum":100,"description":"Relative humidity of the storage conditions, in whole percents;\ndecimals are refused.\n"},"maximumHumidity":{"type":"integer","nullable":true,"minimum":0,"maximum":100,"description":"Relative humidity of the storage conditions, in whole percents. Must be greater\nthan minimumHumidity.\n"},"keepAwayFromLight":{"type":"boolean","nullable":true,"description":"Whether the samples must be kept away from light."},"size":{"type":"string","nullable":true,"maxLength":512},"duration":{"type":"string","nullable":true,"maxLength":512}},"additionalProperties":false}},"components/schemas/FinishedProductSampleStorageWrite":{"id":"components/schemas/FinishedProductSampleStorageWrite","kind":"json-schema","title":"FinishedProductSampleStorageWrite","data":{"type":"object","description":"Sample storage conditions of the finished-product chapter's traceability section:\nthe fields of MaterialSampleStorageWrite without size and duration. Humidity is\nwhole percents and temperature goes to a tenth.\n","properties":{"storageConditionTemperatureId":{"type":"string","format":"uuid","nullable":true},"temperatureUnitOfMeasureId":{"type":"string","format":"uuid","nullable":true},"minimumTemperature":{"type":"number","nullable":true,"multipleOf":0.1,"description":"One decimal place; more is refused."},"maximumTemperature":{"type":"number","nullable":true,"multipleOf":0.1,"description":"One decimal place; more is refused. Must be greater than minimumTemperature."},"minimumHumidity":{"type":"integer","nullable":true,"minimum":0,"maximum":100,"description":"Relative humidity of the storage conditions, in whole percents;\ndecimals are refused.\n"},"maximumHumidity":{"type":"integer","nullable":true,"minimum":0,"maximum":100,"description":"Relative humidity of the storage conditions, in whole percents. Must be greater\nthan minimumHumidity.\n"},"keepAwayFromLight":{"type":"boolean","nullable":true,"description":"Whether the samples must be kept away from light."}},"additionalProperties":false}},"components/schemas/MaterialIngredientWrite":{"id":"components/schemas/MaterialIngredientWrite","kind":"json-schema","title":"MaterialIngredientWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One ingredient of a MADE-IN-HOUSE composite's recipe: a reference to an"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"existing material (leaf-first import order), and how much of it there is."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Also the ingredient shape of a production chapter's recipe (RecipeWrite),"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"whose own composite is made-in-house."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"percentage was missing and is the field that matters: Recipe.Validate()"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sums the percentage VALUES of the ingredients under each parent and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"requires 100. With only a min and a max, every recipe created through"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"this API sat at 0% and could never pass material validation - published,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"but never validatable. minPercentage and maxPercentage are the tolerance"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"around it, not a substitute for it."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A bought composite does NOT use this shape: its ingredients are declared"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"by name, not referenced. See BoughtCompositeIngredientWrite."},"children":[]}]}]}],"required":["materialId"],"properties":{"materialId":{"type":"string","format":"uuid"},"percentage":{"type":"number","nullable":true,"multipleOf":0.001,"minimum":0,"maximum":100,"description":"Share of the recipe, in percent. The ingredients under one parent\nmust total 100 for the composite to pass validation; the create\nitself does not refuse a recipe that does not (it publishes, and\nthe separate validate action reports the failure).\n"},"minPercentage":{"type":"number","nullable":true,"multipleOf":0.001,"minimum":0,"maximum":100},"maxPercentage":{"type":"number","nullable":true,"multipleOf":0.001,"minimum":0,"maximum":100},"functionId":{"type":"string","format":"uuid","nullable":true,"description":"Technological function of the ingredient in the recipe (reference list)."}},"additionalProperties":false}},"components/schemas/RawMaterialCreateRequest":{"id":"components/schemas/RawMaterialCreateRequest","kind":"json-schema","title":"RawMaterialCreateRequest","data":{"allOf":[{"$ref":"#/components/schemas/MaterialCreateBase"},{"type":"object","required":["commercialName"],"properties":{"commercialName":{"type":"string","description":"Required: the material is published on create, and a published\nmaterial carries a commercial name.\n"},"gmoStatus":{"type":"boolean","nullable":true},"ionizedStatus":{"type":"boolean","nullable":true},"classificationId":{"type":"string","format":"uuid","nullable":true},"materialStateCode":{"type":"string","nullable":true},"partId":{"type":"string","format":"uuid","nullable":true},"allergens":{"$ref":"#/components/schemas/MaterialAllergensWrite"},"characteristics":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialCharacteristicWrite"}},"suppliers":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialSupplierWrite"}},"sampleStorage":{"$ref":"#/components/schemas/MaterialSampleStorageWrite"},"controlPlans":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialControlPlanWrite"}},"certificateIds":{"$ref":"#/components/schemas/MaterialCertificateIds"},"attachmentFileIds":{"$ref":"#/components/schemas/MaterialAttachmentFileIds"}}}]}},"components/schemas/AdditiveCreateRequest":{"id":"components/schemas/AdditiveCreateRequest","kind":"json-schema","title":"AdditiveCreateRequest","data":{"allOf":[{"$ref":"#/components/schemas/MaterialCreateBase"},{"type":"object","properties":{"standardizedNameId":{"type":"string","format":"uuid","nullable":true},"allergens":{"$ref":"#/components/schemas/MaterialAllergensWrite"},"characteristics":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialCharacteristicWrite"}},"suppliers":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialSupplierWrite"}},"sampleStorage":{"$ref":"#/components/schemas/MaterialSampleStorageWrite"},"controlPlans":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialControlPlanWrite"}},"attachmentFileIds":{"$ref":"#/components/schemas/MaterialAttachmentFileIds"}}}]}},"components/schemas/ProcessingAidCreateRequest":{"id":"components/schemas/ProcessingAidCreateRequest","kind":"json-schema","title":"ProcessingAidCreateRequest","data":{"allOf":[{"$ref":"#/components/schemas/AdditiveCreateRequest"}]}},"components/schemas/FlavorCreateRequest":{"id":"components/schemas/FlavorCreateRequest","kind":"json-schema","title":"FlavorCreateRequest","data":{"allOf":[{"$ref":"#/components/schemas/MaterialCreateBase"},{"type":"object","required":["commercialName","flavorType"],"properties":{"commercialName":{"type":"string","description":"Required: the material is published on create, and a published\nmaterial carries a commercial name.\n"},"flavorType":{"type":"string","description":"Required: it is set once at creation and can never be changed afterwards,\nand flavour vs smoke flavouring is a distinct regulatory category.\n","enum":["flavor","smokeFlavor"]},"allergens":{"$ref":"#/components/schemas/MaterialAllergensWrite"},"characteristics":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialCharacteristicWrite"}},"suppliers":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialSupplierWrite"}},"sampleStorage":{"$ref":"#/components/schemas/MaterialSampleStorageWrite"},"controlPlans":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialControlPlanWrite"}},"certificateIds":{"$ref":"#/components/schemas/MaterialCertificateIds"},"attachmentFileIds":{"$ref":"#/components/schemas/MaterialAttachmentFileIds"}}}]}},"components/schemas/BoughtCompositeIngredientWrite":{"id":"components/schemas/BoughtCompositeIngredientWrite","kind":"json-schema","title":"BoughtCompositeIngredientWrite","data":{"type":"object","description":"One declared ingredient. What it carries besides the name depends on its\ntype, and a member that does not belong to the type is a 422 naming it:\n\n  rawMaterial    classificationId (required)\n  additive       substanceId (required), substanceFunctionId (required)\n  processingAid  substanceId (required), substanceFunctionId (optional)\n  flavor         flavorType (required)\n  composite      ingredients (its children)\n\nOnly a composite ingredient may carry children; children on anything\nelse is a 422 naming the entry.\n","required":["type","name"],"properties":{"type":{"type":"string","enum":["rawMaterial","additive","processingAid","flavor","composite"]},"name":{"type":"string","description":"Free text, as the supplier states it. This is the ingredient's\nidentity here - there is no library material behind it.\n"},"percentage":{"type":"number","nullable":true,"multipleOf":0.001,"minimum":0,"maximum":100,"description":"Share of the recipe, in percent. Same rule as a made composite's."},"classificationId":{"type":"string","format":"uuid","nullable":true,"description":"rawMaterial only, and required for it. Raw-material classification\n(Catalogue). An id that is not a raw-material classification is\nrefused.\n"},"substanceId":{"type":"string","format":"uuid","nullable":true,"description":"additive and processingAid only, required for both. Catalogue substance."},"substanceFunctionId":{"type":"string","format":"uuid","nullable":true,"description":"Technological function of the substance. Required for an\nadditive, optional for a processing aid.\n"},"flavorType":{"type":"string","enum":["flavor","smokeFlavor"],"nullable":true,"description":"flavor only, and required for it. Same two values as the flavor\nlibrary create: a smoke flavouring is a different subtype.\n"},"allergens":{"$ref":"#/components/schemas/IngredientAllergensWrite"},"ingredients":{"type":"array","nullable":true,"description":"composite only: the children of a sub-composite, same shape,\nnested to any depth.\n","items":{"$ref":"#/components/schemas/BoughtCompositeIngredientWrite"}}},"additionalProperties":false}},"components/schemas/IngredientAllergensWrite":{"id":"components/schemas/IngredientAllergensWrite","kind":"json-schema","title":"IngredientAllergensWrite","data":{"type":"object","description":"The allergens this ingredient brings, and how. Both lists hold allergen\nids that must also appear in the composite's allergenIds - an id used here and\nnot declared there is a 422 naming this entry. An \"inherited\" flag\nper ingredient declaration, set when a sub-composite brings the\nallergen up, is derived and absent from this shape.\n","properties":{"present":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}},"unintentionallyPresent":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/BoughtCompositeCreateRequest":{"id":"components/schemas/BoughtCompositeCreateRequest","kind":"json-schema","title":"BoughtCompositeCreateRequest","data":{"allOf":[{"$ref":"#/components/schemas/MaterialCreateBase"},{"type":"object","required":["commercialName"],"properties":{"commercialName":{"type":"string","description":"Required: the material is published on create, and a published\nmaterial carries a commercial name.\n"},"derivedFromGmo":{"type":"boolean","nullable":true,"description":"Whether the composite is derived from GMO. It drives the GMO\nrisk analysis downstream when this composite is used in a recipe.\n"},"allergenIds":{"type":"array","nullable":true,"description":"The allergens the composite declares. An allergen may be\ndeclared here and attributed to no ingredient, but an\nallergen an\ningredient names must appear here.\n","items":{"type":"string","format":"uuid"}},"characteristics":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialCharacteristicWrite"}},"suppliers":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialSupplierWrite"}},"sampleStorage":{"$ref":"#/components/schemas/MaterialSampleStorageWrite"},"controlPlans":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialControlPlanWrite"}},"certificateIds":{"$ref":"#/components/schemas/MaterialCertificateIds"},"attachmentFileIds":{"$ref":"#/components/schemas/MaterialAttachmentFileIds"},"ingredients":{"type":"array","nullable":true,"description":"The declared recipe, as a tree. See BoughtCompositeIngredientWrite.","items":{"$ref":"#/components/schemas/BoughtCompositeIngredientWrite"}}}}]}},"components/schemas/MadeCompositeCreateRequest":{"id":"components/schemas/MadeCompositeCreateRequest","kind":"json-schema","title":"MadeCompositeCreateRequest","data":{"allOf":[{"$ref":"#/components/schemas/MaterialCreateBase"},{"type":"object","description":"In-house composite - name, recipe, sample storage, characteristics, control plans and attachments; allergens and origins derive from the recipe","required":["commercialName"],"properties":{"commercialName":{"type":"string","description":"Required: the material is published on create, and a published\nmaterial carries a commercial name.\n"},"sampleStorage":{"$ref":"#/components/schemas/MaterialSampleStorageWrite"},"characteristics":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialCharacteristicWrite"}},"controlPlans":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialControlPlanWrite"}},"attachmentFileIds":{"$ref":"#/components/schemas/MaterialAttachmentFileIds"},"ingredients":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/MaterialIngredientWrite"}}}}]}},"components/schemas/MaterialCreated":{"id":"components/schemas/MaterialCreated","kind":"json-schema","title":"MaterialCreated","data":{"type":"object","properties":{"materialId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/MaterialShareRequest":{"id":"components/schemas/MaterialShareRequest","kind":"json-schema","title":"MaterialShareRequest","data":{"type":"object","description":"Optional body. The owner company is always granted, with or without it.","properties":{"companyIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Companies to grant access to IN ADDITION to the owner company,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"which every share grants. Absent or empty = the owner only."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"All of them are granted or none is: an unknown id is refused"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"naming the field, and nothing is written before the refusal."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/LibraryChapterShareRequest":{"id":"components/schemas/LibraryChapterShareRequest","kind":"json-schema","title":"LibraryChapterShareRequest","data":{"type":"object","description":"Optional body. The owner company is always granted, with or without it.","properties":{"companyIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Companies to grant access to IN ADDITION to the owner company,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"which every share grants. Absent or empty = the owner only."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"All of them are granted or none is: an unknown id is refused"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"naming the field, and nothing is written before the refusal."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/QuestionnaireTemplateView":{"id":"components/schemas/QuestionnaireTemplateView","kind":"json-schema","title":"QuestionnaireTemplateView","data":{"type":"object","description":"Design-time view of a published questionnaire template (PS-created).\nDraft and archived templates are not returned.\n","properties":{"questionnaireTemplateId":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string"},"questionnaireType":{"type":"string","enum":["Specification","IngredientDeclarationTerm","PackagingComponent"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"What the instances are answered for — a specification, an ingredient declaration term, or a packaging component"},"children":[]}]}]}]},"chapterType":{"type":"string","enum":["general","production","conditioning","packaging","testing","finishedProduct","labelling"],"description":"The chapter the instances attach to when linked"},"languageCode":{"type":"string","description":"The template's language; question texts and option labels are in it when translated"},"questions":{"type":"array","description":"Every question, dependent questions included, in answers-schema order","items":{"$ref":"#/components/schemas/QuestionnaireQuestion"}}},"additionalProperties":false}},"components/schemas/QuestionnaireQuestion":{"id":"components/schemas/QuestionnaireQuestion","kind":"json-schema","title":"QuestionnaireQuestion","data":{"type":"object","properties":{"questionId":{"type":"string","format":"uuid","readOnly":true,"description":"Stable question identifier"},"code":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The key of this question in the answers document: a generated"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"name (question1, question2, …), stable for the published template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"but carrying no business meaning — map questions through"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questionId or text. A question that other questions depend on is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"stored with its dependants inside a condition object (see the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answers schema for the exact nesting)."},"children":[]}]}]}]},"text":{"type":"string","description":"The question label shown to the user"},"description":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Descriptive help text under the question — integrators use it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"as a mapping key (NPAS 236775)."},"children":[]}]}]}]},"valueType":{"type":"string","enum":["boolean","string","array"],"description":"Answer type: boolean for yes/no, string for free text or a single\noption code, array of option codes for multi-choice (the answers\nschema is the authoritative contract)\n"},"required":{"type":"boolean","description":"Must be answered for the questionnaire to validate. For a\ndependent question, only when it applies (see dependsOn).\n"},"options":{"type":"array","nullable":true,"description":"Allowed values for choice questions","items":{"$ref":"#/components/schemas/QuestionnaireQuestionOption"}},"dependsOn":{"type":"object","nullable":true,"description":"Set on a dependent question: it applies only when the parent\nquestion's answer is one of answers. null for a top-level question.\n","properties":{"questionId":{"type":"string","format":"uuid","description":"The parent question"},"answers":{"type":"array","description":"The parent answers (boolean or option code) that show this question","items":{"oneOf":[{"type":"boolean"},{"type":"string"}]}}},"additionalProperties":false}}}},"components/schemas/QuestionnaireQuestionOption":{"id":"components/schemas/QuestionnaireQuestionOption","kind":"json-schema","title":"QuestionnaireQuestionOption","data":{"type":"object","properties":{"code":{"type":"string","description":"The value stored in the answers document"},"label":{"type":"string","description":"Display label in the requested language"}},"additionalProperties":false}},"components/schemas/QuestionnaireQuestionWithAnswer":{"id":"components/schemas/QuestionnaireQuestionWithAnswer","kind":"json-schema","title":"QuestionnaireQuestionWithAnswer","data":{"allOf":[{"$ref":"#/components/schemas/QuestionnaireQuestion"},{"type":"object","properties":{"answer":{"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The current answer value, conforming to the template's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"answers schema (GET .../answers-schema): boolean for yes/no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questions, an option code for single-choice, an array of"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"option codes for multi-choice, a plain string for free"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"text. Null or absent = unanswered."},"children":[]}]}]}]}}}]}},"components/schemas/QuestionnaireView":{"id":"components/schemas/QuestionnaireView","kind":"json-schema","title":"QuestionnaireView","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A questionnaire instance with its questions and current answers."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returned by the instance GET and, as a list, by the spec-scoped"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"projection (GET .../specifications/{id}/questionnaires)."},"children":[]}]}]}],"properties":{"questionnaireId":{"type":"string","format":"uuid","readOnly":true},"questionnaireTemplateId":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"chapterType":{"type":"string","description":"Chapter placement, derived from the template: general,\nproduction, finishedProduct, labelling (packaging templates\nadd their own types)\n"},"languageCode":{"type":"string"},"isLocked":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"True once a linked specification entered signature — answers"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"can no longer be written"},"children":[]}]}]}]},"associatedMaterialId":{"type":"string","format":"uuid","nullable":true},"associatedPackagingComponentId":{"type":"string","format":"uuid","nullable":true},"questions":{"type":"array","items":{"$ref":"#/components/schemas/QuestionnaireQuestionWithAnswer"}}},"additionalProperties":false}},"components/schemas/QuestionnaireInstanceCreate":{"id":"components/schemas/QuestionnaireInstanceCreate","kind":"json-schema","title":"QuestionnaireInstanceCreate","data":{"type":"object","required":["questionnaireTemplateId"],"properties":{"questionnaireTemplateId":{"type":"string","format":"uuid"},"shareWithCompanyId":{"type":"string","format":"uuid","nullable":true,"description":"Grants this company sharing access to the instance at creation"}},"additionalProperties":false}},"components/schemas/QuestionnaireInstanceCreated":{"id":"components/schemas/QuestionnaireInstanceCreated","kind":"json-schema","title":"QuestionnaireInstanceCreated","data":{"type":"object","properties":{"questionnaireId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/QuestionnaireAnswers":{"id":"components/schemas/QuestionnaireAnswers","kind":"json-schema","title":"QuestionnaireAnswers","data":{"type":"object","description":"The answers document. Keys are question codes (generated names, see\nQuestionnaireQuestion.code), values are validated against the\ntemplate's answers schema (GET .../answers-schema).\n","additionalProperties":true}},"components/schemas/QuestionnaireReference":{"id":"components/schemas/QuestionnaireReference","kind":"json-schema","title":"QuestionnaireReference","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reference to an existing questionnaire instance. questionnaireId"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"must be the only property — chapter placement derives from the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questionnaire's template server-side."},"children":[]}]}]}],"required":["questionnaireId"],"properties":{"questionnaireId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/FoodSpecificationCreateRequest":{"id":"components/schemas/FoodSpecificationCreateRequest","kind":"json-schema","title":"FoodSpecificationCreateRequest","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Atomic create. Identity + folder placement + composition chapters"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(general/labelling) inline + ChapterReference slots for library"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapters created beforehand at their own /library/ address."},"children":[]}]}]}],"required":["tradeItemId","supplierId","templateId","languageCode"],"properties":{"ownerUserId":{"type":"string","format":"uuid","nullable":true,"description":"The user of your company who owns the specification and becomes its retailer contact.\nOptional when your credentials identify a user: that user is\ntaken, and a person may only name themselves (naming anyone else\nis a 403). Required when your credentials carry no user. The\ncompany always binds from your credentials, never from the\npayload.\n"},"tradeItemId":{"type":"string","format":"uuid"},"supplierId":{"type":"string","format":"uuid"},"templateId":{"type":"string","format":"uuid","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Your company's published specification template — communicated at onboarding"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"by Professional Services. It must be owned by your company, published and in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"its active version."},"children":[]}]}]}]},"languageCode":{"type":"string","example":"en-US"},"reasonForThisVersion":{"type":"string","nullable":true},"folderId":{"type":"string","format":"uuid","nullable":true,"description":"Placement at creation; move later via PUT .../folder"},"generalChapter":{"$ref":"#/components/schemas/FoodGeneralChapterWrite"},"labellingChapter":{"$ref":"#/components/schemas/FoodLabellingChapterWrite"},"productionChapter":{"$ref":"#/components/schemas/ChapterReference"},"testingChapter":{"$ref":"#/components/schemas/ChapterReference"},"finishedProductChapter":{"$ref":"#/components/schemas/ChapterReference"},"requirements":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"References to PRE-CREATED requirements (PS-owned library objects),"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"attached per chapter at creation — same containment rule as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter references. Changed afterwards with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodSpecifications_PutChapterRequirements. Duplicates: repeating an id within a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter type is tolerated (attached once); the same id under"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"two DIFFERENT chapter types rejects the whole create (422)."},"children":[]}]}]}],"items":{"type":"object","required":["chapterType","requirementIds"],"properties":{"chapterType":{"type":"string"},"requirementIds":{"type":"array","items":{"type":"string","format":"uuid"}}}}},"documents":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Files uploaded beforehand through the document API, attached per"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter at creation, by the same rules as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodSpecifications_PutChapterDocuments. Changed afterwards with that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"endpoint. Repeating an id within a chapter type is tolerated"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(attached once); the same id under two DIFFERENT chapter types"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"rejects the whole create (422)."},"children":[]}]}]}],"items":{"type":"object","required":["chapterType","fileIds"],"properties":{"chapterType":{"type":"string"},"fileIds":{"type":"array","items":{"type":"string","format":"uuid"}}}}},"questionnaires":{"type":"array","nullable":true,"description":"Not accepted: sending it is a 400, never a silent drop.\nQuestionnaires are attached automatically at creation, one\ninstance per published questionnaire template matching the\nspecification.\n","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/ChapterReference":{"id":"components/schemas/ChapterReference","kind":"json-schema","title":"ChapterReference","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reference to an existing library chapter. The specification links the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter's current ACTIVE version and shares that same document with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"every other linked specification: in-place content updates (the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"library PUT) are seen by all of them immediately. A NEW chapter"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"version does not propagate — a spec adopts it by explicit re-link"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(the .../link endpoints). The referenced chapter must be a PUBLISHED,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ACTIVE version owned by your company (422 otherwise). chapterId must"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be the ONLY property in the slot: \"link this chapter AND change it\" is two actions — this call does one."},"children":[]}]}]}],"required":["chapterId"],"properties":{"chapterId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/LibraryChapterCreated":{"id":"components/schemas/LibraryChapterCreated","kind":"json-schema","title":"LibraryChapterCreated","data":{"type":"object","description":"Result of a standalone library-chapter create: the chapter is\npublished and immediately referenceable from specification creates\nand link endpoints.\n","properties":{"chapterId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/FoodSpecificationCreated":{"id":"components/schemas/FoodSpecificationCreated","kind":"json-schema","title":"FoodSpecificationCreated","data":{"type":"object","description":"Result of the atomic create. Library chapter ids are already known to\nthe caller (chapters are created first at their /library/ address).\n","properties":{"specificationId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/PackagingSpecificationCreateRequest":{"id":"components/schemas/PackagingSpecificationCreateRequest","kind":"json-schema","title":"PackagingSpecificationCreateRequest","data":{"type":"object","description":"Atomic create for a packaging specification. Identity plus\nChapterReference slots for library items created beforehand. No tradeItemId,\nfolderId or requirements: packaging specifications refuse all three\n(400 on unknown members).\n","required":["name","supplierId","templateId","languageCode"],"properties":{"ownerUserId":{"type":"string","format":"uuid","nullable":true,"description":"The user of your company who owns the specification and becomes its retailer contact.\nOptional when your credentials identify a user: that user is\ntaken, and a person may only name themselves (naming anyone else\nis a 403). Required when your credentials carry no user. The\ncompany always binds from your credentials, never from the\npayload.\n"},"name":{"type":"string","description":"The specification name, chosen by the caller"},"supplierId":{"type":"string","format":"uuid"},"templateId":{"type":"string","format":"uuid","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Your company's published specification template — communicated at onboarding"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"by Professional Services. It must be owned by your company, published and in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"its active version."},"children":[]}]}]}]},"languageCode":{"type":"string","example":"en-US"},"reasonForThisVersion":{"type":"string","nullable":true},"testingChapter":{"$ref":"#/components/schemas/ChapterReference"},"packagingSystemChapter":{"allOf":[{"$ref":"#/components/schemas/ChapterReference"}],"description":"Reference to a packaging system. Not accepted yet: sending the\nmember is a 400, never a silent drop.\n"},"questionnaires":{"type":"array","nullable":true,"description":"Not accepted: sending it is a 400, never a silent drop.\nQuestionnaires are attached automatically at creation, one\ninstance per matching published template.\n","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/PackagingSpecificationCreated":{"id":"components/schemas/PackagingSpecificationCreated","kind":"json-schema","title":"PackagingSpecificationCreated","data":{"type":"object","description":"Result of the atomic create.","properties":{"specificationId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/FoodSpecificationWithChapters":{"id":"components/schemas/FoodSpecificationWithChapters","kind":"json-schema","title":"FoodSpecificationWithChapters","data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Food specification read with the content "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"include"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" asked for. Each"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"content property is present only when included; a chapter the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification does not have reads null. Each value is the same shape"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"as the matching GET."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/FoodSpecification"},{"type":"object","properties":{"generalChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/FoodGeneralChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=general (or chapters). As FoodSpecifications_GeneralChapter."},"children":[]}]}]}]},"labellingChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/FoodLabellingChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=labelling (or chapters). As FoodSpecifications_LabellingChapter."},"children":[]}]}]}]},"productionChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/FoodProductionChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=production (or chapters). As"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodSpecifications_ProductionChapter: one entry per linked"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"production chapter (several on an assortment specification)."},"children":[]}]}]}]},"testingChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/FoodTestingChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=testing (or chapters). As FoodSpecifications_TestingChapter."},"children":[]}]}]}]},"finishedProductChapter":{"type":"object","allOf":[{"$ref":"#/components/schemas/FoodFinishedProductChapter"}],"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=finishedProduct (or chapters). As FoodSpecifications_FinishedProductChapter."},"children":[]}]}]}]},"customChapters":{"type":"array","items":{"$ref":"#/components/schemas/CustomChapter"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=customChapters (or chapters). One entry per custom"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter of the specification's template, as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodSpecifications_CustomChapter. Empty when there are none."},"children":[]}]}]}]},"questionnaires":{"type":"array","items":{"$ref":"#/components/schemas/QuestionnaireView"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=questionnaires. As FoodSpecifications_GetQuestionnaires."},"children":[]}]}]}]},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/SpecificationRequirement"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"include=requirements. As FoodSpecifications_Requirements."},"children":[]}]}]}]}}}]}},"components/schemas/SpecificationStatus":{"id":"components/schemas/SpecificationStatus","kind":"json-schema","title":"SpecificationStatus","data":{"type":"string","readOnly":true,"description":"Lifecycle status of a specification version. Draft: not yet in\nprogress. InProgress: being filled. ValidatedBySupplier /\nValidatedByRetailer: validated by that party. LockedForSupplierSignature /\nLockedForRetailerSignature: locked while that party signs.\nSignedBySupplier / SignedByRetailer: signed by that party.\nInRevisionBySupplier / InRevisionByRetailer: reopened for revision by\nthat party.\n","enum":["Draft","InProgress","ValidatedBySupplier","ValidatedByRetailer","LockedForSupplierSignature","LockedForRetailerSignature","SignedBySupplier","SignedByRetailer","InRevisionBySupplier","InRevisionByRetailer"]}},"components/schemas/SpecificationPartyContact":{"id":"components/schemas/SpecificationPartyContact","kind":"json-schema","title":"SpecificationPartyContact","data":{"type":"object","readOnly":true,"description":"A contact of the specification. The entries with your company's\nparty and fromCollaboration false are exactly the list that\nPUT .../contacts replaces and returns.\n","properties":{"userId":{"type":"string","format":"uuid","nullable":true,"description":"User (from the CUMD public API). Null for a collaboration invitation not yet accepted."},"party":{"type":"string","enum":["Retailer","Supplier","Translator","Other"],"description":"The party the contact works for on this specification"},"isSignatory":{"type":"boolean","description":"True when the contact signs the specification for its party"},"fromCollaboration":{"type":"boolean","description":"True when the contact comes from a supplier collaboration (invitation, pending or accepted); PUT .../contacts neither returns nor changes it"}},"additionalProperties":false}},"components/schemas/ModificationRequestPagedList":{"id":"components/schemas/ModificationRequestPagedList","kind":"json-schema","title":"ModificationRequestPagedList","data":{"type":"object","readOnly":true,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ModificationRequest"}},"totalCount":{"type":"integer"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalPages":{"type":"integer"},"hasNextPage":{"type":"boolean"},"hasPreviousPage":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/FoodVersionInfo":{"id":"components/schemas/FoodVersionInfo","kind":"json-schema","title":"FoodVersionInfo","data":{"type":"object","nullable":true,"description":"Version section of the food general chapter. A field the template\nhides is null. reasonForThisVersion receives the create request's\nreasonForThisVersion.\n","properties":{"reasonForThisVersion":{"type":"string","nullable":true,"description":"Reason for the current specification version/revision"},"impactOnLabeling":{"type":"boolean","nullable":true,"description":"Whether this version has impact on labeling"},"firstBatchNumber":{"type":"string","nullable":true,"description":"First production batch number of this version"},"lastBatchNumber":{"type":"string","nullable":true,"description":"Last production batch number of this version"},"firstProductionDate":{"type":"string","format":"date","nullable":true,"description":"First production date of this version"},"lastProductionDate":{"type":"string","format":"date","nullable":true,"description":"Last production date of this version"}},"additionalProperties":false}},"components/schemas/TemplateStructureChapter":{"id":"components/schemas/TemplateStructureChapter","kind":"json-schema","title":"TemplateStructureChapter","data":{"type":"object","properties":{"chapterType":{"type":"string","description":"Standard chapter type (food: general, labelling, production,\ntesting, finishedProduct; packaging: general, attestation,\ntesting, packagingSystem) or a retailer-defined custom chapter\ncode. The value the chapterType path parameters take.\n"},"name":{"type":"string","nullable":true},"isLibraryChapter":{"type":"boolean","description":"Library chapters are linked entities (written at /library/...); non-library chapters are spec-embedded"},"custom":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"true for a retailer-defined custom chapter (read and written at .../custom-chapters/{chapterType})"},"children":[]}]}]}]},"hasCustomFields":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"true when the chapter carries custom fields — fetch .../custom-fields-schema for their schema"},"children":[]}]}]}]},"sections":{"type":"array","items":{"$ref":"#/components/schemas/TemplateStructureSection"}}},"additionalProperties":false}},"components/schemas/TemplateStructureSection":{"id":"components/schemas/TemplateStructureSection","kind":"json-schema","title":"TemplateStructureSection","data":{"type":"object","properties":{"code":{"type":"string","description":"Stable section code (CustomFieldsEntry.sectionCode for custom fields)"},"name":{"type":"string","nullable":true},"payloadField":{"type":"string","nullable":true,"description":"The chapter payload property that carries this section's data.\nnull for a section without a typed property: its data, if any,\ntravels in customFields.\n"},"mandatory":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"true = the retailer cannot disable this section"},"children":[]}]}]}]},"visible":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"false = disabled by the retailer — absent from reads, rejected on writes"},"children":[]}]}]}]},"custom":{"type":"boolean","description":"true for a retailer-defined section"},"customComponentIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Custom components placed in this section"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(CustomFieldsSchema.components[].componentId); empty when none."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/LibraryFoodProductionChapter":{"id":"components/schemas/LibraryFoodProductionChapter","kind":"json-schema","title":"LibraryFoodProductionChapter","data":{"type":"object","description":"Read shape of ONE library production chapter (active version), the\ncounterpart of FoodProductionChapterWrite: the same four sections\n(sites / recipe / nutrition / allergens) and name, under the same\nnames, plus server-derived values marked readOnly. A GET of this shape\nwith its readOnly members removed is a valid PUT body.\n","properties":{"chapterId":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","description":"Library display name of the chapter."},"sites":{"type":"array","items":{"$ref":"#/components/schemas/ProductionSite"},"nullable":true},"recipe":{"$ref":"#/components/schemas/RecipeRead"},"nutrition":{"$ref":"#/components/schemas/NutritionalInformation"},"allergens":{"$ref":"#/components/schemas/AllergenDeclarationRead"}},"required":["chapterId","name"],"additionalProperties":false}},"components/schemas/ServingSizeRead":{"id":"components/schemas/ServingSizeRead","kind":"json-schema","title":"ServingSizeRead","data":{"type":"object","readOnly":true,"description":"Default serving portion of the nutrition table. Read only on a\nproduction chapter; the labelling chapter copies it as its default\nserving.\n","properties":{"value":{"type":"number","nullable":true,"example":100},"massUnitId":{"type":"string","format":"uuid","description":"Mass unit of the portion (gram unless set otherwise)."},"volumeUnitId":{"type":"string","format":"uuid","description":"Volume unit of the portion (millilitre unless set otherwise)."},"servingTypeCode":{"type":"string","nullable":true},"servingTypeDescription":{"type":"string","nullable":true,"description":"Free text, present only for a serving type that asks for one."}},"additionalProperties":false}},"components/schemas/CustomFields":{"id":"components/schemas/CustomFields","kind":"json-schema","title":"CustomFields","data":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Custom field VALUES, one entry per custom component of the chapter."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The template places retailer-defined custom components in the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter; each component is a group of fields with its own published"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"JSON Schema, listed by GET /v2/public/templates/{templateId}/chapters/"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"{chapterType}/custom-fields-schema. A published component never"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"changes, and the same componentId is valid in every template that"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"uses it."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"WRITE RULES"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An entry replaces the values of its component: a field the values"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"object does not carry is cleared. A component the array does not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carry keeps what it holds. null or absent = not supplied."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An entry is addressed by componentId. sectionCode is needed only"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"when the component appears in more than one section of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter; without it, that is a 422 naming the missing field,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"customFields[i].sectionCode."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A componentId (or componentId + sectionCode) that is not in the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter, or the same one twice: 422 naming the entry."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To change one field, read the entry, change it and send the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"whole values object back, with If-Match: the ETag of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter read. Without it, an edit made in between by the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"counterpart company is overwritten."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"values is validated against the component's JSON Schema (types,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"formats, bounds, reference-list items, files owned by your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company). A refusal is a 422 naming the field,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customFields[i].values.<field>"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Mandatory fields (CustomFieldsSchema mandatoryFields) are not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"checked on write; they are checked when the section is validated."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Who may write follows the section that holds the component: in a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"custom section either party may write; in a standard section the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"section's own rule applies (e.g. retailer or supplier sections of"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the general chapter: owner company only)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A read returns one entry per custom component of the chapter, with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sectionCode always set."},"children":[]}]}]}]}],"items":{"$ref":"#/components/schemas/CustomFieldsEntry"}}},"components/schemas/CustomFieldsEntry":{"id":"components/schemas/CustomFieldsEntry","kind":"json-schema","title":"CustomFieldsEntry","data":{"type":"object","required":["componentId","values"],"properties":{"componentId":{"type":"string","format":"uuid","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The custom component (CustomFieldsSchema.components[].componentId)."},"children":[]}]}]}]},"sectionCode":{"type":"string","nullable":true,"description":"The section that holds the component. Needed on a write only\nwhen the component appears in more than one section of the\nchapter; missing then, it is a 422 on this field.\n"},"values":{"type":"object","additionalProperties":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The component's field values, keyed by field name (camelCase, as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"in the component's JSON Schema). Shapes follow that schema:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"reference-list value: the item id (an array of ids when the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"list is multi-select). Items are resolved through the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reference Data API (list id in the schema's x-referenceList)."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"file field: an array of file ids. Files are uploaded"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"beforehand through the document API and must belong to your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"measure: { value, unitId }, unitId being a unit of the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"reference list named in the schema."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"date: YYYY-MM-DD."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A field absent from the object, or null, is empty."},"children":[]}]}]}]}]}},"additionalProperties":false}},"components/schemas/CustomFieldsSchema":{"id":"components/schemas/CustomFieldsSchema","kind":"json-schema","title":"CustomFieldsSchema","data":{"type":"object","description":"The custom components a template places in one chapter type.","properties":{"templateId":{"type":"string","format":"uuid"},"chapterType":{"type":"string"},"components":{"type":"array","items":{"type":"object","properties":{"componentId":{"type":"string","format":"uuid"},"componentName":{"type":"string"},"sectionCode":{"type":"string"},"sectionName":{"type":"string","nullable":true},"mandatoryFields":{"type":"array","items":{"type":"string"},"description":"Field names that must be filled for the section to pass\nvalidation. Not checked on write.\n"},"jsonSchema":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"JSON Schema (draft-07) of the component's values object,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"projected from the published component:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"properties keyed by field name, each with title (the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"field label, in languageCode), type, format (date,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"email, uuid), bounds (minimum, maximum, maxLength,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"multipleOf) and, for rich text, contentMediaType"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"text/html;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"required lists STRUCTURAL rules only (e.g. a measure"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carries both value and unitId). Like mandatoryFields,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"they are checked when the section is validated, not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"on write: send both, but a value read back may still"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"be partial (a measure without its unitId);"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"business-mandatory fields are in mandatoryFields;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a reference-list field (and a measure's unitId)"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carries x-referenceList: { listId, parentItemIds }; its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"items are not listed here — resolve them through the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reference Data API;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a file field is an array of uuid with"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"x-fileTypeName, the document type its files must have."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Internal keywords of the stored schema are not exposed."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The dialect stays draft-07, the version the platform"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"validates writes with. A newer dialect would only ever be"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"offered as an opt-in (an optional query parameter); the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"default never changes."},"children":[]}]}]}]}],"example":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","additionalProperties":false,"properties":{"auditScore":{"title":"Audit score","type":"integer","minimum":0,"maximum":100},"comment":{"title":"Comment","type":"string","maxLength":60},"origin":{"title":"Country of origin","type":"string","format":"uuid","x-referenceList":{"listId":"3b0c2a5e-6f1d-4c2b-9a7e-0d5f8e1a2b3c","parentItemIds":[]}},"certificates":{"title":"Certificates","type":"array","x-fileTypeName":"Certificate","items":{"type":"string","format":"uuid"}},"netWeight":{"title":"Net weight","type":"object","required":["value","unitId"],"properties":{"value":{"type":"number","multipleOf":0.01},"unitId":{"type":"string","format":"uuid","x-referenceList":{"listId":"9e4d1c7b-2a3f-4b8e-8c6d-5f0a1b2c3d4e","parentItemIds":["1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9"]}}}}}}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/TemplateStructure":{"id":"components/schemas/TemplateStructure","kind":"json-schema","title":"TemplateStructure","data":{"type":"object","description":"Design-time view of a retailer template's shape. Chapters the\nretailer hid are absent; sections the retailer disabled are listed\nwith visible false.\n","properties":{"templateId":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","nullable":true},"templateType":{"type":"string","enum":["Food","PetFood","Packaging","FruitsAndVegetable","Formula","BabyFood","FoodSupplement"]},"chapters":{"type":"array","items":{"$ref":"#/components/schemas/TemplateStructureChapter"}}},"additionalProperties":false}},"components/schemas/CustomChapterWrite":{"id":"components/schemas/CustomChapterWrite","kind":"json-schema","title":"CustomChapterWrite","data":{"type":"object","description":"Write shape of a retailer-defined custom chapter: its entire content\nis custom fields (a custom chapter has no standard fields). Validated\nagainst the template's custom-fields schema for this chapterType.\n","required":["customFields"],"properties":{"customFields":{"$ref":"#/components/schemas/CustomFields"}},"additionalProperties":false}},"components/schemas/CustomChapter":{"id":"components/schemas/CustomChapter","kind":"json-schema","title":"CustomChapter","data":{"type":"object","description":"Read shape of a retailer-defined custom chapter. Its content is\ncustom fields only (written through CustomChapterWrite); requirements\nand documents are references attached at the specification level.\n","properties":{"chapterType":{"type":"string","description":"Retailer-defined custom chapter type code","readOnly":true},"customFields":{"$ref":"#/components/schemas/CustomFields"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/Requirement"},"nullable":true},"documents":{"$ref":"#/components/schemas/DocumentSection"}},"additionalProperties":false}},"components/schemas/FoodGeneralChapterWrite":{"id":"components/schemas/FoodGeneralChapterWrite","kind":"json-schema","title":"FoodGeneralChapterWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Write shape of the general chapter — deliberately small, because almost"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"everything this chapter shows is derived: the whole product / trade-item block is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"filled from the trade item the specification points at, and the company"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"company ids, their signatory contacts and versionInfo derive from the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification identity. Product identity is therefore READ-ONLY here (see FoodProduct):"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"it changes by changing the specification's tradeItemId, never through a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter payload. Production sites are a PRODUCTION chapter section. Requirements and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"questionnaires attach at the specification level (create references),"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"never inside chapter payloads."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"What remains writable: each party's subsidiary and additional"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"contacts, and the custom fields (either party)."},"children":[]}]}]}],"properties":{"retailer":{"$ref":"#/components/schemas/SpecificationPartyWrite"},"supplier":{"$ref":"#/components/schemas/SpecificationPartyWrite"},"customFields":{"$ref":"#/components/schemas/CustomFields"}},"additionalProperties":false}},"components/schemas/SpecificationPartyWrite":{"id":"components/schemas/SpecificationPartyWrite","kind":"json-schema","title":"SpecificationPartyWrite","data":{"type":"object","nullable":true,"description":"The writable part of a party's section of the general chapter. null\nor absent means the section is not supplied: the chapter keeps what it\nholds. The retailer section is written by the specification owner\nonly: a supplier caller sending a value in it gets a 422 naming the\nfield. The supplier section is written by either party.\n","properties":{"subsidiaryCompanyId":{"type":"string","format":"uuid","nullable":true,"description":"A subsidiary of the party's company (from the CUMD public API).\nInside a supplied section, null clears it; absent keeps what the\nchapter holds.\n"},"additionalContacts":{"type":"array","items":{"$ref":"#/components/schemas/AdditionalContact"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The party's additional contacts: contacts of that party's company"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(from the CUMD public API). Full replace: an omitted entry is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"removed, [] clears the list. null or absent keeps the list. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"retailer's list is written by the specification owner only; the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"supplier's list by either party, so the retailer can fill it on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the create."},"children":[]}]}]}]}},"additionalProperties":false}},"components/schemas/FoodProductionChapterWrite":{"id":"components/schemas/FoodProductionChapterWrite","kind":"json-schema","title":"FoodProductionChapterWrite","data":{"type":"object","description":"Write shape of ONE library production chapter, in four sections:\nsites / recipe / nutrition / allergens. A library chapter is one\ndocument and cannot contain other chapters; the assortment view of a\nspecification's linked production chapters (linkedChapterId,\ncommercialName, percentage) belongs to the spec-scoped READ shape\nonly. Recipe ingredients reference existing library materials by\nmaterialId (by-reference rule, see RecipeWrite).\n","required":["name"],"properties":{"name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library display name of the chapter, shown in the Library screen."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique among the owner company's library chapters — a duplicate"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is a 422 with errorCode NAME_ALREADY_USED (paramName name)."},"children":[]}]}]}]},"sites":{"type":"array","items":{"$ref":"#/components/schemas/ProductionSite"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Replaces the chapter's site list in full. null or absent leaves it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"unchanged; send [] to clear it."},"children":[]}]}]}]},"recipe":{"$ref":"#/components/schemas/RecipeWrite"},"nutrition":{"$ref":"#/components/schemas/NutritionalInformationWrite"},"allergens":{"$ref":"#/components/schemas/AllergenDeclarationWrite"}},"additionalProperties":false}},"components/schemas/FoodProductionChapterCreateRequest":{"id":"components/schemas/FoodProductionChapterCreateRequest","kind":"json-schema","title":"FoodProductionChapterCreateRequest","data":{"type":"object","description":"Write shape of a library production chapter on create: sites and\nnutrition. The recipe and the allergens are written on the update, once\nthe chapter exists. The allergen entries are worked out from the recipe\nand the sites, and that derivation only runs against a chapter that has\nalready been saved: recipe ingredients written in the same request as\nthe create would leave the chapter without its recipe-derived allergens.\nCreate first, then send the recipe (and qualify the allergens) on the\nupdate.\n","required":["name"],"properties":{"name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library display name of the chapter, shown in the Library screen."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique among the owner company's library chapters — a duplicate"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is a 422 with errorCode NAME_ALREADY_USED (paramName name)."},"children":[]}]}]}]},"sites":{"type":"array","items":{"$ref":"#/components/schemas/ProductionSite"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The chapter's production sites. Send [] or omit it for none."},"children":[]}]}]}]},"nutrition":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On the create, nutrients are ADDED to the mandatory nutrients the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"new chapter starts with (the nutrient catalogue's mandatory list):"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a sent nutrientId that is already there takes the sent unit and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"value, the others are added, and nothing is removed. So a caller"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sends only the nutrients it has values for. The update"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(LibraryFoodChapters_PutProduction) keeps the full replace."},"children":[]}]}]}],"type":"object","allOf":[{"$ref":"#/components/schemas/NutritionalInformationWrite"}]}},"additionalProperties":false}},"components/schemas/FoodLabellingChapterWrite":{"id":"components/schemas/FoodLabellingChapterWrite","kind":"json-schema","title":"FoodLabellingChapterWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Write shape of the labelling chapter, inline on the food"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"specification create (labellingChapter) and on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FoodSpecifications_PutLabellingChapter. Requirements and documents are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not part of it."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"DERIVED CONTENT is read-only here. The labelling chapter is built from"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the production chapters and the questionnaires: the generated"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ingredient list text, the nutrient values and the servings, the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"nutri-score result, the GMO rows and the automatic claims are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"computed by the platform and written where they come from (the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"production chapter, the questionnaire answers). This shape carries the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"labelling inputs only."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OWNERSHIP RULE — replace scope = ownership scope: a PUT is a full"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"replace OF WHAT THE CALLER'S COMPANY OWNS. Counterpart-owned fields"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"are untouchable both ways: carrying a VALUE = 422 (never silently"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"dropped); null or absent = ignored, never cleared. The only"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"mixed-ownership labelling section is gmoRiskAnalysis."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REPLACE RULE on the PUT, by kind of section:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sections the labelling chapter owns outright (productInformation,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"consumerInstructions, sortingInstructions,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"additionalMarketingInformation, businessNameAndAddress): null and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"absent mean the same thing, the section goes back to the template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"defaults, as a create leaves it (full replace; no merge-patch"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"semantics);"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"customFields: its own rule (CustomFields: an entry replaces its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"component's values; a component not carried keeps what it holds);"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sections keyed by production chapter or recipe row"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(ingredientDeclaration, nutritionalInformation, nutriScore,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"gmoRiskAnalysis): entries are addressed, never created or removed."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A section or an entry the payload does not carry keeps what it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"holds; within a carried entry, the section's own rule applies;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"claims: its own rule (null keeps the manual claims, [] clears"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"them)."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On the create, a section that is null or absent keeps the template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"defaults."},"children":[]}]}]}],"properties":{"ingredientDeclaration":{"$ref":"#/components/schemas/IngredientDeclarationWrite"},"nutritionalInformation":{"$ref":"#/components/schemas/NutritionDeclarationWrite"},"claims":{"type":"array","items":{"$ref":"#/components/schemas/LabellingClaimWrite"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The manual claims the chapter carries, replaced in full."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"REPLACE ALGORITHM — the section holds claims of both origins, so"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the replace is scoped to the manual ones:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"*"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a manual claim absent from the array is removed;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a manual claim present in the array is kept as it stands"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(its server-side detail is not reset);"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"an id not yet on the chapter is added as a manual claim, in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the list its claimType names;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"an AUTOMATIC claim is never touched — not removed, not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"converted, not counted as a duplicate of a manual one."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sending the id of a claim that is currently AUTOMATIC does not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"adopt it: it stays automatic and no second entry appears."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The same id twice under the SAME claimType is collapsed silently;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the same id under two different types is a contradiction, refused"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"with a 422 naming the second occurrence's claimType."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"null or absent means the section is NOT supplied and keeps what"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the chapter already holds (template defaults on a create) — it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"does NOT clear the manual claims. Send [] to clear them."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ERROR ATTRIBUTION. Refusals the payload alone can produce — a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"missing claimId or claimType, the duplicate contradiction above —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"name the exact entry (labellingChapter.claims[1].claimType)."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Everything about the claim ITSELF is checked by the platform when"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the link is written: the claim exists, is of the specification's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"product type, is the active version, and — for a library claim —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"belongs to the specification owner. Those refusals are 422s naming"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the SECTION (labellingChapter.claims), and the message identifies"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the offending id."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A marketing or nutritional claim id that exists but is not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"visible to your company answers 403: treat 403 on this section"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"as \"one of these claim ids is not yours\"."},"children":[]}]}]}]},"productInformation":{"$ref":"#/components/schemas/LabellingProductInformationWrite"},"nutriScore":{"$ref":"#/components/schemas/NutriScoreWrite"},"consumerInstructions":{"$ref":"#/components/schemas/ConsumerInstructionsWrite"},"sortingInstructions":{"$ref":"#/components/schemas/SortingInstructions"},"gmoRiskAnalysis":{"$ref":"#/components/schemas/GmoRiskAnalysisWrite"},"additionalMarketingInformation":{"$ref":"#/components/schemas/MarketingInformation"},"businessNameAndAddress":{"$ref":"#/components/schemas/BusinessNameAndAddressWrite"},"customFields":{"$ref":"#/components/schemas/CustomFields"}},"additionalProperties":false}},"components/schemas/LabellingProductInformationRead":{"id":"components/schemas/LabellingProductInformationRead","kind":"json-schema","title":"LabellingProductInformationRead","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_product_info — names, GTIN, net contents, alcohol, final"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"page proof. The product name, the GTIN and the quantities of the trade"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"item's net contents, variable weight and drained net weight are copied"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"from the specification's trade item (tradeItemId) and are readOnly;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"their eMark and displayOnPack flags are writable"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(LabellingProductInformationWrite)."},"children":[]}]}]}],"properties":{"productName":{"type":"object","nullable":true,"properties":{"value":{"type":"string","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"commercialName":{"$ref":"#/components/schemas/DisplayableTextWithSubtitle"},"legalName":{"$ref":"#/components/schemas/DisplayableTextWithSubtitle"},"productDescription":{"$ref":"#/components/schemas/DisplayableText"},"productGtin":{"type":"object","nullable":true,"properties":{"value":{"type":"string","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"netContents":{"type":"array","nullable":true,"description":"The trade item's own net contents, one entry per unit the trade\nitem expresses it in. The write's netContents sets the flags of\neach entry, addressed by unitId.\n","items":{"type":"object","properties":{"unitId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the trade item (Units of measure list)."},"value":{"type":"string","nullable":true,"readOnly":true,"description":"Copied from the trade item, as the trade item states it."},"eMark":{"type":"boolean"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false}},"additionalNetContents":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Extra net contents beyond the trade item's own — whole quantities only."},"children":[]}]}]}],"items":{"type":"object","properties":{"unitId":{"type":"string","format":"uuid","nullable":true,"description":"Unit of measure (reference data)"},"value":{"type":"integer","minimum":0,"nullable":true},"eMark":{"type":"boolean"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false}},"variableWeight":{"type":"object","nullable":true,"description":"null when the trade item is not a variable-weight item.","properties":{"minimumValue":{"type":"number","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"maximumValue":{"type":"number","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"unitId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"eMark":{"type":"boolean"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"drainedNetWeight":{"type":"object","nullable":true,"properties":{"unitId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"value":{"type":"number","nullable":true,"readOnly":true,"description":"Copied from the trade item."},"eMark":{"type":"boolean"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"eMark":{"type":"object","nullable":true,"description":"The e-mark block's on-pack flag (one per specification).","properties":{"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"alcoholVolume":{"type":"object","nullable":true,"description":"Percentage 0-100, step 0.01","properties":{"percentage":{"type":"number","nullable":true},"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"finalPageProofFileIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/LabellingProductInformationWrite":{"id":"components/schemas/LabellingProductInformationWrite","kind":"json-schema","title":"LabellingProductInformationWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_product_info — WRITE side. Values copied from the trade"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"item (product name, GTIN, the trade item's own net content, variable"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"weight, drained net weight) are NOT writable: they derive from"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"tradeItemId server-side and appear on the read side; here only their"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"on-pack flags are set. Extra net contents are written in full."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Absent fields keep the template defaults."},"children":[]}]}]}],"properties":{"productName":{"$ref":"#/components/schemas/DisplayOnPackFlag"},"commercialName":{"$ref":"#/components/schemas/DisplayableTextWithSubtitle"},"legalName":{"$ref":"#/components/schemas/DisplayableTextWithSubtitle"},"productDescription":{"$ref":"#/components/schemas/DisplayableText"},"productGtin":{"$ref":"#/components/schemas/DisplayOnPackFlag"},"netContents":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On-pack flags of the trade item's own net contents, one entry per"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"row, addressed by unitId (the read's netContents gives each row's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"unit; the trade item has one row per unit). The quantities stay"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"read-only: they come from the trade item. Same rule as the other"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sections of this chapter: a row not sent gets the template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"defaults (eMark false, displayOnPack true). A unitId that is not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"one of the trade item's rows, or the same unitId twice, is a 422"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"naming netContents[i].unitId."},"children":[]}]}]}],"items":{"type":"object","required":["unitId"],"properties":{"unitId":{"type":"string","format":"uuid","description":"Unit of the trade item's net-content row (Units of measure list)"},"eMark":{"type":"boolean","nullable":true},"displayOnPack":{"type":"boolean","nullable":true}},"additionalProperties":false}},"additionalNetContents":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Extra net contents beyond the trade item's own — whole quantities only"},"children":[]}]}]}],"items":{"type":"object","required":["unitId","value"],"properties":{"unitId":{"type":"string","format":"uuid","description":"Unit of measure (reference data)"},"value":{"type":"integer","minimum":0},"eMark":{"type":"boolean"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false}},"variableWeight":{"description":"On-pack flags of the trade item's variable weight (variable-weight trade items only)","$ref":"#/components/schemas/PackFlags"},"drainedNetWeight":{"description":"On-pack flags of the trade item's drained net weight","$ref":"#/components/schemas/PackFlags"},"eMark":{"description":"On-pack flag of the e-mark block as a whole (one per\nspecification), independent of the per-quantity eMark flags. The\ne-mark content itself (the quantities it shows) is derived\nserver-side. displayOnPack true is refused (422) when the e-mark\nblock holds no quantity. Absent keeps the template default\n(true).\n","type":"object","nullable":true,"allOf":[{"$ref":"#/components/schemas/DisplayOnPackFlag"}]},"alcoholVolume":{"type":"object","nullable":true,"description":"Percentage 0-100, step 0.01","properties":{"percentage":{"type":"number"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false},"finalPageProofFileIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/DisplayOnPackFlag":{"id":"components/schemas/DisplayOnPackFlag","kind":"json-schema","title":"DisplayOnPackFlag","data":{"type":"object","nullable":true,"description":"On-pack flag of a value that is derived server-side (not writable itself)","properties":{"displayOnPack":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/PackFlags":{"id":"components/schemas/PackFlags","kind":"json-schema","title":"PackFlags","data":{"type":"object","nullable":true,"description":"On-pack flags of a quantity that is derived server-side (not writable itself)","properties":{"eMark":{"type":"boolean"},"displayOnPack":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/DisplayableText":{"id":"components/schemas/DisplayableText","kind":"json-schema","title":"DisplayableText","data":{"type":"object","nullable":true,"properties":{"value":{"type":"string"},"displayOnPack":{"type":"boolean"}}}},"components/schemas/DisplayableTextWithSubtitle":{"id":"components/schemas/DisplayableTextWithSubtitle","kind":"json-schema","title":"DisplayableTextWithSubtitle","data":{"type":"object","nullable":true,"properties":{"value":{"type":"string"},"subtitle":{"type":"string","nullable":true,"maxLength":1000},"displayOnPack":{"type":"boolean"}}}},"components/schemas/NutriScoreWrite":{"id":"components/schemas/NutriScoreWrite","kind":"json-schema","title":"NutriScoreWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section nutriscore — INPUTS ONLY, keyed by production chapter. An"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"entry addresses a production chapter linked to the specification (on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a create: referenced by this same create, productionChapter.chapterId);"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a productionChapterId that is not linked is a 422 naming the entry. Entries are not created or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"removed here: a linked chapter not carried in the array keeps what it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"holds. null or absent = section not supplied."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Within an entry only productionChapterId is required. A field that is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"null or absent keeps what the entry holds (empty on a create): the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"platform's own validation flags an entry without a product type or a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"percentage as incomplete; it does not refuse it."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Merged (assortment) mode is out of scope: this write addresses the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"per-chapter entries. A chapter later put in merged mode keeps one"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"merged entry under another key and is not writable here."},"children":[]}]}]}],"properties":{"entries":{"type":"array","items":{"type":"object","required":["productionChapterId"],"properties":{"productionChapterId":{"type":"string","format":"uuid"},"displayOnPack":{"type":"boolean","default":true},"productType":{"type":"string","description":"Code from the NutriscoreProductTypes list. An unknown code is\nrefused by the platform's list rule with a 422 naming the\nSECTION (labellingChapter.nutriScore); the message says which\ncode. Only what the payload alone can get wrong - a missing\nfield, a chapter not referenced by this create, a repeated\nchapter - names the entry.\n"},"percentageOfFruitsVegetablesAndLegumes":{"type":"number","description":"0-100, step 0.001"}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/NutriScoreRead":{"id":"components/schemas/NutriScoreRead","kind":"json-schema","title":"NutriScoreRead","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read shape of the nutriscore section — the write INPUTS plus what the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"platform derives: the nutrient amounts taken from the production"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"chapter's nutrition table, and the computed result. One entry per"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"production chapter linked to the specification."},"children":[]}]}]}],"properties":{"entries":{"type":"array","nullable":true,"items":{"type":"object","properties":{"productionChapterId":{"type":"string","format":"uuid","nullable":true,"description":"null on the single merged entry of a specification in merged (assortment) mode."},"displayOnPack":{"type":"boolean"},"productType":{"type":"string","nullable":true,"description":"Code from the NutriscoreProductTypes list"},"percentageOfFruitsVegetablesAndLegumes":{"type":"number","nullable":true},"nutrients":{"type":"array","nullable":true,"readOnly":true,"description":"Copied from the production chapter's nutrition table; written there, not here.","items":{"type":"object","properties":{"nutrientId":{"type":"string","format":"uuid"},"unitOfMeasureId":{"type":"string","format":"uuid"},"amount":{"type":"number"}},"additionalProperties":false}},"result":{"type":"object","nullable":true,"readOnly":true,"description":"Computed server-side, never writable","properties":{"grade":{"type":"string","nullable":true},"totalScore":{"type":"integer","nullable":true},"positiveComponentsScore":{"type":"integer","nullable":true},"negativeComponentsScore":{"type":"integer","nullable":true},"presenceOfNonNutritiveSweeteners":{"type":"boolean","nullable":true,"description":"Derived from the Catalog's nutrient data for the recipe."},"calculationState":{"type":"string","nullable":true,"enum":["Successful","MandatoryFieldsMissing","ProductionChapterNotLinked","Error"],"description":"Outcome of the last calculation. Anything but Successful\nsays why grade and scores are null.\n"}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/ShelfLifeDuration":{"id":"components/schemas/ShelfLifeDuration","kind":"json-schema","title":"ShelfLifeDuration","data":{"type":"object","nullable":true,"properties":{"value":{"type":"number","nullable":true},"unitId":{"type":"string","format":"uuid","nullable":true,"description":"UnitOfMeasure reference list"}},"additionalProperties":false}},"components/schemas/InstructionListWrite":{"id":"components/schemas/InstructionListWrite","kind":"json-schema","title":"InstructionListWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A block of instruction sentences from the labelling-information"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"library, replaced in full. Send { instructions: [] } to clear."},"children":[]}]}]}],"properties":{"displayOnPack":{"type":"boolean","default":true},"instructions":{"type":"array","items":{"type":"object","required":["labellingInformationId"],"properties":{"labellingInformationId":{"type":"string","format":"uuid","description":"A labelling-information item of the block's type (storage\ninstructions under storageInstructions, preparation\ninstructions under preparationInstructions), owned by your\ncompany, active version, for the specification's product\ntype. All of that is checked by the platform when the block\nis written: refusals are 422s naming the SECTION\n(labellingChapter.consumerInstructions), and the message\nidentifies the id. An id you cannot see answers as not\nfound. The same id twice is collapsed silently.\n"},"placeholders":{"type":"array","nullable":true,"description":"Values for the sentence's variables, by variable name. A\nvariable the sentence has and the caller leaves out is left\nempty: the write succeeds, and the specification's own\nvalidation flags the chapter as incomplete until the value\nis written. A variable name the sentence does not have is a\n422 naming the entry.\n","items":{"type":"object","required":["variableName","value"],"properties":{"variableName":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"overrideText":{"type":"string","nullable":true,"description":"Replaces the on-pack text the platform generates from the\ninstructions. Absent or null keeps what the chapter holds - on a\ncreate, the generated text. An override cannot be cleared.\n"}},"additionalProperties":false}},"components/schemas/InstructionListRead":{"id":"components/schemas/InstructionListRead","kind":"json-schema","title":"InstructionListRead","data":{"type":"object","nullable":true,"properties":{"displayOnPack":{"type":"boolean"},"languageCode":{"type":"string","nullable":true,"readOnly":true,"description":"The language the sentences and the generated text are rendered in (the specification's language)."},"instructions":{"type":"array","nullable":true,"items":{"type":"object","properties":{"labellingInformationId":{"type":"string","format":"uuid"},"sentence":{"type":"string","nullable":true,"readOnly":true,"description":"Rendered from the library item and the placeholder values."},"placeholders":{"type":"array","nullable":true,"items":{"type":"object","properties":{"variableName":{"type":"string"},"value":{"type":"string","nullable":true}},"additionalProperties":false}}},"additionalProperties":false}},"generatedText":{"type":"string","nullable":true,"readOnly":true},"overrideText":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/CodesAndDatesWrite":{"id":"components/schemas/CodesAndDatesWrite","kind":"json-schema","title":"CodesAndDatesWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Block consumer_instruction (codes & dates) — the caller's inputs only."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The shelf lives and the consumer shelf-life indication are copied from"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the finished-product chapter's shelf_life section and are not accepted"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"here (unknown member = 400). Within a supplied block, a field that is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"null or absent keeps what the chapter holds (the template default);"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"productionIndicationIds is replaced in full when supplied."},"children":[]}]}]}],"properties":{"displayOnPack":{"type":"boolean","default":true},"consumerShelfLife":{"type":"object","nullable":true,"properties":{"dateExpression":{"type":"string","nullable":true,"description":"Code from the DateFormats list; an unknown code is refused by the platform's list rule with a 422 naming the section."},"batchLotNumber":{"type":"string","nullable":true,"maxLength":500}},"additionalProperties":false},"productionIndicationIds":{"type":"array","nullable":true,"description":"ProductionIndication reference list. Replaced in full.","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/CodesAndDatesRead":{"id":"components/schemas/CodesAndDatesRead","kind":"json-schema","title":"CodesAndDatesRead","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Block consumer_instruction (codes & dates) as read — the caller's"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"inputs plus the values copied from the finished-product chapter."},"children":[]}]}]}],"properties":{"displayOnPack":{"type":"boolean"},"shelfLife":{"type":"object","nullable":true,"readOnly":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Copied from the finished-product chapter's shelf_life section."},"children":[]}]}]}],"properties":{"guaranteedShelfLife":{"type":"object","nullable":true,"properties":{"indicationId":{"type":"string","format":"uuid","nullable":true,"description":"GuaranteedShelfLife reference list"},"duration":{"$ref":"#/components/schemas/ShelfLifeDuration"}},"additionalProperties":false},"production":{"$ref":"#/components/schemas/ShelfLifeDuration"},"packaging":{"$ref":"#/components/schemas/ShelfLifeDuration"},"shipping":{"$ref":"#/components/schemas/ShelfLifeDuration"},"delivery":{"$ref":"#/components/schemas/ShelfLifeDuration"}},"additionalProperties":false},"consumerShelfLife":{"type":"object","nullable":true,"properties":{"beforeOpeningIndicationId":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"Copied from the finished-product chapter (ConsumerShelfLife reference list)."},"afterOpening":{"type":"object","nullable":true,"readOnly":true,"description":"Copied from the finished-product chapter.","properties":{"value":{"type":"integer","nullable":true},"unitId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"shelfLifeTesting":{"type":"boolean","readOnly":true,"description":"Copied from the finished-product chapter."},"dateExpression":{"type":"string","nullable":true,"description":"Code from the DateFormats list"},"batchLotNumber":{"type":"string","nullable":true,"maxLength":500}},"additionalProperties":false},"productionIndicationIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/ProductOriginsWrite":{"id":"components/schemas/ProductOriginsWrite","kind":"json-schema","title":"ProductOriginsWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Block product_origins. origins is replaced in full (keyed by"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"originTypeId — the same type twice is a 422 naming the second"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"occurrence). An origin is land-based OR water-based, and which one is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"decided by the origin type, not by the caller: send landBased for a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"land origin type and waterBased for a water one — the other branch is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"refused with a 422 naming it. A land-based origin needs its countryId"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and a water-based one at least one fishing zone and one fishing gear;"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"missing ones are not refused, the specification's validation flags"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the chapter as incomplete. Unknown or mismatched country / region /"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"zone ids are refused by the platform with a 422 naming the section"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(labellingChapter.consumerInstructions)."},"children":[]}]}]}],"properties":{"displayOnPack":{"type":"boolean","default":true},"origins":{"type":"array","items":{"type":"object","required":["originTypeId"],"properties":{"originTypeId":{"type":"string","format":"uuid","description":"OriginTypes list"},"landBased":{"type":"object","nullable":true,"properties":{"countryId":{"type":"string","format":"uuid","nullable":true},"regionId":{"type":"string","format":"uuid","nullable":true},"zoneId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"waterBased":{"type":"object","nullable":true,"properties":{"fishingZoneIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"FishingZones list"},"fishingGearIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"FishingGears list"}},"additionalProperties":false}},"additionalProperties":false}},"overrideText":{"type":"string","nullable":true,"description":"Replaces the on-pack text the platform generates from the origins.\nAbsent or null keeps what the chapter holds - on a create, the\ngenerated text. An override cannot be cleared.\n"}},"additionalProperties":false}},"components/schemas/ProductOriginsRead":{"id":"components/schemas/ProductOriginsRead","kind":"json-schema","title":"ProductOriginsRead","data":{"type":"object","nullable":true,"properties":{"displayOnPack":{"type":"boolean","nullable":true},"languageCode":{"type":"string","nullable":true,"readOnly":true,"description":"The language the generated text is rendered in (the specification's language)."},"origins":{"type":"array","nullable":true,"items":{"type":"object","properties":{"originTypeId":{"type":"string","format":"uuid","description":"OriginTypes list"},"landBased":{"type":"object","nullable":true,"properties":{"countryId":{"type":"string","format":"uuid","nullable":true},"regionId":{"type":"string","format":"uuid","nullable":true},"zoneId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"waterBased":{"type":"object","nullable":true,"properties":{"fishingZoneIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"FishingZones list"},"fishingGearIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"FishingGears list"}},"additionalProperties":false}},"additionalProperties":false}},"generatedText":{"type":"string","nullable":true,"readOnly":true},"overrideText":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/ConsumerInstructionsWrite":{"id":"components/schemas/ConsumerInstructionsWrite","kind":"json-schema","title":"ConsumerInstructionsWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section consumer_instruction — four blocks, each supplied independently (see the block semantics above)."},"children":[]}]}]}],"properties":{"storageInstructions":{"$ref":"#/components/schemas/InstructionListWrite"},"preparationInstructions":{"$ref":"#/components/schemas/InstructionListWrite"},"codesAndDates":{"$ref":"#/components/schemas/CodesAndDatesWrite"},"productOrigins":{"$ref":"#/components/schemas/ProductOriginsWrite"}},"additionalProperties":false}},"components/schemas/ConsumerInstructionsRead":{"id":"components/schemas/ConsumerInstructionsRead","kind":"json-schema","title":"ConsumerInstructionsRead","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section consumer_instruction, as read — the write inputs plus the rendered sentences, generated texts and the values copied from other chapters."},"children":[]}]}]}],"properties":{"storageInstructions":{"$ref":"#/components/schemas/InstructionListRead"},"preparationInstructions":{"$ref":"#/components/schemas/InstructionListRead"},"codesAndDates":{"$ref":"#/components/schemas/CodesAndDatesRead"},"productOrigins":{"$ref":"#/components/schemas/ProductOriginsRead"}},"additionalProperties":false}},"components/schemas/SortingInstructions":{"id":"components/schemas/SortingInstructions","kind":"json-schema","title":"SortingInstructions","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section sorting_instruction — target streams with country-specific"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"components, plus the recycling logos."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"displaySortingInstructions is not only a display flag: turning it OFF"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"CLEARS the streams (the platform drops them when the section is not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"shown on pack). A payload carrying false together with a non-empty"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"streams array is therefore a contradiction, refused with a 422 naming"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"displaySortingInstructions - the streams would otherwise be accepted"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and then removed."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"streams and the countries inside a stream are each replaced in full"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"when supplied; absent or null keeps what the chapter holds (template"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"defaults on a create). A stream is keyed by targetStreamId and a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"country row by countryId - the same key twice is a 422 naming the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"second occurrence."},"children":[]}]}]}],"properties":{"displaySortingInstructions":{"type":"boolean","default":true},"streams":{"type":"array","nullable":true,"items":{"type":"object","required":["targetStreamId"],"properties":{"targetStreamId":{"type":"string","format":"uuid","description":"Item from the SortingStreams list. An unknown id is refused\nby the platform's list rule with a 422 naming the section.\n"},"countries":{"type":"array","nullable":true,"items":{"type":"object","required":["countryId"],"properties":{"countryId":{"type":"string","format":"uuid","description":"Country reference list"},"components":{"type":"string","nullable":true,"description":"The packaging components sorted into this stream in\nthis country. Absent or null keeps what the row holds;\nthe specification's own validation flags a country row\nwithout it as incomplete, it is not refused.\n"}},"additionalProperties":false}}},"additionalProperties":false}},"otherLogos":{"type":"object","nullable":true,"properties":{"trimanLogo":{"type":"boolean","default":true},"greenDotLogo":{"type":"boolean","default":true}},"additionalProperties":false}},"additionalProperties":false}},"components/schemas/GmoRawMaterialOrigin":{"id":"components/schemas/GmoRawMaterialOrigin","kind":"json-schema","title":"GmoRawMaterialOrigin","data":{"type":"object","properties":{"originTypeId":{"type":"string","format":"uuid","description":"MaterialOrigin reference list"},"countryIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}},"components/schemas/GmoRiskAnalysisWrite":{"id":"components/schemas/GmoRiskAnalysisWrite","kind":"json-schema","title":"GmoRiskAnalysisWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section gmo_risk_analysis — the inputs of the rows the platform"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"generated from the recipe."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Each entry addresses one generated row by materialId AND ingredientId"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(see the note above: an absent ingredientId is part of the key, not an"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"omitted field). A pair that matches no generated row is a 422 naming"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the entry, and the same pair twice is a 422 naming the second"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"occurrence. A row the array does not carry keeps what it holds."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"null or absent = section not supplied."},"children":[]}]}]}],"properties":{"rawMaterialRisks":{"type":"array","items":{"type":"object","required":["materialId"],"properties":{"materialId":{"type":"string","format":"uuid","description":"Part of the key of a row the platform generated. Not a row\nyou create: the rows follow the recipe's raw materials.\n"},"ingredientId":{"type":"string","format":"uuid","nullable":true,"description":"The other part of the key. Omit it (or send null) to address\nthe raw-material row of this material; send the child's\ningredient id to address one row of a bought composite.\n"},"riskLevelCode":{"type":"string","nullable":true,"description":"RETAILER-owned. Code from the GmoRiskLevels list. Absent or\nnull keeps what the row holds; the specification's own\nvalidation flags a row without one as incomplete.\n"},"fileIds":{"type":"array","nullable":true,"description":"SUPPLIER-owned. Supporting documents, uploaded through the\ndocument API and referenced here by id; replaced in full when\nsupplied.\n\nEach risk level accepts a fixed set of document types. A file\nwhose type the row's risk level does not accept is refused\nwith a 422 naming it - the platform would otherwise drop it\nfrom the row and still answer 201.\n","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/GmoRiskAnalysisRead":{"id":"components/schemas/GmoRiskAnalysisRead","kind":"json-schema","title":"GmoRiskAnalysisRead","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section gmo_risk_analysis as read — the inputs plus what the recipe"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"filled in. One row per GMO-risky raw material of the recipe, keyed by"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"materialId and ingredientId (the key GmoRiskAnalysisWrite addresses)."},"children":[]}]}]}],"properties":{"rawMaterialRisks":{"type":"array","items":{"type":"object","properties":{"materialId":{"type":"string","format":"uuid","description":"Part of the row key."},"ingredientId":{"type":"string","format":"uuid","nullable":true,"description":"The other part of the row key: null on the raw-material row\nof a material, the child's ingredient id on a row of a bought\ncomposite.\n"},"ingredientName":{"type":"string","nullable":true,"readOnly":true,"description":"From the recipe."},"riskLevelCode":{"type":"string","nullable":true,"description":"Code from the GmoRiskLevels list"},"fileIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}},"origins":{"type":"array","nullable":true,"readOnly":true,"description":"From the composite: the origins declared on the suppliers of\nthis ingredient, grouped by origin type.\n","items":{"$ref":"#/components/schemas/GmoRawMaterialOrigin"}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/BusinessNameAndAddressWrite":{"id":"components/schemas/BusinessNameAndAddressWrite","kind":"json-schema","title":"BusinessNameAndAddressWrite","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_business_name_and_address: the consumer-service contact"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and an additional text printed on pack, and whether the health marks"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and packer codes of the production sites are shown. The codes"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"themselves come from the production chapters' sites and are read on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"BusinessNameAndAddressRead."},"children":[]}]}]}],"properties":{"consumerServiceInformation":{"$ref":"#/components/schemas/ConsumerServiceInformationWrite"},"additionalInformation":{"$ref":"#/components/schemas/DisplayableText"},"healthMarks":{"$ref":"#/components/schemas/DisplayOnPackFlag"},"packerCodes":{"$ref":"#/components/schemas/DisplayOnPackFlag"}},"additionalProperties":false}},"components/schemas/ConsumerServiceInformationWrite":{"id":"components/schemas/ConsumerServiceInformationWrite","kind":"json-schema","title":"ConsumerServiceInformationWrite","data":{"type":"object","nullable":true,"description":"Either a sentence from the labelling-information library\n(labellingInformationId, with its placeholders) or a free text\n(value). Sending both is a 422 naming value.\n","properties":{"displayOnPack":{"type":"boolean","default":true},"labellingInformationId":{"type":"string","format":"uuid","nullable":true,"description":"A consumer-service-information item of the labelling-information\nlibrary, owned by your company, active version. Refusals are 422s\nnaming the section (labellingChapter.businessNameAndAddress), and\nthe message identifies the id. An id you cannot see answers as\nnot found.\n"},"placeholders":{"type":"array","nullable":true,"description":"Values for the sentence's variables, by variable name. A variable\nthe sentence has and the caller leaves out is left empty: the\nwrite succeeds, and the specification's own validation flags the\nchapter as incomplete until the value is written. A variable name\nthe sentence does not have is a 422 naming the entry.\n","items":{"type":"object","required":["variableName","value"],"properties":{"variableName":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false}},"value":{"type":"string","nullable":true,"description":"Free text shown on pack."}},"additionalProperties":false}},"components/schemas/BusinessNameAndAddressRead":{"id":"components/schemas/BusinessNameAndAddressRead","kind":"json-schema","title":"BusinessNameAndAddressRead","data":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_business_name_and_address, as read. The write inputs plus the rendered sentence and the codes copied from the production sites."},"children":[]}]}]}],"properties":{"consumerServiceInformation":{"type":"object","nullable":true,"properties":{"displayOnPack":{"type":"boolean"},"labellingInformationId":{"type":"string","format":"uuid","nullable":true},"sentence":{"type":"string","nullable":true,"readOnly":true,"description":"Rendered from the library item and the placeholder values."},"placeholders":{"type":"array","nullable":true,"items":{"type":"object","properties":{"variableName":{"type":"string"},"value":{"type":"string","nullable":true}},"additionalProperties":false}},"value":{"type":"string","nullable":true},"languageCode":{"type":"string","nullable":true,"readOnly":true,"description":"The specification's language."}},"additionalProperties":false},"additionalInformation":{"$ref":"#/components/schemas/DisplayableText"},"siteIds":{"type":"array","nullable":true,"readOnly":true,"description":"The production sites of the chapters linked to the specification.","items":{"type":"string","format":"uuid"}},"healthMarks":{"$ref":"#/components/schemas/SiteCodesRead"},"packerCodes":{"$ref":"#/components/schemas/SiteCodesRead"}},"additionalProperties":false}},"components/schemas/SiteCodesRead":{"id":"components/schemas/SiteCodesRead","kind":"json-schema","title":"SiteCodesRead","data":{"type":"object","nullable":true,"properties":{"values":{"type":"array","nullable":true,"readOnly":true,"description":"The codes of the production sites (from the Sites API).","items":{"type":"string"}},"displayOnPack":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/MarketingInformation":{"id":"components/schemas/MarketingInformation","kind":"json-schema","title":"MarketingInformation","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Section pack_marketing_info."},"children":[]}]}]}],"nullable":true,"properties":{"information":{"type":"string"},"displayOnPack":{"type":"boolean"}}}},"components/schemas/FoodTestingChapterWrite":{"id":"components/schemas/FoodTestingChapterWrite","kind":"json-schema","title":"FoodTestingChapterWrite","data":{"type":"object","description":"Write shape of the testing chapter (library chapter).","required":["name"],"properties":{"name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library display name of the chapter, shown in the Library screen."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique among the owner company's library chapters — a duplicate"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is a 422 with errorCode NAME_ALREADY_USED (paramName name)."},"children":[]}]}]}]},"characteristics":{"type":"array","items":{"$ref":"#/components/schemas/Characteristic"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Replaces the characteristics table in full. A row whose"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"characteristicId is absent from the array is removed; a row"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"carrying one updates it; a row without one is added. null or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"absent leaves the table unchanged; send [] to clear it."},"children":[]}]}]}]},"controlPlans":{"type":"array","items":{"$ref":"#/components/schemas/ControlPlan"},"nullable":true,"description":"Same replace rule, keyed on characteristicId. Each row must name a\ncharacteristicId present in the characteristics table whose\ncontrolPhaseId is set - otherwise a 422 naming the entry.\n"}},"additionalProperties":false}},"components/schemas/FoodFinishedProductChapterWrite":{"id":"components/schemas/FoodFinishedProductChapterWrite","kind":"json-schema","title":"FoodFinishedProductChapterWrite","data":{"type":"object","description":"Write shape of the finished product chapter (library chapter).\nproductPhotos reference files already uploaded via the document flow.\n","required":["name"],"properties":{"name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Library display name of the chapter, shown in the Library screen."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unique among the owner company's library chapters — a duplicate"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"is a 422 with errorCode NAME_ALREADY_USED (paramName name)."},"children":[]}]}]}]},"productPhotos":{"$ref":"#/components/schemas/ProductPhotos"},"shelfLife":{"$ref":"#/components/schemas/FinishedProductShelfLife"},"consumerShelfLife":{"$ref":"#/components/schemas/FinishedProductConsumerShelfLife"},"storageConditions":{"type":"array","items":{"$ref":"#/components/schemas/StorageCondition"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Replaces the storage-condition list in full, keyed on conditionId:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a row the array does not carry is removed. null or absent leaves"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the list unchanged; send [] to clear it."},"children":[]}]}]}]},"preservationMethodIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PreservationMethod reference list. Replaces the list in full; null"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"or absent leaves it unchanged, [] clears it."},"children":[]}]}]}]},"traceability":{"$ref":"#/components/schemas/Traceability"}},"additionalProperties":false}},"components/schemas/FolderCreateRequest":{"id":"components/schemas/FolderCreateRequest","kind":"json-schema","title":"FolderCreateRequest","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Full folder payload — creation and configuration in one call. The"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"folder is created in preparation; every field needed to start it at"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"share time is required up front, so the handover cannot fail on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"missing data. Contacts are added while the folder is still in"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"preparation, the only state that accepts them."},"children":[]}]}]}],"required":["name","templateId","targetDateUtc","languageCode"],"properties":{"ownerUserId":{"type":"string","format":"uuid","nullable":true,"description":"The user of your company who owns the folder and becomes its retailer contact.\nOptional when your credentials identify a user: that user is\ntaken, and a person may only name themselves (naming anyone else\nis a 403). Required when your credentials carry no user. The\ncompany always binds from your credentials, never from the\npayload.\n"},"name":{"type":"string"},"templateId":{"type":"string","format":"uuid","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Your company's published food-family specification template, on which the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"folder's specifications are based — communicated at onboarding by"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Professional Services (same value as on specification creates). It must be"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"owned by your company, published and in its active version; anything else is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"a 422 naming this field. Determines the folder's template family; packaging"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"templates are rejected (422) — folders hold food-family specifications only."},"children":[]}]}]}]},"description":{"type":"string","nullable":true},"targetDateUtc":{"type":"string","format":"date-time","description":"Must not be in the past."},"specificationNote":{"type":"string","nullable":true,"description":"Default note carried to specifications created in this folder"},"languageCode":{"type":"string","example":"en-US"},"contacts":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The folder's contacts: users of your company who work on it, addressed by"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"userId as discoverable through the CUMD public API. The folder's owner is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"always a contact and needs no entry here; omit the property for the owner"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"alone. A userId that is not a user of your company is a 422 reported on"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"contacts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - the first refused entry stops the request and nothing is created."},"children":[]}]}]}],"items":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","format":"uuid","description":"User of your company (from the CUMD public API)"}}}}},"additionalProperties":false}},"components/schemas/FolderCreated":{"id":"components/schemas/FolderCreated","kind":"json-schema","title":"FolderCreated","data":{"type":"object","properties":{"folderId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/ContactListWrite":{"id":"components/schemas/ContactListWrite","kind":"json-schema","title":"ContactListWrite","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Contact list, addressed by userId — users are discoverable through"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the CUMD public API (same IDs-only pattern as reference data). Each"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"contact carries its signatory flag; signature history is not"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"writable."},"children":[]}]}]}],"required":["contacts"],"properties":{"contacts":{"type":"array","items":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","format":"uuid","description":"User of the retailer or supplier company (from the CUMD public API)"},"isSignatory":{"type":"boolean","nullable":true,"description":"Whether this contact signs the specification for your\ncompany - the UI's \"Set as signatory\". A signatory can sign,\nand on the retailer side revise, duplicate and delete the\nspecification. true or false sets the flag; null or absent\nkeeps the stored flag (false for a contact being added).\nThe owner contact's flag cannot be changed: a value\ndifferent from the stored one gets a 422 naming it. Always\nreturned in the response.\n"}}}}},"additionalProperties":false}},"components/schemas/FolderAssignment":{"id":"components/schemas/FolderAssignment","kind":"json-schema","title":"FolderAssignment","data":{"type":"object","required":["folderId"],"properties":{"folderId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/ReferenceListItem":{"id":"components/schemas/ReferenceListItem","kind":"json-schema","title":"ReferenceListItem","data":{"type":"object","readOnly":true,"description":"A reference-list value as read. Written as the item id alone.","properties":{"referenceListItemId":{"type":"string","format":"uuid","nullable":true},"referenceListItemCode":{"type":"string","nullable":true}},"additionalProperties":false}},"components/schemas/LibraryVersion":{"id":"components/schemas/LibraryVersion","kind":"json-schema","title":"LibraryVersion","data":{"type":"object","readOnly":true,"properties":{"number":{"type":"integer","minimum":1},"activeVersion":{"type":"boolean"},"lastVersion":{"type":"boolean"}},"additionalProperties":false}},"components/schemas/PackagingComponentWrite":{"id":"components/schemas/PackagingComponentWrite","kind":"json-schema","title":"PackagingComponentWrite","data":{"type":"object","description":"Write shape of a packaging component, used by the create and the replace. Reference-list\nvalues are item ids; their read twin is a ReferenceListItem (e.g. packagingComponentTypeId\nis read back as packagingComponentType.referenceListItemId). Inside the replace, a member\nthat is null or absent is cleared.\n","required":["name","usageLevel","packagingComponentTypeId"],"properties":{"name":{"type":"string","description":"Unique among your company's packaging components."},"usageLevel":{"type":"string","enum":["primary","secondary","tertiary"]},"packagingComponentTypeId":{"type":"string","format":"uuid"},"isPrintable":{"type":"boolean","nullable":true},"weight":{"$ref":"#/components/schemas/Measurement"},"width":{"$ref":"#/components/schemas/Measurement"},"height":{"$ref":"#/components/schemas/Measurement"},"length":{"$ref":"#/components/schemas/Measurement"},"diameter":{"$ref":"#/components/schemas/Measurement"},"packagingUsageIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}},"internalCode":{"type":"string","nullable":true},"technicalDesignation":{"type":"string","nullable":true},"commercialDesignation":{"type":"string","nullable":true},"isComponentInDirectContactWithProduct":{"type":"boolean","nullable":true},"suppliers":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PackagingSupplierWrite"}},"materials":{"$ref":"#/components/schemas/PackagingMaterialsWrite"},"componentCharacteristics":{"$ref":"#/components/schemas/ComponentCharacteristicsWrite"},"printing":{"$ref":"#/components/schemas/PrintingWrite"},"substances":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PackagingSubstance"}}},"additionalProperties":false}},"components/schemas/PackagingSupplierWrite":{"id":"components/schemas/PackagingSupplierWrite","kind":"json-schema","title":"PackagingSupplierWrite","data":{"type":"object","properties":{"supplierName":{"type":"string","nullable":true},"supplierInternalCode":{"type":"string","nullable":true},"marketId":{"type":"string","format":"uuid","nullable":true},"countryId":{"type":"string","format":"uuid","nullable":true},"regionId":{"type":"string","format":"uuid","nullable":true},"zoneId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}},"components/schemas/PackagingMaterialsWrite":{"id":"components/schemas/PackagingMaterialsWrite","kind":"json-schema","title":"PackagingMaterialsWrite","data":{"type":"object","nullable":true,"properties":{"packagingMaterials":{"type":"array","nullable":true,"items":{"type":"object","required":["packagingMaterialId"],"properties":{"packagingMaterialId":{"type":"string","format":"uuid"},"percentageOfMaterial":{"type":"number","nullable":true,"minimum":0,"maximum":100},"thicknessInMicrons":{"type":"number","nullable":true,"minimum":0},"percentageOfRecycledMaterials":{"type":"number","nullable":true,"minimum":0,"maximum":100},"percentageOfRecycledMaterialsIncludingPcr":{"type":"number","nullable":true,"minimum":0,"maximum":100},"percentageOfRenewableResources":{"type":"number","nullable":true,"minimum":0,"maximum":100}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/ComponentCharacteristicsWrite":{"id":"components/schemas/ComponentCharacteristicsWrite","kind":"json-schema","title":"ComponentCharacteristicsWrite","data":{"type":"object","nullable":true,"properties":{"isRecyclable":{"type":"boolean","nullable":true},"detachableForWashing":{"type":"object","nullable":true,"properties":{"isDetachableForWashing":{"type":"boolean","nullable":true},"detachableForWashingPrecisionId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"plasticCharacteristics":{"type":"object","nullable":true,"properties":{"densityId":{"type":"string","format":"uuid","nullable":true},"rigidityId":{"type":"string","format":"uuid","nullable":true},"tintId":{"type":"string","format":"uuid","nullable":true},"transparencyId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"additives":{"type":"array","nullable":true,"items":{"type":"object","required":["packagingAdditiveId"],"properties":{"packagingAdditiveId":{"type":"string","format":"uuid"},"percentage":{"type":"number","nullable":true,"minimum":0,"maximum":100}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/PrintingWrite":{"id":"components/schemas/PrintingWrite","kind":"json-schema","title":"PrintingWrite","data":{"type":"object","nullable":true,"properties":{"printingTypeId":{"type":"string","format":"uuid","nullable":true},"numberOfColors":{"type":"integer","nullable":true,"minimum":0},"inkTypeId":{"type":"string","format":"uuid","nullable":true},"varnishTypeId":{"type":"string","format":"uuid","nullable":true},"glueTypeId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}},"components/schemas/PackagingSubstance":{"id":"components/schemas/PackagingSubstance","kind":"json-schema","title":"PackagingSubstance","data":{"type":"object","required":["substanceId","percentage","presentAtNanoscale"],"properties":{"substanceId":{"type":"string","format":"uuid"},"percentage":{"type":"number","minimum":0,"maximum":100},"presentAtNanoscale":{"type":"boolean"},"presenceAtNanoscale":{"type":"object","nullable":true,"properties":{"size":{"type":"number","nullable":true},"specificSurface":{"type":"number","nullable":true}},"additionalProperties":false}},"additionalProperties":false}},"components/schemas/PackagingComponent":{"id":"components/schemas/PackagingComponent","kind":"json-schema","title":"PackagingComponent","data":{"type":"object","description":"Read shape of a packaging component. Every member of PackagingComponentWrite reads back\nunder the same name, except reference-list values (read as ReferenceListItem under the\nname without \"Id\") and the material totals, which the platform computes.\n","properties":{"packagingComponentId":{"type":"string","format":"uuid","readOnly":true},"ownerCompanyId":{"type":"string","format":"uuid","readOnly":true},"version":{"$ref":"#/components/schemas/LibraryVersion"},"status":{"type":"string","readOnly":true,"enum":["draft","inProgress","locked"]},"name":{"type":"string","nullable":true},"usageLevel":{"type":"string","enum":["primary","secondary","tertiary"]},"packagingComponentType":{"$ref":"#/components/schemas/ReferenceListItem"},"creationDateUtc":{"type":"string","format":"date-time","readOnly":true},"lastUpdateDateUtc":{"type":"string","format":"date-time","readOnly":true},"isPrintable":{"type":"boolean"},"weight":{"$ref":"#/components/schemas/Measurement"},"width":{"$ref":"#/components/schemas/Measurement"},"height":{"$ref":"#/components/schemas/Measurement"},"length":{"$ref":"#/components/schemas/Measurement"},"diameter":{"$ref":"#/components/schemas/Measurement"},"packagingUsage":{"type":"array","items":{"$ref":"#/components/schemas/ReferenceListItem"}},"internalCode":{"type":"string","nullable":true},"technicalDesignation":{"type":"string","nullable":true},"commercialDesignation":{"type":"string","nullable":true},"isComponentInDirectContactWithProduct":{"type":"boolean"},"suppliers":{"type":"array","items":{"type":"object","properties":{"supplierName":{"type":"string","nullable":true},"supplierInternalCode":{"type":"string","nullable":true},"market":{"$ref":"#/components/schemas/ReferenceListItem"},"country":{"$ref":"#/components/schemas/ReferenceListItem"},"region":{"$ref":"#/components/schemas/ReferenceListItem"},"zone":{"$ref":"#/components/schemas/ReferenceListItem"}},"additionalProperties":false}},"materials":{"type":"object","nullable":true,"properties":{"packagingMaterials":{"type":"array","items":{"type":"object","properties":{"packagingMaterial":{"$ref":"#/components/schemas/ReferenceListItem"},"percentageOfMaterial":{"type":"number","nullable":true},"thicknessInMicrons":{"type":"number","nullable":true},"percentageOfRecycledMaterials":{"type":"number","nullable":true},"percentageOfRecycledMaterialsIncludingPcr":{"type":"number","nullable":true},"percentageOfRenewableResources":{"type":"number","nullable":true}},"additionalProperties":false}},"percentageOfTotalRenewableResources":{"type":"number","nullable":true,"readOnly":true},"percentageOfTotalRecycledMaterials":{"type":"number","nullable":true,"readOnly":true},"percentageOfTotalRecycledMaterialsIncludingPcr":{"type":"number","nullable":true,"readOnly":true}},"additionalProperties":false},"componentCharacteristics":{"type":"object","nullable":true,"properties":{"isRecyclable":{"type":"boolean","nullable":true},"detachableForWashing":{"type":"object","nullable":true,"properties":{"isDetachableForWashing":{"type":"boolean","nullable":true},"detachableForWashingPrecision":{"$ref":"#/components/schemas/ReferenceListItem"}},"additionalProperties":false},"plasticCharacteristics":{"type":"object","nullable":true,"properties":{"density":{"$ref":"#/components/schemas/ReferenceListItem"},"rigidity":{"$ref":"#/components/schemas/ReferenceListItem"},"tint":{"$ref":"#/components/schemas/ReferenceListItem"},"transparency":{"$ref":"#/components/schemas/ReferenceListItem"}},"additionalProperties":false},"additives":{"type":"array","items":{"type":"object","properties":{"packagingAdditive":{"$ref":"#/components/schemas/ReferenceListItem"},"percentage":{"type":"number","nullable":true}},"additionalProperties":false}}},"additionalProperties":false},"printing":{"type":"object","nullable":true,"properties":{"printingType":{"$ref":"#/components/schemas/ReferenceListItem"},"numberOfColors":{"type":"integer","nullable":true},"inkType":{"$ref":"#/components/schemas/ReferenceListItem"},"varnishType":{"$ref":"#/components/schemas/ReferenceListItem"},"glueType":{"$ref":"#/components/schemas/ReferenceListItem"}},"additionalProperties":false},"substances":{"type":"array","items":{"$ref":"#/components/schemas/PackagingSubstance"}}},"additionalProperties":false}},"components/schemas/PackagingComponentCreated":{"id":"components/schemas/PackagingComponentCreated","kind":"json-schema","title":"PackagingComponentCreated","data":{"type":"object","properties":{"packagingComponentId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/PackagingSystemWrite":{"id":"components/schemas/PackagingSystemWrite","kind":"json-schema","title":"PackagingSystemWrite","data":{"type":"object","description":"Write shape of a packaging system, used by the create and the replace. Components are\nreferenced by id and must be published components visible to you. linkedComponentIds\nattaches components to a main component: a component is linked to one main component at\nmost, and main components are not linked together.\n","required":["name","components"],"properties":{"name":{"type":"string","description":"Unique among your company's packaging systems."},"components":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/PackagingSystemComponentWrite"}}},"additionalProperties":false}},"components/schemas/PackagingSystemComponentWrite":{"id":"components/schemas/PackagingSystemComponentWrite","kind":"json-schema","title":"PackagingSystemComponentWrite","data":{"type":"object","description":"One component of the system. Field names are the ones the application already sends;\nthey read back as packagingComponentId, componentQuantity, isMainComponent,\nrecyclabilityId and linkedPackagingComponentIds.\n","required":["componentId","componentQuantity","isMainComponent"],"properties":{"componentId":{"type":"string","format":"uuid"},"componentQuantity":{"type":"integer","minimum":1},"isMainComponent":{"type":"boolean"},"componentRecyclabilityId":{"type":"string","format":"uuid","nullable":true,"description":"Recyclability (reference list item id)."},"linkedComponentIds":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"On a main component only: the components of this system attached to it. A component\nthat is not part of the system is a 422 naming the item.\n"}},"additionalProperties":false}},"components/schemas/PackagingSystem":{"id":"components/schemas/PackagingSystem","kind":"json-schema","title":"PackagingSystem","data":{"type":"object","description":"Read shape of a packaging system.","properties":{"packagingSystemId":{"type":"string","format":"uuid","readOnly":true},"ownerCompanyId":{"type":"string","format":"uuid","readOnly":true},"version":{"$ref":"#/components/schemas/LibraryVersion"},"status":{"type":"string","readOnly":true,"enum":["draft","published","locked"]},"creationDateUtc":{"type":"string","format":"date-time","readOnly":true},"lastUpdateDateUtc":{"type":"string","format":"date-time","readOnly":true},"name":{"type":"string","nullable":true},"packagingComponents":{"type":"array","items":{"type":"object","properties":{"packagingComponentId":{"type":"string","format":"uuid"},"isMainComponent":{"type":"boolean"},"componentQuantity":{"type":"integer","nullable":true},"recyclabilityId":{"type":"string","format":"uuid","nullable":true},"linkedPackagingComponentIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"additionalProperties":false}}},"additionalProperties":false}},"components/schemas/PackagingSystemCreated":{"id":"components/schemas/PackagingSystemCreated","kind":"json-schema","title":"PackagingSystemCreated","data":{"type":"object","properties":{"packagingSystemId":{"type":"string","format":"uuid"}},"additionalProperties":false}},"components/schemas/PackagingSystemVersionCreated":{"id":"components/schemas/PackagingSystemVersionCreated","kind":"json-schema","title":"PackagingSystemVersionCreated","data":{"type":"object","properties":{"packagingSystemId":{"type":"string","format":"uuid","description":"Id of the new version"},"versionNumber":{"type":"integer"}},"additionalProperties":false}},"components/schemas/ShareRequest":{"id":"components/schemas/ShareRequest","kind":"json-schema","title":"ShareRequest","data":{"type":"object","required":["companyIds"],"properties":{"companyIds":{"type":"array","minItems":1,"items":{"type":"string","format":"uuid"},"description":"Companies to share with (from the CUMD public API)."}},"additionalProperties":false}},"schema_0":{"kind":"json-schema","data":{"type":"string","format":"uuid"},"id":"schema_0"},"schema_1":{"kind":"json-schema","data":{"type":"array","items":{"type":"string","enum":["chapters","general","labelling","production","testing","finishedProduct","customChapters","questionnaires","requirements"]}},"id":"schema_1"},"schema_2":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/FoodSpecification"}},"id":"schema_2"},"schema_3":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/SpecificationVersion"}},"id":"schema_3"},"schema_4":{"kind":"json-schema","data":{"type":"string","enum":["Draft","InProgress","Performed","Declined","Completed","Archived"]},"id":"schema_4"},"schema_5":{"kind":"json-schema","data":{"type":"string"},"id":"schema_5"},"schema_6":{"kind":"json-schema","data":{"type":"integer","minimum":1,"default":1},"id":"schema_6"},"schema_7":{"kind":"json-schema","data":{"type":"integer","minimum":1,"maximum":100,"default":50},"id":"schema_7"},"schema_8":{"kind":"json-schema","data":{"type":"string","format":"date-time"},"id":"schema_8"},"schema_9":{"kind":"json-schema","data":{"type":"object","properties":{"ETag":{"type":"string","description":"Version tag of the chapter as stored. Pass it back in If-Match on the\nnext write for optimistic concurrency.\n"}}},"id":"schema_9"},"schema_10":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/QuestionnaireView"}},"id":"schema_10"},"schema_11":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/SpecificationRequirement"}},"id":"schema_11"},"schema_12":{"kind":"json-schema","data":{"type":"array","items":{"type":"string","enum":["chapters","general","attestation","testing","packagingSystem"]}},"id":"schema_12"},"schema_13":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/PackagingSpecification"}},"id":"schema_13"},"schema_14":{"kind":"json-schema","data":{"type":"string","enum":["food","packaging"]},"id":"schema_14"},"schema_15":{"kind":"json-schema","data":{"type":"string","maxLength":255},"id":"schema_15"},"schema_16":{"kind":"json-schema","data":{"type":"array","items":{"type":"string","format":"uuid"}},"id":"schema_16"},"schema_17":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/PackagingComponent"}},"id":"schema_17"},"schema_18":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/PackagingSystem"}},"id":"schema_18"},"schema_19":{"kind":"json-schema","data":{"type":"object","description":"A JSON Schema document (draft-07)","example":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","additionalProperties":false,"properties":{"question1":{"type":"string","enum":["weekly","monthly"]},"condition1":{"type":"object","properties":{"question2":{"type":"boolean"}},"dependencies":{"question2":{"oneOf":[{"type":"object","properties":{"question2":{"enum":[true]},"question3":{"type":"string"}}},{"type":"object","properties":{"question2":{"enum":[false]}}}]}}}}}},"id":"schema_19"}},"exampleStore":{},"securitySchemeStore":{"oauth2":{"id":"oauth2","type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"OAuth2 client credentials issued by Trace One. Request a token from the token URL with your"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client id and secret for the scope t1_api, then send it in the Authorization header as a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token. Authentication and authorisation failures answer 401 and 403."},"children":[]}]}]}],"flows":{"clientCredentials":{"tokenUrl":"https://ws-users.traceone.com/default/connect/token","scopes":{"t1_api":"Access to the Trace One public APIs"}}}}},"specVersion":"3.0.1","servers":[{"url":"https://apis.traceone.com/spec","description":"Production"}],"specType":"openapi"},"options":{"hideReplay":true,"hideDownloadButtons":false,"mockServer":{"off":true,"position":"off"},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/@l10n/fr/catalog/Spec/@v2-preview/Specifications/OpenAPISpecification.json?download"},{"url":"/_bundle/@l10n/fr/catalog/Spec/@v2-preview/Specifications/OpenAPISpecification.yaml?download"}],"excludeFromSearch":false,"replayFeatures":{"graphql":false},"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"Specification API — Public v2 (Preview)","description":"Operations that are not in the API reference yet. Each one carries a badge:\n\n- **Limited**: in production and available by agreement; contact Trace One to use it. It may still change.\n- **Designed**: planned; it may change before release.\n\nAn operation moves to the Specification API reference once it is validated for customers.","group":"PLM"}},"baseSlug":"/fr/catalog/spec/v2-preview/specifications/openapispecification","routesMapping":{}}