public function renderToggleInstanceFeature(ToggleInstanceFeatureCommand $command)
 {
     switch ($command->getFeature()) {
         case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS:
         case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS:
         case ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING:
         case ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING:
         case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS:
         case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS:
             if ($command->getEnabled() === true) {
                 $commandPrefix = 'START';
             } else {
                 $commandPrefix = 'STOP';
             }
             break;
         case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS:
         case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION:
         case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS:
         case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA:
             if ($command->getEnabled() === true) {
                 $commandPrefix = 'ENABLE';
             } else {
                 $commandPrefix = 'DISABLE';
             }
             break;
         default:
             throw new InvalidArgumentException($command->getFeature());
     }
     switch ($command->getFeature()) {
         case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS:
             $commandString = sprintf('%s_%s', $commandPrefix, 'EXECUTING_HOST_CHECKS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS:
             $commandString = sprintf('%s_%s', $commandPrefix, 'EXECUTING_SVC_CHECKS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS:
             $commandString = sprintf('%s_%s', $commandPrefix, 'EVENT_HANDLERS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION:
             $commandString = sprintf('%s_%s', $commandPrefix, 'FLAP_DETECTION');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS:
             $commandString = sprintf('%s_%s', $commandPrefix, 'NOTIFICATIONS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING:
             $commandString = sprintf('%s_%s', $commandPrefix, 'OBSESSING_OVER_HOST_CHECKS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING:
             $commandString = sprintf('%s_%s', $commandPrefix, 'OBSESSING_OVER_SVC_CHECKS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS:
             $commandString = sprintf('%s_%s', $commandPrefix, 'ACCEPTING_PASSIVE_HOST_CHECKS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS:
             $commandString = sprintf('%s_%s', $commandPrefix, 'ACCEPTING_PASSIVE_SVC_CHECKS');
             break;
         case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA:
             $commandString = sprintf('%s_%s', $commandPrefix, 'PERFORMANCE_DATA');
             break;
         default:
             throw new InvalidArgumentException($command->getFeature());
     }
     return $commandString;
 }
 public function renderToggleInstanceFeature(ToggleInstanceFeatureCommand $command)
 {
     $endpoint = 'objects/icingaapplications/' . $this->getApp();
     if ($command->getEnabled() === true) {
         $enabled = true;
     } else {
         $enabled = false;
     }
     switch ($command->getFeature()) {
         case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS:
             $attr = 'enable_host_checks';
             break;
         case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS:
             $attr = 'enable_service_checks';
             break;
         case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS:
             $attr = 'enable_event_handlers';
             break;
         case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION:
             $attr = 'enable_flapping';
             break;
         case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS:
             $attr = 'enable_notifications';
             break;
         case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA:
             $attr = 'enable_perfdata';
             break;
         default:
             throw new InvalidArgumentException($command->getFeature());
     }
     $data = array('attrs' => array($attr => $enabled));
     return IcingaApiCommand::create($endpoint, $data);
 }