<?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 Reporting
 * Queries about reports and their descriptions */
final class ReportingType implements AutoGenerationInterface
{
    /**
     * Get the values for a custom report.
     */
    public ?TableResultType $customReportData = null;
    /**
     * Gets the custom report description
     */
    public ?CustomReportDescriptionType $customReportDescription = null;
    /**
     * Gets the custom report elements tree
     */
    public ?CustomReportElementsTreeType $customReportElementsTree = null;
    /**
     * Gets the custom reports
     */
    public ?CustomReportInfoType $customReports = null;
    /**
     * Gets the custom reports tree
     */
    public ?CustomReportsTreeType $customReportsTree = null;
    /**
     * Gets all field descriptions.
     * @var null|iterable
     */
    public ?iterable $fieldDescriptions = null;
    /**
     * Gets module-aware device types.
     * @var null|iterable|DeviceTypeEnum[]
     */
    public ?iterable $moduleAwareDeviceTypes = null;
    /**
     * Gets the interface to get details for report actions (used usually internally from the WEB UI
     */
    public ?ReportActionsType $reportActions = null;
    /**
     * Gets the reporting filter object
     */
    public ?ReportingFilterType $reportingFilter = null;
    /**
     * Get the values for a scalar report.
     */
    public ?ScalarResultType $scalarData = null;
    /**
     * Gets device types for switches.
     * @var null|iterable|DeviceTypeEnum[]
     */
    public ?iterable $switchDeviceTypes = null;
    /**
     * Get the values for a table report.
     */
    public ?TableResultType $tableData = null;
    /**
     * Get the values for a tree report.
     */
    public ?TreeResultType $treeData = null;
    /**
     * Removes the cache for a cached report. Returns true, when the cache id has been found. Otherwise, false.
     */
    public bool $removeCachedReport;
    /**
     * Get a report description for a specific report id and filters.
This call can return any type of report description (table, scalar, ...).
     */
    public ?ReportDescriptionInterface $reportDescription = null;
    /**
     * Get a table report description for a specific report id and filters
     */
    public ?ScalarReportDescriptionType $scalarReportDescription = null;
    /**
     * Get a table report description for a specific report id and filters
     */
    public ?TableReportDescriptionType $tableReportDescription = null;
    /**
     * Get a tree report description for a specific report id and filters
     */
    public ?TreeReportDescriptionType $treeReportDescription = null;
}