# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from opera.api.openapi.models.base_model_ import Model
from opera.api.openapi.models.packaging_format import PackagingFormat
from opera.api.openapi import util

from opera.api.openapi.models.packaging_format import PackagingFormat  # noqa: E501

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

    Do not edit the class manually.
    """

    def __init__(self, output=None, format=None, service_template=None, service_template_folder=None):  # noqa: E501
        """PackagingInput - a model defined in OpenAPI

        :param output: The output of this PackagingInput.  # noqa: E501
        :type output: str
        :param format: The format of this PackagingInput.  # noqa: E501
        :type format: PackagingFormat
        :param service_template: The service_template of this PackagingInput.  # noqa: E501
        :type service_template: str
        :param service_template_folder: The service_template_folder of this PackagingInput.  # noqa: E501
        :type service_template_folder: str
        """
        self.openapi_types = {
            'output': str,
            'format': PackagingFormat,
            'service_template': str,
            'service_template_folder': str
        }

        self.attribute_map = {
            'output': 'output',
            'format': 'format',
            'service_template': 'service_template',
            'service_template_folder': 'service_template_folder'
        }

        self._output = output
        self._format = format
        self._service_template = service_template
        self._service_template_folder = service_template_folder

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

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

    @property
    def output(self):
        """Gets the output of this PackagingInput.


        :return: The output of this PackagingInput.
        :rtype: str
        """
        return self._output

    @output.setter
    def output(self, output):
        """Sets the output of this PackagingInput.


        :param output: The output of this PackagingInput.
        :type output: str
        """

        self._output = output

    @property
    def format(self):
        """Gets the format of this PackagingInput.


        :return: The format of this PackagingInput.
        :rtype: PackagingFormat
        """
        return self._format

    @format.setter
    def format(self, format):
        """Sets the format of this PackagingInput.


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

        self._format = format

    @property
    def service_template(self):
        """Gets the service_template of this PackagingInput.


        :return: The service_template of this PackagingInput.
        :rtype: str
        """
        return self._service_template

    @service_template.setter
    def service_template(self, service_template):
        """Sets the service_template of this PackagingInput.


        :param service_template: The service_template of this PackagingInput.
        :type service_template: str
        """

        self._service_template = service_template

    @property
    def service_template_folder(self):
        """Gets the service_template_folder of this PackagingInput.


        :return: The service_template_folder of this PackagingInput.
        :rtype: str
        """
        return self._service_template_folder

    @service_template_folder.setter
    def service_template_folder(self, service_template_folder):
        """Sets the service_template_folder of this PackagingInput.


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

        self._service_template_folder = service_template_folder
