<?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 a set of preview data for the given custom report configuration.

Required permissions: ViewData
     */
    public ?SqlQueryResultType $checkSqlQuery = null;
    /**
     * Get a set of preview data for the given custom report configuration.

Required permissions: ViewData
     */
    public ?string $constructCustomReportSummary = null;
    /**
     * Gets the custom report description

Required permissions: ViewData
     */
    public ?CustomReportDescriptionType $customReportDescription = null;
    /**
     * Gets the custom report elements tree

Required permissions: ViewData
     */
    public ?CustomReportElementsTreeType $customReportElementsTree = null;
    /**
     * Gets the custom reports

Required permissions: ViewData
     */
    public ?CustomReportInfoType $customReports = null;
    /**
     * Gets the custom reports tree

Required permissions: ViewData
     */
    public ?CustomReportsTreeType $customReportsTree = null;
    /**
     * Gets all device types

Required permissions: ViewData
     */
    public ?DeviceTypesTreeType $allDeviceTypesTree = null;
    /**
     * Gets all field descriptions.

Required permissions: ViewData
     * @var null|iterable
     */
    public ?iterable $fieldDescriptions = null;
    /**
     * Get the device group tree.

Required permissions: ViewData
     */
    public ?string $groupTree = null;
    /**
     * Gets module-aware device types.

Required permissions: ViewData
     * @var null|iterable|DeviceTypeEnum[]
     */
    public ?iterable $moduleAwareDeviceTypes = null;
    /**
     * Gets the interface to get details for report actions (used usually internally from the WEB UI

Required permissions: ViewData
     */
    public ?ReportActionsType $reportActions = null;
    /**
     * Gets the reporting filter object

Required permissions: ViewData
     */
    public ?ReportingFilterType $reportingFilter = null;
    /**
     * Get the values for a scalar report.

Required permissions: ViewData
     */
    public ?ScalarResultType $scalarData = null;
    /**
     * Queries for scheduled reporting

Required permissions: ViewData
     */
    public ?ScheduledReportingType $scheduledReporting = null;
    /**
     * Get the supported filter operators for the given custom report data field.

Required permissions: ViewData
     * @var null|iterable|OperatorEnum[]
     */
    public ?iterable $supportedOperators = null;
    /**
     * Gets device types for switches.

Required permissions: ViewData
     * @var null|iterable|DeviceTypeEnum[]
     */
    public ?iterable $switchDeviceTypes = null;
    /**
     * Get the values for the given report description.

Required permissions: ViewData
     */
    public ?TableResultType $tableData = null;
    /**
     * Get the values for a tree report.

Required permissions: ViewData
     */
    public ?TreeResultType $treeData = null;
    /**
     * Get a set of preview data for the given custom report configuration.

Required permissions: ViewData
     */
    public ?TableResultType $previewCustomReportData = null;
    /**
     * Removes the cache for a cached report. Returns true, when the cache id has been found. Otherwise, false.

Required permissions: ViewData
     */
    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, ...).

Required permissions: ViewData
     */
    public ?ReportDescriptionInterface $reportDescription = null;
    /**
     * Get a table report description for a specific report id and filters

Required permissions: ViewData
     */
    public ?ScalarReportDescriptionType $scalarReportDescription = null;
    /**
     * Get a table report description for a specific report id and filters

Required permissions: ViewData
     */
    public ?TableReportDescriptionType $tableReportDescription = null;
    /**
     * Get a tree report description for a specific report id and filters

Required permissions: ViewData
     */
    public ?TreeReportDescriptionType $treeReportDescription = null;
}