# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class Parameter(Model):
    """Parameter.

    :param name:
    :type name: str
    :param documentation:
    :type documentation: str
    :param default_value:
    :type default_value: str
    :param is_optional:
    :type is_optional: bool
    :param min_max_rules:
    :type min_max_rules: list[~designer.models.MinMaxParameterRule]
    :param enum_rules:
    :type enum_rules: list[~designer.models.EnumParameterRule]
    :param type: Possible values include: 'Int', 'Double', 'Bool', 'String',
     'Undefined'
    :type type: str or ~designer.models.ParameterType
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'documentation': {'key': 'documentation', 'type': 'str'},
        'default_value': {'key': 'defaultValue', 'type': 'str'},
        'is_optional': {'key': 'isOptional', 'type': 'bool'},
        'min_max_rules': {'key': 'minMaxRules', 'type': '[MinMaxParameterRule]'},
        'enum_rules': {'key': 'enumRules', 'type': '[EnumParameterRule]'},
        'type': {'key': 'type', 'type': 'str'},
    }

    def __init__(self, *, name: str=None, documentation: str=None, default_value: str=None, is_optional: bool=None, min_max_rules=None, enum_rules=None, type=None, **kwargs) -> None:
        super(Parameter, self).__init__(**kwargs)
        self.name = name
        self.documentation = documentation
        self.default_value = default_value
        self.is_optional = is_optional
        self.min_max_rules = min_max_rules
        self.enum_rules = enum_rules
        self.type = type
