# 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.models.command import Command  # noqa: F401,E501
from apitax.api.models.user_auth import UserAuth  # noqa: F401,E501
from apitax.api import util


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

    Do not edit the class manually.
    """

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

        :param command: The command of this Execute.  # noqa: E501
        :type command: Command
        :param auth: The auth of this Execute.  # noqa: E501
        :type auth: UserAuth
        """
        self.swagger_types = {
            'command': Command,
            'auth': UserAuth
        }

        self.attribute_map = {
            'command': 'command',
            'auth': 'auth'
        }

        self._command = command
        self._auth = auth

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

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

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


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

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


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

        self._command = command

    @property
    def auth(self):
        """Gets the auth of this Execute.


        :return: The auth of this Execute.
        :rtype: UserAuth
        """
        return self._auth

    @auth.setter
    def auth(self, auth):
        """Sets the auth of this Execute.


        :param auth: The auth of this Execute.
        :type auth: UserAuth
        """

        self._auth = auth
