/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface StorageInsightsDatasetConfigConfig extends cdktf.TerraformMetaArguments {
    /**
    * The user-defined ID of the DatasetConfig
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#dataset_config_id StorageInsightsDatasetConfig#dataset_config_id}
    */
    readonly datasetConfigId: string;
    /**
    * An optional user-provided description for the dataset configuration with a maximum length of 256 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#description StorageInsightsDatasetConfig#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#id StorageInsightsDatasetConfig#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * If set to true, the request includes all the newly created buckets in the dataset that meet the inclusion and exclusion rules.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#include_newly_created_buckets StorageInsightsDatasetConfig#include_newly_created_buckets}
    */
    readonly includeNewlyCreatedBuckets?: boolean | cdktf.IResolvable;
    /**
    * A boolean terraform only flag to link/unlink dataset.
    *
    * Setting this field to true while creation will automatically link the created dataset as an additional functionality.
    * -> **Note** A dataset config resource can only be destroyed once it is unlinked,
    * so users must set this field to false to unlink the dataset and destroy the dataset config resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#link_dataset StorageInsightsDatasetConfig#link_dataset}
    */
    readonly linkDataset?: boolean | cdktf.IResolvable;
    /**
    * The location of the DatasetConfig.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#location StorageInsightsDatasetConfig#location}
    */
    readonly location: string;
    /**
    * Organization resource ID that the source projects should belong to.
    * Projects that do not belong to the provided organization are not considered when creating the dataset.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#organization_number StorageInsightsDatasetConfig#organization_number}
    */
    readonly organizationNumber?: string;
    /**
    * Defines the options for providing a source organization for the DatasetConfig.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#organization_scope StorageInsightsDatasetConfig#organization_scope}
    */
    readonly organizationScope?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#project StorageInsightsDatasetConfig#project}
    */
    readonly project?: string;
    /**
    * Number of days of history that must be retained.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#retention_period_days StorageInsightsDatasetConfig#retention_period_days}
    */
    readonly retentionPeriodDays: number;
    /**
    * exclude_cloud_storage_buckets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#exclude_cloud_storage_buckets StorageInsightsDatasetConfig#exclude_cloud_storage_buckets}
    */
    readonly excludeCloudStorageBuckets?: StorageInsightsDatasetConfigExcludeCloudStorageBuckets;
    /**
    * exclude_cloud_storage_locations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#exclude_cloud_storage_locations StorageInsightsDatasetConfig#exclude_cloud_storage_locations}
    */
    readonly excludeCloudStorageLocations?: StorageInsightsDatasetConfigExcludeCloudStorageLocations;
    /**
    * identity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#identity StorageInsightsDatasetConfig#identity}
    */
    readonly identity: StorageInsightsDatasetConfigIdentity;
    /**
    * include_cloud_storage_buckets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#include_cloud_storage_buckets StorageInsightsDatasetConfig#include_cloud_storage_buckets}
    */
    readonly includeCloudStorageBuckets?: StorageInsightsDatasetConfigIncludeCloudStorageBuckets;
    /**
    * include_cloud_storage_locations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#include_cloud_storage_locations StorageInsightsDatasetConfig#include_cloud_storage_locations}
    */
    readonly includeCloudStorageLocations?: StorageInsightsDatasetConfigIncludeCloudStorageLocations;
    /**
    * source_folders block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#source_folders StorageInsightsDatasetConfig#source_folders}
    */
    readonly sourceFolders?: StorageInsightsDatasetConfigSourceFolders;
    /**
    * source_projects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#source_projects StorageInsightsDatasetConfig#source_projects}
    */
    readonly sourceProjects?: StorageInsightsDatasetConfigSourceProjects;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#timeouts StorageInsightsDatasetConfig#timeouts}
    */
    readonly timeouts?: StorageInsightsDatasetConfigTimeouts;
}
export interface StorageInsightsDatasetConfigLink {
}
export declare function storageInsightsDatasetConfigLinkToTerraform(struct?: StorageInsightsDatasetConfigLink): any;
export declare function storageInsightsDatasetConfigLinkToHclTerraform(struct?: StorageInsightsDatasetConfigLink): any;
export declare class StorageInsightsDatasetConfigLinkOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): StorageInsightsDatasetConfigLink | undefined;
    set internalValue(value: StorageInsightsDatasetConfigLink | undefined);
    get dataset(): string;
    get linked(): cdktf.IResolvable;
}
export declare class StorageInsightsDatasetConfigLinkList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): StorageInsightsDatasetConfigLinkOutputReference;
}
export interface StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets {
    /**
    * The list of cloud storage bucket names to exclude in the DatasetConfig.
    * Exactly one of the bucket_name and bucket_prefix_regex should be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#bucket_name StorageInsightsDatasetConfig#bucket_name}
    */
    readonly bucketName?: string;
    /**
    * The list of regex patterns for bucket names matching the regex.
    * Regex should follow the syntax specified in google/re2 on GitHub.
    * Exactly one of the bucket_name and bucket_prefix_regex should be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#bucket_prefix_regex StorageInsightsDatasetConfig#bucket_prefix_regex}
    */
    readonly bucketPrefixRegex?: string;
}
export declare function storageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBucketsToTerraform(struct?: StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable): any;
export declare function storageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBucketsToHclTerraform(struct?: StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable): any;
export declare class StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBucketsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable | undefined;
    set internalValue(value: StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable | undefined);
    private _bucketName?;
    get bucketName(): string;
    set bucketName(value: string);
    resetBucketName(): void;
    get bucketNameInput(): string | undefined;
    private _bucketPrefixRegex?;
    get bucketPrefixRegex(): string;
    set bucketPrefixRegex(value: string);
    resetBucketPrefixRegex(): void;
    get bucketPrefixRegexInput(): string | undefined;
}
export declare class StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBucketsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBucketsOutputReference;
}
export interface StorageInsightsDatasetConfigExcludeCloudStorageBuckets {
    /**
    * cloud_storage_buckets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#cloud_storage_buckets StorageInsightsDatasetConfig#cloud_storage_buckets}
    */
    readonly cloudStorageBuckets: StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets[] | cdktf.IResolvable;
}
export declare function storageInsightsDatasetConfigExcludeCloudStorageBucketsToTerraform(struct?: StorageInsightsDatasetConfigExcludeCloudStorageBucketsOutputReference | StorageInsightsDatasetConfigExcludeCloudStorageBuckets): any;
export declare function storageInsightsDatasetConfigExcludeCloudStorageBucketsToHclTerraform(struct?: StorageInsightsDatasetConfigExcludeCloudStorageBucketsOutputReference | StorageInsightsDatasetConfigExcludeCloudStorageBuckets): any;
export declare class StorageInsightsDatasetConfigExcludeCloudStorageBucketsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigExcludeCloudStorageBuckets | undefined;
    set internalValue(value: StorageInsightsDatasetConfigExcludeCloudStorageBuckets | undefined);
    private _cloudStorageBuckets;
    get cloudStorageBuckets(): StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBucketsList;
    putCloudStorageBuckets(value: StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets[] | cdktf.IResolvable): void;
    get cloudStorageBucketsInput(): cdktf.IResolvable | StorageInsightsDatasetConfigExcludeCloudStorageBucketsCloudStorageBuckets[] | undefined;
}
export interface StorageInsightsDatasetConfigExcludeCloudStorageLocations {
    /**
    * The list of cloud storage locations to exclude in the DatasetConfig.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#locations StorageInsightsDatasetConfig#locations}
    */
    readonly locations: string[];
}
export declare function storageInsightsDatasetConfigExcludeCloudStorageLocationsToTerraform(struct?: StorageInsightsDatasetConfigExcludeCloudStorageLocationsOutputReference | StorageInsightsDatasetConfigExcludeCloudStorageLocations): any;
export declare function storageInsightsDatasetConfigExcludeCloudStorageLocationsToHclTerraform(struct?: StorageInsightsDatasetConfigExcludeCloudStorageLocationsOutputReference | StorageInsightsDatasetConfigExcludeCloudStorageLocations): any;
export declare class StorageInsightsDatasetConfigExcludeCloudStorageLocationsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigExcludeCloudStorageLocations | undefined;
    set internalValue(value: StorageInsightsDatasetConfigExcludeCloudStorageLocations | undefined);
    private _locations?;
    get locations(): string[];
    set locations(value: string[]);
    get locationsInput(): string[] | undefined;
}
export interface StorageInsightsDatasetConfigIdentity {
    /**
    * Type of identity to use for the DatasetConfig. Possible values: ["IDENTITY_TYPE_PER_CONFIG", "IDENTITY_TYPE_PER_PROJECT"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#type StorageInsightsDatasetConfig#type}
    */
    readonly type: string;
}
export declare function storageInsightsDatasetConfigIdentityToTerraform(struct?: StorageInsightsDatasetConfigIdentityOutputReference | StorageInsightsDatasetConfigIdentity): any;
export declare function storageInsightsDatasetConfigIdentityToHclTerraform(struct?: StorageInsightsDatasetConfigIdentityOutputReference | StorageInsightsDatasetConfigIdentity): any;
export declare class StorageInsightsDatasetConfigIdentityOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigIdentity | undefined;
    set internalValue(value: StorageInsightsDatasetConfigIdentity | undefined);
    get name(): string;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets {
    /**
    * The list of cloud storage bucket names to include in the DatasetConfig.
    * Exactly one of the bucket_name and bucket_prefix_regex should be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#bucket_name StorageInsightsDatasetConfig#bucket_name}
    */
    readonly bucketName?: string;
    /**
    * The list of regex patterns for bucket names matching the regex.
    * Regex should follow the syntax specified in google/re2 on GitHub.
    * Exactly one of the bucket_name and bucket_prefix_regex should be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#bucket_prefix_regex StorageInsightsDatasetConfig#bucket_prefix_regex}
    */
    readonly bucketPrefixRegex?: string;
}
export declare function storageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBucketsToTerraform(struct?: StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable): any;
export declare function storageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBucketsToHclTerraform(struct?: StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable): any;
export declare class StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBucketsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable | undefined;
    set internalValue(value: StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets | cdktf.IResolvable | undefined);
    private _bucketName?;
    get bucketName(): string;
    set bucketName(value: string);
    resetBucketName(): void;
    get bucketNameInput(): string | undefined;
    private _bucketPrefixRegex?;
    get bucketPrefixRegex(): string;
    set bucketPrefixRegex(value: string);
    resetBucketPrefixRegex(): void;
    get bucketPrefixRegexInput(): string | undefined;
}
export declare class StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBucketsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBucketsOutputReference;
}
export interface StorageInsightsDatasetConfigIncludeCloudStorageBuckets {
    /**
    * cloud_storage_buckets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#cloud_storage_buckets StorageInsightsDatasetConfig#cloud_storage_buckets}
    */
    readonly cloudStorageBuckets: StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets[] | cdktf.IResolvable;
}
export declare function storageInsightsDatasetConfigIncludeCloudStorageBucketsToTerraform(struct?: StorageInsightsDatasetConfigIncludeCloudStorageBucketsOutputReference | StorageInsightsDatasetConfigIncludeCloudStorageBuckets): any;
export declare function storageInsightsDatasetConfigIncludeCloudStorageBucketsToHclTerraform(struct?: StorageInsightsDatasetConfigIncludeCloudStorageBucketsOutputReference | StorageInsightsDatasetConfigIncludeCloudStorageBuckets): any;
export declare class StorageInsightsDatasetConfigIncludeCloudStorageBucketsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigIncludeCloudStorageBuckets | undefined;
    set internalValue(value: StorageInsightsDatasetConfigIncludeCloudStorageBuckets | undefined);
    private _cloudStorageBuckets;
    get cloudStorageBuckets(): StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBucketsList;
    putCloudStorageBuckets(value: StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets[] | cdktf.IResolvable): void;
    get cloudStorageBucketsInput(): cdktf.IResolvable | StorageInsightsDatasetConfigIncludeCloudStorageBucketsCloudStorageBuckets[] | undefined;
}
export interface StorageInsightsDatasetConfigIncludeCloudStorageLocations {
    /**
    * The list of cloud storage locations to include in the DatasetConfig.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#locations StorageInsightsDatasetConfig#locations}
    */
    readonly locations: string[];
}
export declare function storageInsightsDatasetConfigIncludeCloudStorageLocationsToTerraform(struct?: StorageInsightsDatasetConfigIncludeCloudStorageLocationsOutputReference | StorageInsightsDatasetConfigIncludeCloudStorageLocations): any;
export declare function storageInsightsDatasetConfigIncludeCloudStorageLocationsToHclTerraform(struct?: StorageInsightsDatasetConfigIncludeCloudStorageLocationsOutputReference | StorageInsightsDatasetConfigIncludeCloudStorageLocations): any;
export declare class StorageInsightsDatasetConfigIncludeCloudStorageLocationsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigIncludeCloudStorageLocations | undefined;
    set internalValue(value: StorageInsightsDatasetConfigIncludeCloudStorageLocations | undefined);
    private _locations?;
    get locations(): string[];
    set locations(value: string[]);
    get locationsInput(): string[] | undefined;
}
export interface StorageInsightsDatasetConfigSourceFolders {
    /**
    * The list of folder numbers to include in the DatasetConfig.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#folder_numbers StorageInsightsDatasetConfig#folder_numbers}
    */
    readonly folderNumbers?: string[];
}
export declare function storageInsightsDatasetConfigSourceFoldersToTerraform(struct?: StorageInsightsDatasetConfigSourceFoldersOutputReference | StorageInsightsDatasetConfigSourceFolders): any;
export declare function storageInsightsDatasetConfigSourceFoldersToHclTerraform(struct?: StorageInsightsDatasetConfigSourceFoldersOutputReference | StorageInsightsDatasetConfigSourceFolders): any;
export declare class StorageInsightsDatasetConfigSourceFoldersOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigSourceFolders | undefined;
    set internalValue(value: StorageInsightsDatasetConfigSourceFolders | undefined);
    private _folderNumbers?;
    get folderNumbers(): string[];
    set folderNumbers(value: string[]);
    resetFolderNumbers(): void;
    get folderNumbersInput(): string[] | undefined;
}
export interface StorageInsightsDatasetConfigSourceProjects {
    /**
    * The list of project numbers to include in the DatasetConfig.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#project_numbers StorageInsightsDatasetConfig#project_numbers}
    */
    readonly projectNumbers?: string[];
}
export declare function storageInsightsDatasetConfigSourceProjectsToTerraform(struct?: StorageInsightsDatasetConfigSourceProjectsOutputReference | StorageInsightsDatasetConfigSourceProjects): any;
export declare function storageInsightsDatasetConfigSourceProjectsToHclTerraform(struct?: StorageInsightsDatasetConfigSourceProjectsOutputReference | StorageInsightsDatasetConfigSourceProjects): any;
export declare class StorageInsightsDatasetConfigSourceProjectsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigSourceProjects | undefined;
    set internalValue(value: StorageInsightsDatasetConfigSourceProjects | undefined);
    private _projectNumbers?;
    get projectNumbers(): string[];
    set projectNumbers(value: string[]);
    resetProjectNumbers(): void;
    get projectNumbersInput(): string[] | undefined;
}
export interface StorageInsightsDatasetConfigTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#create StorageInsightsDatasetConfig#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#delete StorageInsightsDatasetConfig#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#update StorageInsightsDatasetConfig#update}
    */
    readonly update?: string;
}
export declare function storageInsightsDatasetConfigTimeoutsToTerraform(struct?: StorageInsightsDatasetConfigTimeouts | cdktf.IResolvable): any;
export declare function storageInsightsDatasetConfigTimeoutsToHclTerraform(struct?: StorageInsightsDatasetConfigTimeouts | cdktf.IResolvable): any;
export declare class StorageInsightsDatasetConfigTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): StorageInsightsDatasetConfigTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: StorageInsightsDatasetConfigTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config google_storage_insights_dataset_config}
*/
export declare class StorageInsightsDatasetConfig extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_storage_insights_dataset_config";
    /**
    * Generates CDKTF code for importing a StorageInsightsDatasetConfig resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the StorageInsightsDatasetConfig to import
    * @param importFromId The id of the existing StorageInsightsDatasetConfig that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the StorageInsightsDatasetConfig to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/storage_insights_dataset_config google_storage_insights_dataset_config} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options StorageInsightsDatasetConfigConfig
    */
    constructor(scope: Construct, id: string, config: StorageInsightsDatasetConfigConfig);
    get createTime(): string;
    private _datasetConfigId?;
    get datasetConfigId(): string;
    set datasetConfigId(value: string);
    get datasetConfigIdInput(): string | undefined;
    get datasetConfigState(): string;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _includeNewlyCreatedBuckets?;
    get includeNewlyCreatedBuckets(): boolean | cdktf.IResolvable;
    set includeNewlyCreatedBuckets(value: boolean | cdktf.IResolvable);
    resetIncludeNewlyCreatedBuckets(): void;
    get includeNewlyCreatedBucketsInput(): boolean | cdktf.IResolvable | undefined;
    private _link;
    get link(): StorageInsightsDatasetConfigLinkList;
    private _linkDataset?;
    get linkDataset(): boolean | cdktf.IResolvable;
    set linkDataset(value: boolean | cdktf.IResolvable);
    resetLinkDataset(): void;
    get linkDatasetInput(): boolean | cdktf.IResolvable | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    get name(): string;
    private _organizationNumber?;
    get organizationNumber(): string;
    set organizationNumber(value: string);
    resetOrganizationNumber(): void;
    get organizationNumberInput(): string | undefined;
    private _organizationScope?;
    get organizationScope(): boolean | cdktf.IResolvable;
    set organizationScope(value: boolean | cdktf.IResolvable);
    resetOrganizationScope(): void;
    get organizationScopeInput(): boolean | cdktf.IResolvable | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _retentionPeriodDays?;
    get retentionPeriodDays(): number;
    set retentionPeriodDays(value: number);
    get retentionPeriodDaysInput(): number | undefined;
    get uid(): string;
    get updateTime(): string;
    private _excludeCloudStorageBuckets;
    get excludeCloudStorageBuckets(): StorageInsightsDatasetConfigExcludeCloudStorageBucketsOutputReference;
    putExcludeCloudStorageBuckets(value: StorageInsightsDatasetConfigExcludeCloudStorageBuckets): void;
    resetExcludeCloudStorageBuckets(): void;
    get excludeCloudStorageBucketsInput(): StorageInsightsDatasetConfigExcludeCloudStorageBuckets | undefined;
    private _excludeCloudStorageLocations;
    get excludeCloudStorageLocations(): StorageInsightsDatasetConfigExcludeCloudStorageLocationsOutputReference;
    putExcludeCloudStorageLocations(value: StorageInsightsDatasetConfigExcludeCloudStorageLocations): void;
    resetExcludeCloudStorageLocations(): void;
    get excludeCloudStorageLocationsInput(): StorageInsightsDatasetConfigExcludeCloudStorageLocations | undefined;
    private _identity;
    get identity(): StorageInsightsDatasetConfigIdentityOutputReference;
    putIdentity(value: StorageInsightsDatasetConfigIdentity): void;
    get identityInput(): StorageInsightsDatasetConfigIdentity | undefined;
    private _includeCloudStorageBuckets;
    get includeCloudStorageBuckets(): StorageInsightsDatasetConfigIncludeCloudStorageBucketsOutputReference;
    putIncludeCloudStorageBuckets(value: StorageInsightsDatasetConfigIncludeCloudStorageBuckets): void;
    resetIncludeCloudStorageBuckets(): void;
    get includeCloudStorageBucketsInput(): StorageInsightsDatasetConfigIncludeCloudStorageBuckets | undefined;
    private _includeCloudStorageLocations;
    get includeCloudStorageLocations(): StorageInsightsDatasetConfigIncludeCloudStorageLocationsOutputReference;
    putIncludeCloudStorageLocations(value: StorageInsightsDatasetConfigIncludeCloudStorageLocations): void;
    resetIncludeCloudStorageLocations(): void;
    get includeCloudStorageLocationsInput(): StorageInsightsDatasetConfigIncludeCloudStorageLocations | undefined;
    private _sourceFolders;
    get sourceFolders(): StorageInsightsDatasetConfigSourceFoldersOutputReference;
    putSourceFolders(value: StorageInsightsDatasetConfigSourceFolders): void;
    resetSourceFolders(): void;
    get sourceFoldersInput(): StorageInsightsDatasetConfigSourceFolders | undefined;
    private _sourceProjects;
    get sourceProjects(): StorageInsightsDatasetConfigSourceProjectsOutputReference;
    putSourceProjects(value: StorageInsightsDatasetConfigSourceProjects): void;
    resetSourceProjects(): void;
    get sourceProjectsInput(): StorageInsightsDatasetConfigSourceProjects | undefined;
    private _timeouts;
    get timeouts(): StorageInsightsDatasetConfigTimeoutsOutputReference;
    putTimeouts(value: StorageInsightsDatasetConfigTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | StorageInsightsDatasetConfigTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
