# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init


class SearchTestRequestBody(object):
    _types = {
        "application_id_list": List[str],
        "test_start_time_min": str,
        "test_start_time_max": str,
    }

    def __init__(self, d=None):
        self.application_id_list: Optional[List[str]] = None
        self.test_start_time_min: Optional[str] = None
        self.test_start_time_max: Optional[str] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "SearchTestRequestBodyBuilder":
        return SearchTestRequestBodyBuilder()


class SearchTestRequestBodyBuilder(object):
    def __init__(self) -> None:
        self._search_test_request_body = SearchTestRequestBody()

    def application_id_list(self, application_id_list: List[str]) -> "SearchTestRequestBodyBuilder":
        self._search_test_request_body.application_id_list = application_id_list
        return self

    def test_start_time_min(self, test_start_time_min: str) -> "SearchTestRequestBodyBuilder":
        self._search_test_request_body.test_start_time_min = test_start_time_min
        return self

    def test_start_time_max(self, test_start_time_max: str) -> "SearchTestRequestBodyBuilder":
        self._search_test_request_body.test_start_time_max = test_start_time_max
        return self

    def build(self) -> "SearchTestRequestBody":
        return self._search_test_request_body
