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

from __future__ import annotations
from .v3_services_createservicerequest import (
    V3ServicesCreateServiceRequest,
    V3ServicesCreateServiceRequestTypedDict,
)
from .v3_services_serviceresponse import (
    V3ServicesServiceResponse,
    V3ServicesServiceResponseTypedDict,
)
from squadcast_sdk.types import BaseModel
from squadcast_sdk.utils import FieldMetadata, QueryParamMetadata, RequestMetadata
from typing_extensions import Annotated, TypedDict


class ServicesCreateServiceRequestTypedDict(TypedDict):
    owner_id: str
    v3_services_create_service_request: V3ServicesCreateServiceRequestTypedDict


class ServicesCreateServiceRequest(BaseModel):
    owner_id: Annotated[
        str, FieldMetadata(query=QueryParamMetadata(style="form", explode=False))
    ]

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


class ServicesCreateServiceBodyTypedDict(TypedDict):
    r"""The body type of the operation request or response."""

    data: V3ServicesServiceResponseTypedDict


class ServicesCreateServiceBody(BaseModel):
    r"""The body type of the operation request or response."""

    data: V3ServicesServiceResponse


class ServicesCreateServiceResponseTypedDict(TypedDict):
    r"""The request has succeeded and a new resource has been created as a result."""

    body: ServicesCreateServiceBodyTypedDict
    r"""The body type of the operation request or response."""


class ServicesCreateServiceResponse(BaseModel):
    r"""The request has succeeded and a new resource has been created as a result."""

    body: ServicesCreateServiceBody
    r"""The body type of the operation request or response."""
