"""
This file is generated by generator/run.py based on the Chrome DevTools Protocol.

Provides access to log entries.
https://chromedevtools.github.io/devtools-protocol/tot/Log/

***************************************************
                    Methods
***************************************************
"""
from __future__ import annotations

from cdpkit.protocol._types import (
    Log,
)
from cdpkit.protocol.base import CDPMethod, InputModel


class Clear(CDPMethod[None]):
    """ Clears the log. """

    INPUT_VALIDATOR = None
    OUTPUT_VALIDATOR = None


class Disable(CDPMethod[None]):
    """ Disables log domain, prevents further log entries from being reported to the client. """

    INPUT_VALIDATOR = None
    OUTPUT_VALIDATOR = None


class Enable(CDPMethod[None]):
    """ Enables log domain, sends the entries collected so far to the client by means of the
    `entryAdded` notification. """

    INPUT_VALIDATOR = None
    OUTPUT_VALIDATOR = None


class StartViolationsReportInput(InputModel):

    config: list[Log.ViolationSetting]


class StartViolationsReport(CDPMethod[None]):
    """ start violation reporting. """

    INPUT_VALIDATOR = StartViolationsReportInput
    OUTPUT_VALIDATOR = None

    def __init__(
        self,
        *,
        config: list[Log.ViolationSetting]
    ):
        super().__init__(
            config=config
        )


class StopViolationsReport(CDPMethod[None]):
    """ Stop violation reporting. """

    INPUT_VALIDATOR = None
    OUTPUT_VALIDATOR = None
