# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from apitax.api.models.base_model_ import Model
from apitax.api import util


class Command(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    def __init__(self, parameters=None, options=None, command=None):  # noqa: E501
        """Command - a model defined in Swagger

        :param parameters: The parameters of this Command.  # noqa: E501
        :type parameters: object
        :param options: The options of this Command.  # noqa: E501
        :type options: object
        :param command: The command of this Command.  # noqa: E501
        :type command: str
        """
        self.swagger_types = {
            'parameters': object,
            'options': object,
            'command': str
        }

        self.attribute_map = {
            'parameters': 'parameters',
            'options': 'options',
            'command': 'command'
        }

        self._parameters = parameters
        self._options = options
        self._command = command

    @classmethod
    def from_dict(cls, dikt):
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The Command of this Command.  # noqa: E501
        :rtype: Command
        """
        return util.deserialize_model(dikt, cls)

    @property
    def parameters(self):
        """Gets the parameters of this Command.


        :return: The parameters of this Command.
        :rtype: object
        """
        return self._parameters

    @parameters.setter
    def parameters(self, parameters):
        """Sets the parameters of this Command.


        :param parameters: The parameters of this Command.
        :type parameters: object
        """

        self._parameters = parameters

    @property
    def options(self):
        """Gets the options of this Command.


        :return: The options of this Command.
        :rtype: object
        """
        return self._options

    @options.setter
    def options(self, options):
        """Sets the options of this Command.


        :param options: The options of this Command.
        :type options: object
        """
        if options is None:
            raise ValueError("Invalid value for `options`, must not be `None`")  # noqa: E501

        self._options = options

    @property
    def command(self):
        """Gets the command of this Command.


        :return: The command of this Command.
        :rtype: str
        """
        return self._command

    @command.setter
    def command(self, command):
        """Sets the command of this Command.


        :param command: The command of this Command.
        :type command: str
        """
        if command is None:
            raise ValueError("Invalid value for `command`, must not be `None`")  # noqa: E501

        self._command = command
