<?php

declare (strict_types=1);
namespace idoit\Module\SyneticsJdisc\Graphql\Schema\Model;

use Axtiva\FlexibleGraphql\Type\InputType;

/**
 * This code is @generated by axtiva/flexible-graphql-php do not edit it
 * PHP representation of graphql type EventInput
 * A event object. * @property null|string $application = null The type of the event.
 * @property mixed $creationTime = null The creation timestamp of the event.
 * @property null|string $description = null The description for the event.
 * @property null|DiscoveryJobInputInputType $discoveryJob = null The job that an event belongs to.
 * @property mixed $eventTime = null The time when this event occurred.
 * @property null|EventTypeEnum $eventType = null The type of the event.
 * @property mixed $modificationTime = null The modification timestamp of the event.
 * @property null|EventSeverityEnum $severity = null The severity of the event.
 * @property null|string $subject = null The subject of the event.
 */
final class EventInputInputType extends InputType
{
    protected function decorate($name, $value)
    {
        if ($value === null) {
            return null;
        }

        if ($name === 'discoveryJob') {
            return new DiscoveryJobInputInputType($value);
        }

        if ($name === 'eventType') {
            return new EventTypeEnum($value);
        }

        if ($name === 'severity') {
            return new EventSeverityEnum($value);
        }

        return $value;
    }
}