import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Report Definition resource in Oracle Cloud Infrastructure Data Safe service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-safe/latest/ReportDefinition
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datasafe
 *
 * Creates a new report definition with parameters specified in the body. The report definition is stored in the specified compartment.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testReportDefinition = new oci.datasafe.ReportDefinition("test_report_definition", {
 *     columnFilters: [{
 *         expressions: reportDefinitionColumnFiltersExpressions,
 *         fieldName: reportDefinitionColumnFiltersFieldName,
 *         isEnabled: reportDefinitionColumnFiltersIsEnabled === "true",
 *         isHidden: reportDefinitionColumnFiltersIsHidden === "true",
 *         operator: reportDefinitionColumnFiltersOperator,
 *     }],
 *     columnInfos: [{
 *         displayName: reportDefinitionColumnInfoDisplayName,
 *         displayOrder: Number(reportDefinitionColumnInfoDisplayOrder),
 *         fieldName: reportDefinitionColumnInfoFieldName,
 *         isHidden: reportDefinitionColumnInfoIsHidden === "true",
 *         applicableOperators: reportDefinitionColumnInfoApplicableOperators,
 *         dataType: reportDefinitionColumnInfoDataType,
 *         isVirtual: reportDefinitionColumnInfoIsVirtual === "true",
 *     }],
 *     columnSortings: [{
 *         fieldName: reportDefinitionColumnSortingsFieldName,
 *         isAscending: reportDefinitionColumnSortingsIsAscending === "true",
 *         sortingOrder: Number(reportDefinitionColumnSortingsSortingOrder),
 *     }],
 *     compartmentId: compartmentId,
 *     displayName: reportDefinitionDisplayName,
 *     parentId: testParent.id,
 *     summaries: [{
 *         displayOrder: Number(reportDefinitionSummaryDisplayOrder),
 *         name: reportDefinitionSummaryName,
 *         countOf: reportDefinitionSummaryCountOf,
 *         groupByFieldName: reportDefinitionSummaryGroupByFieldName,
 *         isHidden: reportDefinitionSummaryIsHidden === "true",
 *         scimFilter: reportDefinitionSummaryScimFilter,
 *     }],
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     description: reportDefinitionDescription,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * ReportDefinitions can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataSafe/reportDefinition:ReportDefinition test_report_definition "id"
 * ```
 */
export declare class ReportDefinition extends pulumi.CustomResource {
    /**
     * Get an existing ReportDefinition resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ReportDefinitionState, opts?: pulumi.CustomResourceOptions): ReportDefinition;
    /**
     * Returns true if the given object is an instance of ReportDefinition.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is ReportDefinition;
    /**
     * Specifies the name of the category that this report belongs to.
     */
    readonly category: pulumi.Output<string>;
    /**
     * (Updatable) An array of column filter objects. A column Filter object stores all information about a column filter including field name, an operator, one or more expressions, if the filter is enabled, or if the filter is hidden.
     */
    readonly columnFilters: pulumi.Output<outputs.DataSafe.ReportDefinitionColumnFilter[]>;
    /**
     * (Updatable) An array of column objects in the order (left to right) displayed in the report. A column object stores all information about a column, including the name displayed on the UI, corresponding field name in the data source, data type of the column, and column visibility (if the column is visible to the user).
     */
    readonly columnInfos: pulumi.Output<outputs.DataSafe.ReportDefinitionColumnInfo[]>;
    /**
     * (Updatable) An array of column sorting objects. Each column sorting object stores the column name to be sorted and if the sorting is in ascending order; sorting is done by the first column in the array, then by the second column in the array, etc.
     */
    readonly columnSortings: pulumi.Output<outputs.DataSafe.ReportDefinitionColumnSorting[]>;
    /**
     * (Updatable) The OCID of the compartment containing the report definition.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * The list of the data protection regulations/standards used in the report that will help demonstrate compliance.
     */
    readonly complianceStandards: pulumi.Output<string[]>;
    /**
     * Specifies the name of a resource that provides data for the report. For example alerts, events.
     */
    readonly dataSource: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm) Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) The description of the report definition.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) Specifies the name of the report definition.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Specifies the order in which the summary must be displayed.
     */
    readonly displayOrder: pulumi.Output<number>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Signifies whether the definition is seeded or user defined. Values can either be 'true' or 'false'.
     */
    readonly isSeeded: pulumi.Output<boolean>;
    /**
     * Details about the current state of the report definition in Data Safe.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * The OCID of the parent report definition.
     */
    readonly parentId: pulumi.Output<string>;
    /**
     * The time span for the records in the report to be scheduled. <period-value><period> Allowed period strings - "H","D","M","Y" Each of the above fields potentially introduce constraints. A workRequest is created only when period-value satisfies all the constraints. Constraints introduced: 1. period = H (The allowed range for period-value is [1, 23]) 2. period = D (The allowed range for period-value is [1, 30]) 3. period = M (The allowed range for period-value is [1, 11]) 4. period = Y (The minimum period-value is 1)
     */
    readonly recordTimeSpan: pulumi.Output<string>;
    /**
     * The schedule to generate the report periodically in the specified format: <version-string>;<version-specific-schedule>
     */
    readonly schedule: pulumi.Output<string>;
    /**
     * The OCID of the compartment in which the scheduled resource will be created.
     */
    readonly scheduledReportCompartmentId: pulumi.Output<string>;
    /**
     * Specifies the format of the report ( either .xls or .pdf or .json)
     */
    readonly scheduledReportMimeType: pulumi.Output<string>;
    /**
     * The name of the report to be scheduled.
     */
    readonly scheduledReportName: pulumi.Output<string>;
    /**
     * Specifies the limit on the number of rows in the report.
     */
    readonly scheduledReportRowLimit: pulumi.Output<number>;
    /**
     * Additional scim filters used to get the specific summary.
     */
    readonly scimFilter: pulumi.Output<string>;
    /**
     * The current state of the report.
     */
    readonly state: pulumi.Output<string>;
    /**
     * (Updatable) An array of report summary objects in the order (left to right)  displayed in the report.  A  report summary object stores all information about summary of report to be displayed, including the name displayed on UI, the display order, corresponding group by and count of values, summary visibility (if the summary is visible to user).
     */
    readonly summaries: pulumi.Output<outputs.DataSafe.ReportDefinitionSummary[]>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Specifies the date and time the report definition was created.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time the report definition was updated.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a ReportDefinition resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: ReportDefinitionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ReportDefinition resources.
 */
export interface ReportDefinitionState {
    /**
     * Specifies the name of the category that this report belongs to.
     */
    category?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An array of column filter objects. A column Filter object stores all information about a column filter including field name, an operator, one or more expressions, if the filter is enabled, or if the filter is hidden.
     */
    columnFilters?: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionColumnFilter>[] | undefined>;
    /**
     * (Updatable) An array of column objects in the order (left to right) displayed in the report. A column object stores all information about a column, including the name displayed on the UI, corresponding field name in the data source, data type of the column, and column visibility (if the column is visible to the user).
     */
    columnInfos?: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionColumnInfo>[] | undefined>;
    /**
     * (Updatable) An array of column sorting objects. Each column sorting object stores the column name to be sorted and if the sorting is in ascending order; sorting is done by the first column in the array, then by the second column in the array, etc.
     */
    columnSortings?: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionColumnSorting>[] | undefined>;
    /**
     * (Updatable) The OCID of the compartment containing the report definition.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * The list of the data protection regulations/standards used in the report that will help demonstrate compliance.
     */
    complianceStandards?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Specifies the name of a resource that provides data for the report. For example alerts, events.
     */
    dataSource?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm) Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The description of the report definition.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Specifies the name of the report definition.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Specifies the order in which the summary must be displayed.
     */
    displayOrder?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Signifies whether the definition is seeded or user defined. Values can either be 'true' or 'false'.
     */
    isSeeded?: pulumi.Input<boolean | undefined>;
    /**
     * Details about the current state of the report definition in Data Safe.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the parent report definition.
     */
    parentId?: pulumi.Input<string | undefined>;
    /**
     * The time span for the records in the report to be scheduled. <period-value><period> Allowed period strings - "H","D","M","Y" Each of the above fields potentially introduce constraints. A workRequest is created only when period-value satisfies all the constraints. Constraints introduced: 1. period = H (The allowed range for period-value is [1, 23]) 2. period = D (The allowed range for period-value is [1, 30]) 3. period = M (The allowed range for period-value is [1, 11]) 4. period = Y (The minimum period-value is 1)
     */
    recordTimeSpan?: pulumi.Input<string | undefined>;
    /**
     * The schedule to generate the report periodically in the specified format: <version-string>;<version-specific-schedule>
     */
    schedule?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the compartment in which the scheduled resource will be created.
     */
    scheduledReportCompartmentId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the format of the report ( either .xls or .pdf or .json)
     */
    scheduledReportMimeType?: pulumi.Input<string | undefined>;
    /**
     * The name of the report to be scheduled.
     */
    scheduledReportName?: pulumi.Input<string | undefined>;
    /**
     * Specifies the limit on the number of rows in the report.
     */
    scheduledReportRowLimit?: pulumi.Input<number | undefined>;
    /**
     * Additional scim filters used to get the specific summary.
     */
    scimFilter?: pulumi.Input<string | undefined>;
    /**
     * The current state of the report.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An array of report summary objects in the order (left to right)  displayed in the report.  A  report summary object stores all information about summary of report to be displayed, including the name displayed on UI, the display order, corresponding group by and count of values, summary visibility (if the summary is visible to user).
     */
    summaries?: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionSummary>[] | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Specifies the date and time the report definition was created.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time the report definition was updated.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a ReportDefinition resource.
 */
export interface ReportDefinitionArgs {
    /**
     * (Updatable) An array of column filter objects. A column Filter object stores all information about a column filter including field name, an operator, one or more expressions, if the filter is enabled, or if the filter is hidden.
     */
    columnFilters: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionColumnFilter>[]>;
    /**
     * (Updatable) An array of column objects in the order (left to right) displayed in the report. A column object stores all information about a column, including the name displayed on the UI, corresponding field name in the data source, data type of the column, and column visibility (if the column is visible to the user).
     */
    columnInfos: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionColumnInfo>[]>;
    /**
     * (Updatable) An array of column sorting objects. Each column sorting object stores the column name to be sorted and if the sorting is in ascending order; sorting is done by the first column in the array, then by the second column in the array, etc.
     */
    columnSortings: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionColumnSorting>[]>;
    /**
     * (Updatable) The OCID of the compartment containing the report definition.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm) Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The description of the report definition.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Specifies the name of the report definition.
     */
    displayName: pulumi.Input<string>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm)  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The OCID of the parent report definition.
     */
    parentId: pulumi.Input<string>;
    /**
     * (Updatable) An array of report summary objects in the order (left to right)  displayed in the report.  A  report summary object stores all information about summary of report to be displayed, including the name displayed on UI, the display order, corresponding group by and count of values, summary visibility (if the summary is visible to user).
     */
    summaries: pulumi.Input<pulumi.Input<inputs.DataSafe.ReportDefinitionSummary>[]>;
}
//# sourceMappingURL=reportDefinition.d.ts.map