# generated by datamodel-codegen:
#   filename:  stable-surface.yaml
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from pydantic import BaseModel, EmailStr, Field, RootModel


class OpenApiDecorated(BaseModel):
    openapiId: str | None = None


class WrapperWithoutFormat(BaseModel):
    wrapped: bool | None = None


class User(BaseModel):
    id: str
    email: EmailStr | None = None


class UserCreatedHeaders(BaseModel):
    traceId: str
    attempt: int | None = None


class UserCreatedTraitHttpHeaders(BaseModel):
    x_trait: str | None = Field(None, alias='x-trait')


class UserCreatedKafkaKey(BaseModel):
    key: str


class UserCreatedHttpHeaders(BaseModel):
    content_type: str = Field(..., alias='content-type')


class UserCreatedAckPayload(BaseModel):
    accepted: bool
    reason: str | None = None


class HeaderWithTraitBindingPayload(BaseModel):
    value: str | None = None


class HeaderWithTraitBindingHeaders(BaseModel):
    directHeader: str | None = None


class HeaderWithTraitBindingTraitKafkaKey(BaseModel):
    traitKey: str | None = None


class BindingRefMessagePayload(BaseModel):
    refValue: str | None = None


class BindingRefMessageHttpHeaders(BaseModel):
    protocolMessageHeader: str | None = None


class UserId(RootModel[str]):
    root: str


class UserLifecycleEventShard(BaseModel):
    shardId: str


class UserLifecycleWebsocketsQuery(BaseModel):
    token: str


class UserLifecycleWebsocketsHeaders(BaseModel):
    x_request_id: str | None = Field(None, alias='x-request-id')


class WebsocketBindingWebsocketsQuery(BaseModel):
    bindingRefToken: str | None = None


class WebsocketBindingWebsocketsHeaders(BaseModel):
    bindingRefHeader: str | None = None


class ReceiveUserCreatedTraitHttpQuery(BaseModel):
    traitQuery: str | None = None


class ReceiveUserCreatedHttpQuery(BaseModel):
    consumer: str


class ReceiveUserCreatedKafkaGroupId(BaseModel):
    group: str


class ReceiveUserCreatedKafkaClientId(BaseModel):
    client: str | None = None


class BindingRefOperationHttpQuery(BaseModel):
    protocolRefQuery: str | None = None


class UserCreatedPayload(BaseModel):
    eventId: str
    user: User
