# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
# pylint: disable=useless-super-delegation

from typing import Any, Mapping, overload

from .._utils.model_base import Model as _Model, rest_field


class ClientModel(_Model):
    """ClientModel.

    :ivar default_name: Pass in true. Required.
    :vartype default_name: bool
    """

    default_name: bool = rest_field(name="defaultName", visibility=["read", "create", "update", "delete", "query"])
    """Pass in true. Required."""

    @overload
    def __init__(
        self,
        *,
        default_name: bool,
    ) -> None: ...

    @overload
    def __init__(self, mapping: Mapping[str, Any]) -> None:
        """
        :param mapping: raw JSON to initialize the model.
        :type mapping: Mapping[str, Any]
        """

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        super().__init__(*args, **kwargs)


class ClientNameAndJsonEncodedNameModel(_Model):
    """ClientNameAndJsonEncodedNameModel.

    :ivar client_name: Pass in true. Required.
    :vartype client_name: bool
    """

    client_name: bool = rest_field(name="wireName", visibility=["read", "create", "update", "delete", "query"])
    """Pass in true. Required."""

    @overload
    def __init__(
        self,
        *,
        client_name: bool,
    ) -> None: ...

    @overload
    def __init__(self, mapping: Mapping[str, Any]) -> None:
        """
        :param mapping: raw JSON to initialize the model.
        :type mapping: Mapping[str, Any]
        """

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        super().__init__(*args, **kwargs)


class ClientNameModel(_Model):
    """ClientNameModel.

    :ivar client_name: Pass in true. Required.
    :vartype client_name: bool
    """

    client_name: bool = rest_field(name="defaultName", visibility=["read", "create", "update", "delete", "query"])
    """Pass in true. Required."""

    @overload
    def __init__(
        self,
        *,
        client_name: bool,
    ) -> None: ...

    @overload
    def __init__(self, mapping: Mapping[str, Any]) -> None:
        """
        :param mapping: raw JSON to initialize the model.
        :type mapping: Mapping[str, Any]
        """

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        super().__init__(*args, **kwargs)


class LanguageClientNameModel(_Model):
    """LanguageClientNameModel.

    :ivar python_name: Pass in true. Required.
    :vartype python_name: bool
    """

    python_name: bool = rest_field(name="defaultName", visibility=["read", "create", "update", "delete", "query"])
    """Pass in true. Required."""

    @overload
    def __init__(
        self,
        *,
        python_name: bool,
    ) -> None: ...

    @overload
    def __init__(self, mapping: Mapping[str, Any]) -> None:
        """
        :param mapping: raw JSON to initialize the model.
        :type mapping: Mapping[str, Any]
        """

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        super().__init__(*args, **kwargs)


class PythonModel(_Model):
    """PythonModel.

    :ivar default_name: Pass in true. Required.
    :vartype default_name: bool
    """

    default_name: bool = rest_field(name="defaultName", visibility=["read", "create", "update", "delete", "query"])
    """Pass in true. Required."""

    @overload
    def __init__(
        self,
        *,
        default_name: bool,
    ) -> None: ...

    @overload
    def __init__(self, mapping: Mapping[str, Any]) -> None:
        """
        :param mapping: raw JSON to initialize the model.
        :type mapping: Mapping[str, Any]
        """

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        super().__init__(*args, **kwargs)
