<?php

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

use Axtiva\FlexibleGraphql\Resolver\AutoGenerationInterface;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * if you want to extend it or change, then remove interface AutoGenerationInterface
 * and it will be managed by you, not axtiva/flexible-graphql-php code generator
 * PHP representation of graphql type DeviceManagementMutation
 */
final class DeviceManagementMutationType implements AutoGenerationInterface
{
    /**
     * Assign the selected devices to matching device groups.
     */
    public bool $assignDevicesToGroups;
    /**
     * Assign the selected devices to matching device groups as async call.
     */
    public ?DefaultProgressInfoType $assignDevicesToGroupsAsync = null;
    /**
     * Deletes a device. Returns <true> if succesfull.
The comment is being written to the device deletion log as deletion comment!
     */
    public bool $deleteDevice;
    /**
     * Deletes devices from the database. Returns a list of devices that could not be found or an empty list if succesfull. (sync call).
The comment is being written to the device deletion log as deletion comment!
     * @var null|iterable
     */
    public ?iterable $deleteDevices = null;
    /**
     * Deletes devices from the database. Returns a progress object that the client can poll for the task status. (async call)
The comment is being written to the device deletion log as deletion comment!
     */
    public ?DeviceDeletionProgressInfoType $deleteDevicesAsync = null;
    /**
     * disables a set of discovery protocols for the selected devices
     * @var null|iterable
     */
    public ?iterable $disableDiscoveryProtocols = null;
    /**
     * disables a set of discovery protocols for the selected devices
     */
    public ?DefaultProgressInfoType $disableDiscoveryProtocolsAsync = null;
    /**
     * Initiates a discovery for the given hostname or IP address. Upon failure, the response describes the reason.
     * @var null|iterable
     */
    public ?iterable $discoverNow = null;
    /**
     * Gets the credential management object which is used to modify acounts/passwords.
     */
    public ?DeviceCredentialManagementType $credentials = null;
}