openapi: 3.2.0 info: title: Tandoor Inventory Entry API version: 0.0.0 (2.6.13) x-logo: url: /static/assets/brand_logo.svg backgroundColor: '#FFFFFF' altText: Tandoor logo href: / description: Tandoor API Docs tags: - name: Inventory Entry paths: /api/inventory-entry/: get: operationId: apiInventoryEntryList description: logs request counts to redis cache total/per user/ parameters: - in: query name: code schema: type: string description: Returns all entries with the same food as the given code. If code is given food parameter is ignored - in: query name: empty schema: type: boolean description: If true also return empty entries, if false (default) only return entries with amount > 0. - in: query name: food_id schema: type: integer description: Returns all entries with the given food id - in: query name: inventory_location_id schema: type: integer description: Returns all entries with the given inventory location id - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - Inventory Entry security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedInventoryEntryList' description: '' summary: Api inventory entry list x-summary-source: derived post: operationId: apiInventoryEntryCreate description: logs request counts to redis cache total/per user/ tags: - Inventory Entry requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryEntry' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/InventoryEntry' multipart/form-data: schema: $ref: '#/components/schemas/InventoryEntry' required: true security: - ApiKeyAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/InventoryEntry' description: '' summary: Api inventory entry create x-summary-source: derived /api/inventory-entry/{id}/: get: operationId: apiInventoryEntryRetrieve description: logs request counts to redis cache total/per user/ parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true tags: - Inventory Entry security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryEntry' description: '' summary: Api inventory entry retrieve x-summary-source: derived put: operationId: apiInventoryEntryUpdate description: logs request counts to redis cache total/per user/ parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true tags: - Inventory Entry requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryEntry' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/InventoryEntry' multipart/form-data: schema: $ref: '#/components/schemas/InventoryEntry' required: true security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryEntry' description: '' summary: Api inventory entry update x-summary-source: derived patch: operationId: apiInventoryEntryPartialUpdate description: logs request counts to redis cache total/per user/ parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true tags: - Inventory Entry requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedInventoryEntry' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedInventoryEntry' multipart/form-data: schema: $ref: '#/components/schemas/PatchedInventoryEntry' security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryEntry' description: '' summary: Api inventory entry partial update x-summary-source: derived delete: operationId: apiInventoryEntryDestroy description: logs request counts to redis cache total/per user/ parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true tags: - Inventory Entry security: - ApiKeyAuth: [] responses: '204': description: No response body summary: Api inventory entry destroy x-summary-source: derived /api/inventory-entry/{id}/cascading/: get: operationId: apiInventoryEntryCascadingList description: get a paginated list of objects that will be cascaded (deleted) when deleting the selected object parameters: - in: query name: cache schema: type: boolean default: true description: If results can be cached or not - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - Inventory Entry security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedGenericModelReferenceList' description: '' summary: Api inventory entry cascading list x-summary-source: derived /api/inventory-entry/{id}/nulling/: get: operationId: apiInventoryEntryNullingList description: get a paginated list of objects where the selected object will be removed whe its deleted parameters: - in: query name: cache schema: type: boolean default: true description: If results can be cached or not - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - Inventory Entry security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedGenericModelReferenceList' description: '' summary: Api inventory entry nulling list x-summary-source: derived /api/inventory-entry/{id}/protecting/: get: operationId: apiInventoryEntryProtectingList description: get a paginated list of objects that are protecting the selected object form being deleted parameters: - in: query name: cache schema: type: boolean default: true description: If results can be cached or not - in: path name: id schema: type: integer description: A unique integer value identifying this inventory entry. required: true - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: page_size required: false in: query description: Number of results to return per page. schema: type: integer tags: - Inventory Entry security: - ApiKeyAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedGenericModelReferenceList' description: '' summary: Api inventory entry protecting list x-summary-source: derived components: schemas: SupermarketCategory: type: object description: "Moves `UniqueValidator`'s from the validation stage to the save stage.\nIt solves the problem with nested validation for unique fields on update.\n\nIf you want more details, you can read related issues and articles:\nhttps://github.com/beda-software/drf-writable-nested/issues/1\nhttp://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers\n\nExample of usage:\n```\n class Child(models.Model):\n field = models.CharField(unique=True)\n\n\nclass Parent(models.Model):\n child = models.ForeignKey('Child')\n\n\nclass ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Child\n\n\nclass ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):\n child = ChildSerializer()\n\n class Meta:\n model = Parent\n```\n\nNote: `UniqueFieldsMixin` must be applied only on the serializer\nwhich has unique fields.\n\nNote: When you are using both mixins\n(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)\nyou should put `UniqueFieldsMixin` ahead." properties: id: type: integer readOnly: false name: type: string maxLength: 128 minLength: 1 description: type: - string - 'null' open_data_slug: type: - string - 'null' maxLength: 128 required: - name Household: type: object description: Adds nested create feature properties: id: type: integer readOnly: false name: type: string maxLength: 128 created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true required: - created_at - name - updated_at FoodSimple: type: object properties: id: type: integer readOnly: false name: type: string maxLength: 128 minLength: 1 plural_name: type: - string - 'null' maxLength: 128 required: - name PaginatedGenericModelReferenceList: type: object required: - count - results properties: count: type: integer example: 123 next: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=4 previous: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/GenericModelReference' timestamp: type: string format: date-time FoodInheritField: type: object description: "Moves `UniqueValidator`'s from the validation stage to the save stage.\nIt solves the problem with nested validation for unique fields on update.\n\nIf you want more details, you can read related issues and articles:\nhttps://github.com/beda-software/drf-writable-nested/issues/1\nhttp://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers\n\nExample of usage:\n```\n class Child(models.Model):\n field = models.CharField(unique=True)\n\n\nclass Parent(models.Model):\n child = models.ForeignKey('Child')\n\n\nclass ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Child\n\n\nclass ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):\n child = ChildSerializer()\n\n class Meta:\n model = Parent\n```\n\nNote: `UniqueFieldsMixin` must be applied only on the serializer\nwhich has unique fields.\n\nNote: When you are using both mixins\n(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)\nyou should put `UniqueFieldsMixin` ahead." properties: id: type: integer readOnly: false name: type: - string - 'null' field: type: - string - 'null' required: [] Unit: type: object description: "Moves `UniqueValidator`'s from the validation stage to the save stage.\nIt solves the problem with nested validation for unique fields on update.\n\nIf you want more details, you can read related issues and articles:\nhttps://github.com/beda-software/drf-writable-nested/issues/1\nhttp://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers\n\nExample of usage:\n```\n class Child(models.Model):\n field = models.CharField(unique=True)\n\n\nclass Parent(models.Model):\n child = models.ForeignKey('Child')\n\n\nclass ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Child\n\n\nclass ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):\n child = ChildSerializer()\n\n class Meta:\n model = Parent\n```\n\nNote: `UniqueFieldsMixin` must be applied only on the serializer\nwhich has unique fields.\n\nNote: When you are using both mixins\n(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)\nyou should put `UniqueFieldsMixin` ahead." properties: id: type: integer readOnly: false name: type: string maxLength: 128 minLength: 1 plural_name: type: - string - 'null' maxLength: 128 description: type: - string - 'null' base_unit: type: - string - 'null' maxLength: 256 open_data_slug: type: - string - 'null' maxLength: 128 required: - name InventoryLocation: type: object description: "Moves `UniqueValidator`'s from the validation stage to the save stage.\nIt solves the problem with nested validation for unique fields on update.\n\nIf you want more details, you can read related issues and articles:\nhttps://github.com/beda-software/drf-writable-nested/issues/1\nhttp://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers\n\nExample of usage:\n```\n class Child(models.Model):\n field = models.CharField(unique=True)\n\n\nclass Parent(models.Model):\n child = models.ForeignKey('Child')\n\n\nclass ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Child\n\n\nclass ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):\n child = ChildSerializer()\n\n class Meta:\n model = Parent\n```\n\nNote: `UniqueFieldsMixin` must be applied only on the serializer\nwhich has unique fields.\n\nNote: When you are using both mixins\n(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)\nyou should put `UniqueFieldsMixin` ahead." properties: id: type: integer readOnly: false name: type: string maxLength: 64 is_freezer: type: boolean household: $ref: '#/components/schemas/Household' required: - household - name Property: type: object description: "Moves `UniqueValidator`'s from the validation stage to the save stage.\nIt solves the problem with nested validation for unique fields on update.\n\nIf you want more details, you can read related issues and articles:\nhttps://github.com/beda-software/drf-writable-nested/issues/1\nhttp://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers\n\nExample of usage:\n```\n class Child(models.Model):\n field = models.CharField(unique=True)\n\n\nclass Parent(models.Model):\n child = models.ForeignKey('Child')\n\n\nclass ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Child\n\n\nclass ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):\n child = ChildSerializer()\n\n class Meta:\n model = Parent\n```\n\nNote: `UniqueFieldsMixin` must be applied only on the serializer\nwhich has unique fields.\n\nNote: When you are using both mixins\n(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)\nyou should put `UniqueFieldsMixin` ahead." properties: id: type: integer readOnly: false property_amount: type: - number - 'null' format: double property_type: $ref: '#/components/schemas/PropertyType' required: - property_amount - property_type PatchedInventoryEntry: type: object description: Adds nested create feature properties: id: type: integer readOnly: false inventory_location: $ref: '#/components/schemas/InventoryLocation' sub_location: type: - string - 'null' maxLength: 64 code: type: - string - 'null' maxLength: 16 food: $ref: '#/components/schemas/Food' unit: $ref: '#/components/schemas/Unit' amount: type: number format: double exclusiveMinimum: -10000000000000000 exclusiveMaximum: 10000000000000000 expires: type: - string - 'null' format: date note: type: - string - 'null' maxLength: 256 label: type: string readOnly: true created_at: type: string format: date-time readOnly: true created_by: type: integer readOnly: true ShoppingList: type: object description: Adds nested create feature properties: id: type: integer readOnly: false name: type: string maxLength: 32 description: type: string color: type: - string - 'null' maxLength: 7 required: [] PaginatedInventoryEntryList: type: object required: - count - results properties: count: type: integer example: 123 next: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=4 previous: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/InventoryEntry' timestamp: type: string format: date-time RecipeSimple: type: object description: Adds nested create feature properties: id: type: integer readOnly: false name: type: string maxLength: 128 url: type: string readOnly: true required: - name - url InventoryEntry: type: object description: Adds nested create feature properties: id: type: integer readOnly: false inventory_location: $ref: '#/components/schemas/InventoryLocation' sub_location: type: - string - 'null' maxLength: 64 code: type: - string - 'null' maxLength: 16 food: $ref: '#/components/schemas/Food' unit: $ref: '#/components/schemas/Unit' amount: type: number format: double exclusiveMinimum: -10000000000000000 exclusiveMaximum: 10000000000000000 expires: type: - string - 'null' format: date note: type: - string - 'null' maxLength: 256 label: type: string readOnly: true created_at: type: string format: date-time readOnly: true created_by: type: integer readOnly: true required: - created_at - created_by - food - inventory_location - label - unit Food: type: object description: "Moves `UniqueValidator`'s from the validation stage to the save stage.\nIt solves the problem with nested validation for unique fields on update.\n\nIf you want more details, you can read related issues and articles:\nhttps://github.com/beda-software/drf-writable-nested/issues/1\nhttp://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers\n\nExample of usage:\n```\n class Child(models.Model):\n field = models.CharField(unique=True)\n\n\nclass Parent(models.Model):\n child = models.ForeignKey('Child')\n\n\nclass ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Child\n\n\nclass ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer):\n child = ChildSerializer()\n\n class Meta:\n model = Parent\n```\n\nNote: `UniqueFieldsMixin` must be applied only on the serializer\nwhich has unique fields.\n\nNote: When you are using both mixins\n(`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`)\nyou should put `UniqueFieldsMixin` ahead." properties: id: type: integer readOnly: false name: type: string maxLength: 128 minLength: 1 plural_name: type: - string - 'null' maxLength: 128 description: type: string shopping: type: string readOnly: true recipe: allOf: - $ref: '#/components/schemas/RecipeSimple' url: type: - string - 'null' maxLength: 1024 properties: type: - array - 'null' items: $ref: '#/components/schemas/Property' properties_food_amount: type: number format: double properties_food_unit: allOf: - $ref: '#/components/schemas/Unit' fdc_id: type: - integer - 'null' maximum: 2147483647 minimum: -2147483648 food_onhand: type: - boolean - 'null' supermarket_category: allOf: - $ref: '#/components/schemas/SupermarketCategory' parent: type: integer readOnly: true numchild: type: integer readOnly: true inherit_fields: type: - array - 'null' items: $ref: '#/components/schemas/FoodInheritField' full_name: type: string description: 'Returns a string representation of a tree node and it''s ancestors, e.g. ''Cuisine > Asian > Chinese > Catonese''.' readOnly: true ignore_shopping: type: boolean substitute: type: - array - 'null' items: $ref: '#/components/schemas/FoodSimple' substitute_siblings: type: boolean substitute_children: type: boolean substitute_onhand: type: boolean readOnly: true child_inherit_fields: type: - array - 'null' items: $ref: '#/components/schemas/FoodInheritField' open_data_slug: type: - string - 'null' maxLength: 128 shopping_lists: type: array items: $ref: '#/components/schemas/ShoppingList' required: - full_name - name - numchild - parent - shopping - substitute_onhand PropertyType: type: object description: Adds nested create feature properties: id: type: integer readOnly: false name: type: string maxLength: 128 unit: type: - string - 'null' maxLength: 64 description: type: - string - 'null' maxLength: 512 order: type: integer default: 0 open_data_slug: type: - string - 'null' maxLength: 128 fdc_id: type: - integer - 'null' maximum: 2147483647 minimum: -2147483648 required: - name GenericModelReference: type: object properties: id: type: integer readOnly: false model: type: string name: type: string required: - model - name securitySchemes: ApiKeyAuth: type: apiKey in: header name: Authorization