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

1from typing import Annotated, Literal, Union 

2from uuid import UUID 

3 

4from pydantic import BaseModel, Field, Json 

5 

6 

7class ClientStreamResource(BaseModel): 

8 kind: Literal["client_stream"] = "client_stream" 

9 uuid: UUID 

10 x_jmp_content_encoding: str | None = None 

11 

12 

13class PresignedRequestResource(BaseModel): 

14 kind: Literal["presigned_request"] = "presigned_request" 

15 headers: dict[str, str] 

16 url: str 

17 method: Literal["GET", "PUT"] 

18 

19 

20Resource = Annotated[ 

21 Union[ClientStreamResource, PresignedRequestResource], 

22 Field(discriminator="kind"), 

23] 

24 

25 

26class ResourceMetadata(BaseModel): 

27 resource: Json[Resource] 

28 x_jmp_accept_encoding: str | None = None