# 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 import util


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

    Do not edit the class manually.
    """

    def __init__(self, service_template=None, content_root=None, inputs=None, status=None, csar_metadata=None, service_template_metadata=None, csar_valid=None):  # noqa: E501
        """Info - a model defined in OpenAPI

        :param service_template: The service_template of this Info.  # noqa: E501
        :type service_template: str
        :param content_root: The content_root of this Info.  # noqa: E501
        :type content_root: str
        :param inputs: The inputs of this Info.  # noqa: E501
        :type inputs: object
        :param status: The status of this Info.  # noqa: E501
        :type status: str
        :param csar_metadata: The csar_metadata of this Info.  # noqa: E501
        :type csar_metadata: object
        :param service_template_metadata: The service_template_metadata of this Info.  # noqa: E501
        :type service_template_metadata: object
        :param csar_valid: The csar_valid of this Info.  # noqa: E501
        :type csar_valid: bool
        """
        self.openapi_types = {
            'service_template': str,
            'content_root': str,
            'inputs': object,
            'status': str,
            'csar_metadata': object,
            'service_template_metadata': object,
            'csar_valid': bool
        }

        self.attribute_map = {
            'service_template': 'service_template',
            'content_root': 'content_root',
            'inputs': 'inputs',
            'status': 'status',
            'csar_metadata': 'csar_metadata',
            'service_template_metadata': 'service_template_metadata',
            'csar_valid': 'csar_valid'
        }

        self._service_template = service_template
        self._content_root = content_root
        self._inputs = inputs
        self._status = status
        self._csar_metadata = csar_metadata
        self._service_template_metadata = service_template_metadata
        self._csar_valid = csar_valid

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

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

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


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

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


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

        self._service_template = service_template

    @property
    def content_root(self):
        """Gets the content_root of this Info.


        :return: The content_root of this Info.
        :rtype: str
        """
        return self._content_root

    @content_root.setter
    def content_root(self, content_root):
        """Sets the content_root of this Info.


        :param content_root: The content_root of this Info.
        :type content_root: str
        """

        self._content_root = content_root

    @property
    def inputs(self):
        """Gets the inputs of this Info.


        :return: The inputs of this Info.
        :rtype: object
        """
        return self._inputs

    @inputs.setter
    def inputs(self, inputs):
        """Sets the inputs of this Info.


        :param inputs: The inputs of this Info.
        :type inputs: object
        """

        self._inputs = inputs

    @property
    def status(self):
        """Gets the status of this Info.


        :return: The status of this Info.
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this Info.


        :param status: The status of this Info.
        :type status: str
        """

        self._status = status

    @property
    def csar_metadata(self):
        """Gets the csar_metadata of this Info.


        :return: The csar_metadata of this Info.
        :rtype: object
        """
        return self._csar_metadata

    @csar_metadata.setter
    def csar_metadata(self, csar_metadata):
        """Sets the csar_metadata of this Info.


        :param csar_metadata: The csar_metadata of this Info.
        :type csar_metadata: object
        """

        self._csar_metadata = csar_metadata

    @property
    def service_template_metadata(self):
        """Gets the service_template_metadata of this Info.


        :return: The service_template_metadata of this Info.
        :rtype: object
        """
        return self._service_template_metadata

    @service_template_metadata.setter
    def service_template_metadata(self, service_template_metadata):
        """Sets the service_template_metadata of this Info.


        :param service_template_metadata: The service_template_metadata of this Info.
        :type service_template_metadata: object
        """

        self._service_template_metadata = service_template_metadata

    @property
    def csar_valid(self):
        """Gets the csar_valid of this Info.


        :return: The csar_valid of this Info.
        :rtype: bool
        """
        return self._csar_valid

    @csar_valid.setter
    def csar_valid(self, csar_valid):
        """Sets the csar_valid of this Info.


        :param csar_valid: The csar_valid of this Info.
        :type csar_valid: bool
        """

        self._csar_valid = csar_valid
