# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from openapi_server.models.base_model_ import Model
from openapi_server import util


class UploadForm(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, additional_metadata=None, file=None):  # noqa: E501
        """UploadForm - a model defined in OpenAPI

        :param additional_metadata: The additional_metadata of this UploadForm.  # noqa: E501
        :type additional_metadata: str
        :param file: The file of this UploadForm.  # noqa: E501
        :type file: file
        """
        self.openapi_types = {
            'additional_metadata': str,
            'file': file
        }

        self.attribute_map = {
            'additional_metadata': 'additionalMetadata',
            'file': 'file'
        }

        self._additional_metadata = additional_metadata
        self._file = file

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

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

    @property
    def additional_metadata(self):
        """Gets the additional_metadata of this UploadForm.

        Additional data to pass to server  # noqa: E501

        :return: The additional_metadata of this UploadForm.
        :rtype: str
        """
        return self._additional_metadata

    @additional_metadata.setter
    def additional_metadata(self, additional_metadata):
        """Sets the additional_metadata of this UploadForm.

        Additional data to pass to server  # noqa: E501

        :param additional_metadata: The additional_metadata of this UploadForm.
        :type additional_metadata: str
        """

        self._additional_metadata = additional_metadata

    @property
    def file(self):
        """Gets the file of this UploadForm.

        file to upload  # noqa: E501

        :return: The file of this UploadForm.
        :rtype: file
        """
        return self._file

    @file.setter
    def file(self, file):
        """Sets the file of this UploadForm.

        file to upload  # noqa: E501

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

        self._file = file
