"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from lambdadb.types import BaseModel
from lambdadb.utils import (
    FieldMetadata,
    PathParamMetadata,
    RequestMetadata,
    SecurityMetadata,
)
import pydantic
from typing_extensions import Annotated, TypedDict


class UpdateProjectSecurityTypedDict(TypedDict):
    admin_api_key: str


class UpdateProjectSecurity(BaseModel):
    admin_api_key: Annotated[
        str,
        FieldMetadata(
            security=SecurityMetadata(
                scheme=True,
                scheme_type="apiKey",
                sub_type="header",
                field_name="x-api-key",
            )
        ),
    ]


class UpdateProjectRequestBodyTypedDict(TypedDict):
    rate_limit: float


class UpdateProjectRequestBody(BaseModel):
    rate_limit: Annotated[float, pydantic.Field(alias="rateLimit")]


class UpdateProjectRequestTypedDict(TypedDict):
    project_name: str
    r"""Project name."""
    request_body: UpdateProjectRequestBodyTypedDict


class UpdateProjectRequest(BaseModel):
    project_name: Annotated[
        str,
        pydantic.Field(alias="projectName"),
        FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
    ]
    r"""Project name."""

    request_body: Annotated[
        UpdateProjectRequestBody,
        FieldMetadata(request=RequestMetadata(media_type="application/json")),
    ]
