Coverage for /Users/ajo/work/jumpstarter/jumpstarter/packages/jumpstarter/jumpstarter/common/resources.py: 100%
16 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-26 15:50 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-26 15:50 +0200
1from typing import Annotated, Literal, Union
2from uuid import UUID
4from pydantic import BaseModel, Field, Json
7class ClientStreamResource(BaseModel):
8 kind: Literal["client_stream"] = "client_stream"
9 uuid: UUID
10 x_jmp_content_encoding: str | None = None
13class PresignedRequestResource(BaseModel):
14 kind: Literal["presigned_request"] = "presigned_request"
15 headers: dict[str, str]
16 url: str
17 method: Literal["GET", "PUT"]
20Resource = Annotated[
21 Union[ClientStreamResource, PresignedRequestResource],
22 Field(discriminator="kind"),
23]
26class ResourceMetadata(BaseModel):
27 resource: Json[Resource]
28 x_jmp_accept_encoding: str | None = None