docs: def set_os_workload_status(configs, required_interfaces, charm_func=None,
                             services=None, ports=None):
      """Set the state of the workload status for the charm.
  
      This calls _determine_os_workload_status() to get the new state, message
      and sets the status using status_set()
  
      @param configs: a templating.OSConfigRenderer() object
      @param required_interfaces: {generic: [specific, specific2, ...]}
      @param charm_func: a callable function that returns state, message. The
                         signature is charm_func(configs) -> (state, message)
      @param services: list of strings OR dictionary specifying services/ports
      @param ports: OPTIONAL list of port numbers.
      @returns state, message: the new workload status, user message
      """
      state, message = _determine_os_workload_status(
          configs, required_interfaces, charm_func, services, ports)
      status_set(state, message)