text: """
  Auto-generated class for StorageServer
  """
  from .EnumStorageServerStatus import EnumStorageServerStatus
  
  from . import client_support
  
  
  class StorageServer(object):
      """
      auto-generated. don't touch.
      """
  
      @staticmethod
      def create(container, id, ip, port, status):
          """
          :type container: str
          :type id: int
          :type ip: str
          :type port: int
          :type status: EnumStorageServerStatus
          :rtype: StorageServer
          """
  
          return StorageServer(
              container=container,
              id=id,
              ip=ip,
              port=port,
              status=status,
          )
  
      def __init__(self, json=None, **kwargs):
          if json is None and not kwargs:
              raise ValueError('No data or kwargs present')
  
          class_name = 'StorageServer'
          create_error = '{cls}: unable to create {prop} from value: {val}: {err}'
          required_error = '{cls}: missing required property {prop}'
  
          data = json or kwargs
  
          property_name = 'container'
          val = data.get(property_name)
          if val is not None:
              datatypes = [str]
              try:
                  self.container = client_support.val_factory(val, datatypes)
              except ValueError as err:
                  raise ValueError(create_error.format(cls=class_name, prop=property_name, val=val, err=err))
          else:
              raise ValueError(required_error.format(cls=class_name, prop=property_name))
  
          property_name = 'id'
          val = data.get(property_name)
          if val is not None:
              datatypes = [int]
              try:
                  self.id = client_support.val_factory(val, datatypes)
              except ValueError as err:
                  raise ValueError(create_error.format(cls=class_name, prop=property_name, val=val, err=err))
          else:
              raise ValueError(required_error.format(cls=class_name, prop=property_name))
  
          property_name = 'ip'
          val = data.get(property_name)
          if val is not None:
              datatypes = [str]
              try:
                  self.ip = client_support.val_factory(val, datatypes)
              except ValueError as err:
                  raise ValueError(create_error.format(cls=class_name, prop=property_name, val=val, err=err))
          else:
              raise ValueError(required_error.format(cls=class_name, prop=property_name))
  
          property_name = 'port'
          val = data.get(property_name)
          if val is not None:
              datatypes = [int]
              try:
                  self.port = client_support.val_factory(val, datatypes)
              except ValueError as err:
                  raise ValueError(create_error.format(cls=class_name, prop=property_name, val=val, err=err))
          else:
              raise ValueError(required_error.format(cls=class_name, prop=property_name))
  
          property_name = 'status'
          val = data.get(property_name)
          if val is not None:
              datatypes = [EnumStorageServerStatus]
              try:
                  self.status = client_support.val_factory(val, datatypes)
              except ValueError as err:
                  raise ValueError(create_error.format(cls=class_name, prop=property_name, val=val, err=err))
          else:
              raise ValueError(required_error.format(cls=class_name, prop=property_name))
  
      def __str__(self):
          return self.as_json(indent=4)
  
      def as_json(self, indent=0):
          return client_support.to_json(self, indent=indent)
  
      def as_dict(self):
          return client_support.to_dict(self)
  