# Generated by smithplates HTTP codegen. Do not edit.
from typing import Annotated, Protocol  # noqa: F401

from generated.example.conflict import Conflict
from generated.example.item_details import ItemDetails
from generated.example.service_unavailable import ServiceUnavailable
from generated.example.shelf_item_output import ShelfItemOutput
from generated.example.shelf_sku_output import ShelfSkuOutput
from pydantic import Field  # noqa: F401


class WarehouseApiServiceProtocol(Protocol):
    async def assign_shelf_sku(
        self,
        request_id: str | None,
        shelf_id: str,
        sku: str,
    ) -> ShelfSkuOutput:
        """POST with @httpHeader, one @httpLabel, and a primitive payload body member."""

    async def create_shelf_item(
        self,
        idempotency_key: str | None,
        warehouse_id: str,
        shelf_id: str,
        details: ItemDetails,
    ) -> ShelfItemOutput | Conflict | ServiceUnavailable:
        """POST with @httpHeader, @httpLabel path labels, and a nested structure @httpPayload body."""
