# generated by datamodel-codegen:
#   filename:  swagger.json
#   timestamp: 2023-03-19T19:24:29+00:00

from __future__ import annotations

from enum import Enum
from typing import List, Optional

import cherwell_pydantic_api.types as ct
from cherwell_pydantic_api.generated_api_utils import ApiBaseModel, HttpStatusCode


class GetStagesResponseStages(ApiBaseModel):
    id: Optional[str] = None
    isFinal: Optional[bool] = None
    name: Optional[str] = None


import cherwell_pydantic_api.types as ct


class GetStatusesResponseStatuses(ApiBaseModel):
    id: Optional[str] = None
    isInitial: Optional[bool] = None
    name: Optional[str] = None
    stageId: Optional[str] = None


import cherwell_pydantic_api.types as ct


class GetTransitionsResponseTransition(ApiBaseModel):
    id: Optional[str] = None
    name: Optional[str] = None
    fromStatusId: Optional[str] = None
    toStatusId: Optional[str] = None


import cherwell_pydantic_api.types as ct


class GetRecordStatusResponse(ApiBaseModel):
    id: Optional[str] = None
    name: Optional[str] = None
    errorCode: Optional[str] = None
    errorMessage: Optional[str] = None
    hasError: Optional[bool] = None
    httpStatusCode: Optional[HttpStatusCode] = None


import cherwell_pydantic_api.types as ct


class GetTransitionOptionsResponseTransition(ApiBaseModel):
    name: Optional[str] = None
    id: Optional[str] = None
    isAvailable: Optional[bool] = None
    criteria: Optional[List[str]] = None


import cherwell_pydantic_api.types as ct


class TransitionRecordRequest(ApiBaseModel):
    transitionOptionId: Optional[str] = None


import cherwell_pydantic_api.types as ct


class GetStagesResponse(ApiBaseModel):
    stages: Optional[List[GetStagesResponseStages]] = None
    errorCode: Optional[str] = None
    errorMessage: Optional[str] = None
    hasError: Optional[bool] = None
    httpStatusCode: Optional[HttpStatusCode] = None


import cherwell_pydantic_api.types as ct


class GetStatusesResponse(ApiBaseModel):
    statuses: Optional[List[GetStatusesResponseStatuses]] = None
    errorCode: Optional[str] = None
    errorMessage: Optional[str] = None
    hasError: Optional[bool] = None
    httpStatusCode: Optional[HttpStatusCode] = None


import cherwell_pydantic_api.types as ct


class GetTransitionsResponse(ApiBaseModel):
    transitions: Optional[List[GetTransitionsResponseTransition]] = None
    errorCode: Optional[str] = None
    errorMessage: Optional[str] = None
    hasError: Optional[bool] = None
    httpStatusCode: Optional[HttpStatusCode] = None


import cherwell_pydantic_api.types as ct


class GetTransitionOptionsResponse(ApiBaseModel):
    transitions: Optional[List[GetTransitionOptionsResponseTransition]] = None
    errorCode: Optional[str] = None
    errorMessage: Optional[str] = None
    hasError: Optional[bool] = None
    httpStatusCode: Optional[HttpStatusCode] = None
