docs: def send_event(self, action, properties, event_severity=EVENT_SEVERITY):
          """
          send css_event and if fails send custom_event instead
          Args:
              action (ACTIONS): the action causing the event
              properties (dict): the action additional properties
              event_severity (string): the event severity
          Raises:
              XCLIError: if the xcli.cmd.custom_event failed
              KeyError: if action wasn't predefined
              TypeError: if properties is not None or dict
          """
          # verify properties
          event_properties = dict() if (properties is None) else properties
          if type(event_properties) is not dict:
              raise TypeError('properties is not dict')
  
          # prepare event
          event_bunch = Bunch(
              Product=self.product_name,
              Version=self.product_version,
              Server=self.server_name,
              Platform=self.platform,
              Action=action,
              Properties=event_properties)
          event_description = self._get_description_prefix() + \
              json.dumps(event_bunch)
  
          use_custom_event = True
          if CSS_PRODUCT_EVENT in dir(self.xcli.cmd):
              try:
                  # send css product event
                  log.debug("sending css_product_event "
                            "description=%s severity=%s",
                            event_description, event_severity)
                  self.xcli.cmd.css_product_event(severity=event_severity,
                                                  product=self.product_name,
                                                  version=self.product_version,
                                                  server=self.server_name,
                                                  platform=self.platform,
                                                  action=action,
                                                  properties=event_properties)
                  use_custom_event = False
              except (UnrecognizedCommandError,
                      OperationForbiddenForUserCategoryError):
                  log.warning("failed css_product_event "
                              "description=%s severity=%s",
                              event_description, event_severity)
          if use_custom_event:
              # send custom event
              log.debug("sending custom_event description=%s severity=%s",
                        event_description, event_severity)
              self.xcli.cmd.custom_event(
                  description=event_description, severity=event_severity)