Coverage for /Users/ajo/work/jumpstarter/jumpstarter/packages/jumpstarter/jumpstarter/common/resources.py: 100%
14 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:20 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:20 +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
12class PresignedRequestResource(BaseModel):
13 kind: Literal["presigned_request"] = "presigned_request"
14 headers: dict[str, str]
15 url: str
16 method: Literal["GET", "PUT"]
19Resource = Annotated[
20 Union[ClientStreamResource, PresignedRequestResource],
21 Field(discriminator="kind"),
22]
25class ResourceMetadata(BaseModel):
26 resource: Json[Resource]