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

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 

11 

12class PresignedRequestResource(BaseModel): 

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

14 headers: dict[str, str] 

15 url: str 

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

17 

18 

19Resource = Annotated[ 

20 Union[ClientStreamResource, PresignedRequestResource], 

21 Field(discriminator="kind"), 

22] 

23 

24 

25class ResourceMetadata(BaseModel): 

26 resource: Json[Resource]