from parallels.core.utils.entity import Entity


class Hosting(Entity):
    def __init__(
        self, domain_id, sys_user_id, certificate_id, ssi, ssi_html, php, php_handler_id, cgi, perl, python,
        asp, asp_dot_net, managed_runtime_version, ssl, webstat, write_modify, www_root, webdeploy, traffic_bandwidth,
        max_connection, fastcgi,
    ):
        self._domain_id = domain_id
        self._sys_user_id = sys_user_id
        self._certificate_id = certificate_id
        self._ssi = ssi
        self._ssi_html = ssi_html
        self._php = php
        self._php_handler_id = php_handler_id
        self._cgi = cgi
        self._perl = perl
        self._python = python
        self._asp = asp
        self._asp_dot_net = asp_dot_net
        self._managed_runtime_version = managed_runtime_version
        self._ssl = ssl
        self._webstat = webstat
        self._write_modify = write_modify
        self._www_root = www_root
        self._webdeploy = webdeploy
        self._traffic_bandwidth = traffic_bandwidth
        self._max_connection = max_connection
        self._fastcgi = fastcgi

    @property
    def domain_id(self):
        """
        :rtype: str | unicode
        """
        return self._domain_id

    @property
    def sys_user_id(self):
        """
        :rtype: str | unicode
        """
        return self._sys_user_id

    @property
    def certificate_id(self):
        """
        :rtype: str | unicode
        """
        return self._certificate_id

    @property
    def ssi(self):
        """
        :rtype: str | unicode
        """
        return self._ssi

    @property
    def ssi_html(self):
        """
        :rtype: str | unicode
        """
        return self._ssi_html

    @property
    def php(self):
        """
        :rtype: str | unicode
        """
        return self._php

    @property
    def php_handler_id(self):
        """
        :rtype: str | unicode
        """
        return self._php_handler_id

    @property
    def cgi(self):
        """
        :rtype: str | unicode
        """
        return self._cgi

    @property
    def perl(self):
        """
        :rtype: str | unicode
        """
        return self._perl

    @property
    def python(self):
        """
        :rtype: str | unicode
        """
        return self._python

    @property
    def asp(self):
        """
        :rtype: str | unicode
        """
        return self._asp

    @property
    def asp_dot_net(self):
        """
        :rtype: str | unicode
        """
        return self._asp_dot_net

    @property
    def managed_runtime_version(self):
        """
        :rtype: str | unicode
        """
        return self._managed_runtime_version

    @property
    def ssl(self):
        """
        :rtype: str | unicode
        """
        return self._ssl

    @property
    def webstat(self):
        """
        :rtype: str | unicode
        """
        return self._webstat

    @property
    def write_modify(self):
        """
        :rtype: str | unicode
        """
        return self._write_modify

    @property
    def www_root(self):
        """
        :rtype: str | unicode
        """
        return self._www_root

    @property
    def webdeploy(self):
        """
        :rtype: str | unicode
        """
        return self._webdeploy

    @property
    def traffic_bandwidth(self):
        """
        :rtype: str | unicode
        """
        return self._traffic_bandwidth

    @property
    def max_connection(self):
        """
        :rtype: str | unicode
        """
        return self._max_connection

    @property
    def fastcgi(self):
        """
        :rtype: str | unicode | None
        """
        return self._fastcgi
