/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface LookerInstanceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Network name in the consumer project in the format of: projects/{project}/global/networks/{network}
    * Note that the consumer network may be in a different GCP project than the consumer
    * project that is hosting the Looker Instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#consumer_network LookerInstance#consumer_network}
    */
    readonly consumerNetwork?: string;
    /**
    * Policy to determine if the cluster should be deleted forcefully.
    * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
    * of its nested resources. If set to "DEFAULT", Looker instances that still have
    * nested resources will return an error. Possible values: DEFAULT, FORCE
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#deletion_policy LookerInstance#deletion_policy}
    */
    readonly deletionPolicy?: string;
    /**
    * FIPS 140-2 Encryption enablement for Looker (Google Cloud Core).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#fips_enabled LookerInstance#fips_enabled}
    */
    readonly fipsEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#id LookerInstance#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;
    /**
    * The ID of the instance or a fully qualified identifier for the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#name LookerInstance#name}
    */
    readonly name: string;
    /**
    * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:
    * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable)
    * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable)
    * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance
    * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance
    * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance
    * - LOOKER_CORE_NONPROD_STANDARD_ANNUAL: nonprod subscription standard instance
    * - LOOKER_CORE_NONPROD_ENTERPRISE_ANNUAL: nonprod subscription enterprise instance
    * - LOOKER_CORE_NONPROD_EMBED_ANNUAL: nonprod subscription embed instance Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL", "LOOKER_CORE_NONPROD_STANDARD_ANNUAL", "LOOKER_CORE_NONPROD_ENTERPRISE_ANNUAL", "LOOKER_CORE_NONPROD_EMBED_ANNUAL"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#platform_edition LookerInstance#platform_edition}
    */
    readonly platformEdition?: string;
    /**
    * Whether private IP is enabled on the Looker instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#private_ip_enabled LookerInstance#private_ip_enabled}
    */
    readonly privateIpEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#project LookerInstance#project}
    */
    readonly project?: string;
    /**
    * Whether Public Service Connect (PSC) is enabled on the Looker instance
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#psc_enabled LookerInstance#psc_enabled}
    */
    readonly pscEnabled?: boolean | cdktf.IResolvable;
    /**
    * Whether public IP is enabled on the Looker instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#public_ip_enabled LookerInstance#public_ip_enabled}
    */
    readonly publicIpEnabled?: boolean | cdktf.IResolvable;
    /**
    * The name of the Looker region of the instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#region LookerInstance#region}
    */
    readonly region?: string;
    /**
    * Name of a reserved IP address range within the consumer network, to be used for
    * private service access connection. User may or may not specify this in a request.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#reserved_range LookerInstance#reserved_range}
    */
    readonly reservedRange?: string;
    /**
    * admin_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#admin_settings LookerInstance#admin_settings}
    */
    readonly adminSettings?: LookerInstanceAdminSettings;
    /**
    * custom_domain block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#custom_domain LookerInstance#custom_domain}
    */
    readonly customDomain?: LookerInstanceCustomDomain;
    /**
    * deny_maintenance_period block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#deny_maintenance_period LookerInstance#deny_maintenance_period}
    */
    readonly denyMaintenancePeriod?: LookerInstanceDenyMaintenancePeriod;
    /**
    * encryption_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#encryption_config LookerInstance#encryption_config}
    */
    readonly encryptionConfig?: LookerInstanceEncryptionConfig;
    /**
    * maintenance_window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#maintenance_window LookerInstance#maintenance_window}
    */
    readonly maintenanceWindow?: LookerInstanceMaintenanceWindow;
    /**
    * oauth_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#oauth_config LookerInstance#oauth_config}
    */
    readonly oauthConfig: LookerInstanceOauthConfig;
    /**
    * psc_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#psc_config LookerInstance#psc_config}
    */
    readonly pscConfig?: LookerInstancePscConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#timeouts LookerInstance#timeouts}
    */
    readonly timeouts?: LookerInstanceTimeouts;
    /**
    * user_metadata block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#user_metadata LookerInstance#user_metadata}
    */
    readonly userMetadata?: LookerInstanceUserMetadata;
}
export interface LookerInstanceAdminSettings {
    /**
    * Email domain allowlist for the instance.
    *
    * Define the email domains to which your users can deliver Looker (Google Cloud core) content.
    * Updating this list will restart the instance. Updating the allowed email domains from terraform
    * means the value provided will be considered as the entire list and not an amendment to the
    * existing list of allowed email domains.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#allowed_email_domains LookerInstance#allowed_email_domains}
    */
    readonly allowedEmailDomains?: string[];
}
export declare function lookerInstanceAdminSettingsToTerraform(struct?: LookerInstanceAdminSettingsOutputReference | LookerInstanceAdminSettings): any;
export declare function lookerInstanceAdminSettingsToHclTerraform(struct?: LookerInstanceAdminSettingsOutputReference | LookerInstanceAdminSettings): any;
export declare class LookerInstanceAdminSettingsOutputReference 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(): LookerInstanceAdminSettings | undefined;
    set internalValue(value: LookerInstanceAdminSettings | undefined);
    private _allowedEmailDomains?;
    get allowedEmailDomains(): string[];
    set allowedEmailDomains(value: string[]);
    resetAllowedEmailDomains(): void;
    get allowedEmailDomainsInput(): string[] | undefined;
}
export interface LookerInstanceCustomDomain {
    /**
    * Domain name
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#domain LookerInstance#domain}
    */
    readonly domain?: string;
}
export declare function lookerInstanceCustomDomainToTerraform(struct?: LookerInstanceCustomDomainOutputReference | LookerInstanceCustomDomain): any;
export declare function lookerInstanceCustomDomainToHclTerraform(struct?: LookerInstanceCustomDomainOutputReference | LookerInstanceCustomDomain): any;
export declare class LookerInstanceCustomDomainOutputReference 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(): LookerInstanceCustomDomain | undefined;
    set internalValue(value: LookerInstanceCustomDomain | undefined);
    private _domain?;
    get domain(): string;
    set domain(value: string);
    resetDomain(): void;
    get domainInput(): string | undefined;
    get state(): string;
}
export interface LookerInstanceDenyMaintenancePeriodEndDate {
    /**
    * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
    * to specify a year by itself or a year and month where the day isn't significant.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#day LookerInstance#day}
    */
    readonly day?: number;
    /**
    * Month of a year. Must be from 1 to 12, or 0 to specify a year without a
    * month and day.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#month LookerInstance#month}
    */
    readonly month?: number;
    /**
    * Year of the date. Must be from 1 to 9999, or 0 to specify a date without
    * a year.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#year LookerInstance#year}
    */
    readonly year?: number;
}
export declare function lookerInstanceDenyMaintenancePeriodEndDateToTerraform(struct?: LookerInstanceDenyMaintenancePeriodEndDateOutputReference | LookerInstanceDenyMaintenancePeriodEndDate): any;
export declare function lookerInstanceDenyMaintenancePeriodEndDateToHclTerraform(struct?: LookerInstanceDenyMaintenancePeriodEndDateOutputReference | LookerInstanceDenyMaintenancePeriodEndDate): any;
export declare class LookerInstanceDenyMaintenancePeriodEndDateOutputReference 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(): LookerInstanceDenyMaintenancePeriodEndDate | undefined;
    set internalValue(value: LookerInstanceDenyMaintenancePeriodEndDate | undefined);
    private _day?;
    get day(): number;
    set day(value: number);
    resetDay(): void;
    get dayInput(): number | undefined;
    private _month?;
    get month(): number;
    set month(value: number);
    resetMonth(): void;
    get monthInput(): number | undefined;
    private _year?;
    get year(): number;
    set year(value: number);
    resetYear(): void;
    get yearInput(): number | undefined;
}
export interface LookerInstanceDenyMaintenancePeriodStartDate {
    /**
    * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
    * to specify a year by itself or a year and month where the day isn't significant.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#day LookerInstance#day}
    */
    readonly day?: number;
    /**
    * Month of a year. Must be from 1 to 12, or 0 to specify a year without a
    * month and day.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#month LookerInstance#month}
    */
    readonly month?: number;
    /**
    * Year of the date. Must be from 1 to 9999, or 0 to specify a date without
    * a year.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#year LookerInstance#year}
    */
    readonly year?: number;
}
export declare function lookerInstanceDenyMaintenancePeriodStartDateToTerraform(struct?: LookerInstanceDenyMaintenancePeriodStartDateOutputReference | LookerInstanceDenyMaintenancePeriodStartDate): any;
export declare function lookerInstanceDenyMaintenancePeriodStartDateToHclTerraform(struct?: LookerInstanceDenyMaintenancePeriodStartDateOutputReference | LookerInstanceDenyMaintenancePeriodStartDate): any;
export declare class LookerInstanceDenyMaintenancePeriodStartDateOutputReference 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(): LookerInstanceDenyMaintenancePeriodStartDate | undefined;
    set internalValue(value: LookerInstanceDenyMaintenancePeriodStartDate | undefined);
    private _day?;
    get day(): number;
    set day(value: number);
    resetDay(): void;
    get dayInput(): number | undefined;
    private _month?;
    get month(): number;
    set month(value: number);
    resetMonth(): void;
    get monthInput(): number | undefined;
    private _year?;
    get year(): number;
    set year(value: number);
    resetYear(): void;
    get yearInput(): number | undefined;
}
export interface LookerInstanceDenyMaintenancePeriodTime {
    /**
    * Hours of day in 24 hour format. Should be from 0 to 23.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#hours LookerInstance#hours}
    */
    readonly hours?: number;
    /**
    * Minutes of hour of day. Must be from 0 to 59.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#minutes LookerInstance#minutes}
    */
    readonly minutes?: number;
    /**
    * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#nanos LookerInstance#nanos}
    */
    readonly nanos?: number;
    /**
    * Seconds of minutes of the time. Must normally be from 0 to 59.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#seconds LookerInstance#seconds}
    */
    readonly seconds?: number;
}
export declare function lookerInstanceDenyMaintenancePeriodTimeToTerraform(struct?: LookerInstanceDenyMaintenancePeriodTimeOutputReference | LookerInstanceDenyMaintenancePeriodTime): any;
export declare function lookerInstanceDenyMaintenancePeriodTimeToHclTerraform(struct?: LookerInstanceDenyMaintenancePeriodTimeOutputReference | LookerInstanceDenyMaintenancePeriodTime): any;
export declare class LookerInstanceDenyMaintenancePeriodTimeOutputReference 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(): LookerInstanceDenyMaintenancePeriodTime | undefined;
    set internalValue(value: LookerInstanceDenyMaintenancePeriodTime | undefined);
    private _hours?;
    get hours(): number;
    set hours(value: number);
    resetHours(): void;
    get hoursInput(): number | undefined;
    private _minutes?;
    get minutes(): number;
    set minutes(value: number);
    resetMinutes(): void;
    get minutesInput(): number | undefined;
    private _nanos?;
    get nanos(): number;
    set nanos(value: number);
    resetNanos(): void;
    get nanosInput(): number | undefined;
    private _seconds?;
    get seconds(): number;
    set seconds(value: number);
    resetSeconds(): void;
    get secondsInput(): number | undefined;
}
export interface LookerInstanceDenyMaintenancePeriod {
    /**
    * end_date block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#end_date LookerInstance#end_date}
    */
    readonly endDate: LookerInstanceDenyMaintenancePeriodEndDate;
    /**
    * start_date block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#start_date LookerInstance#start_date}
    */
    readonly startDate: LookerInstanceDenyMaintenancePeriodStartDate;
    /**
    * time block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#time LookerInstance#time}
    */
    readonly time: LookerInstanceDenyMaintenancePeriodTime;
}
export declare function lookerInstanceDenyMaintenancePeriodToTerraform(struct?: LookerInstanceDenyMaintenancePeriodOutputReference | LookerInstanceDenyMaintenancePeriod): any;
export declare function lookerInstanceDenyMaintenancePeriodToHclTerraform(struct?: LookerInstanceDenyMaintenancePeriodOutputReference | LookerInstanceDenyMaintenancePeriod): any;
export declare class LookerInstanceDenyMaintenancePeriodOutputReference 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(): LookerInstanceDenyMaintenancePeriod | undefined;
    set internalValue(value: LookerInstanceDenyMaintenancePeriod | undefined);
    private _endDate;
    get endDate(): LookerInstanceDenyMaintenancePeriodEndDateOutputReference;
    putEndDate(value: LookerInstanceDenyMaintenancePeriodEndDate): void;
    get endDateInput(): LookerInstanceDenyMaintenancePeriodEndDate | undefined;
    private _startDate;
    get startDate(): LookerInstanceDenyMaintenancePeriodStartDateOutputReference;
    putStartDate(value: LookerInstanceDenyMaintenancePeriodStartDate): void;
    get startDateInput(): LookerInstanceDenyMaintenancePeriodStartDate | undefined;
    private _time;
    get time(): LookerInstanceDenyMaintenancePeriodTimeOutputReference;
    putTime(value: LookerInstanceDenyMaintenancePeriodTime): void;
    get timeInput(): LookerInstanceDenyMaintenancePeriodTime | undefined;
}
export interface LookerInstanceEncryptionConfig {
    /**
    * Name of the customer managed encryption key (CMEK) in KMS.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#kms_key_name LookerInstance#kms_key_name}
    */
    readonly kmsKeyName?: string;
}
export declare function lookerInstanceEncryptionConfigToTerraform(struct?: LookerInstanceEncryptionConfigOutputReference | LookerInstanceEncryptionConfig): any;
export declare function lookerInstanceEncryptionConfigToHclTerraform(struct?: LookerInstanceEncryptionConfigOutputReference | LookerInstanceEncryptionConfig): any;
export declare class LookerInstanceEncryptionConfigOutputReference 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(): LookerInstanceEncryptionConfig | undefined;
    set internalValue(value: LookerInstanceEncryptionConfig | undefined);
    private _kmsKeyName?;
    get kmsKeyName(): string;
    set kmsKeyName(value: string);
    resetKmsKeyName(): void;
    get kmsKeyNameInput(): string | undefined;
    get kmsKeyNameVersion(): string;
    get kmsKeyState(): string;
}
export interface LookerInstanceMaintenanceWindowStartTime {
    /**
    * Hours of day in 24 hour format. Should be from 0 to 23.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#hours LookerInstance#hours}
    */
    readonly hours?: number;
    /**
    * Minutes of hour of day. Must be from 0 to 59.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#minutes LookerInstance#minutes}
    */
    readonly minutes?: number;
    /**
    * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#nanos LookerInstance#nanos}
    */
    readonly nanos?: number;
    /**
    * Seconds of minutes of the time. Must normally be from 0 to 59.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#seconds LookerInstance#seconds}
    */
    readonly seconds?: number;
}
export declare function lookerInstanceMaintenanceWindowStartTimeToTerraform(struct?: LookerInstanceMaintenanceWindowStartTimeOutputReference | LookerInstanceMaintenanceWindowStartTime): any;
export declare function lookerInstanceMaintenanceWindowStartTimeToHclTerraform(struct?: LookerInstanceMaintenanceWindowStartTimeOutputReference | LookerInstanceMaintenanceWindowStartTime): any;
export declare class LookerInstanceMaintenanceWindowStartTimeOutputReference 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(): LookerInstanceMaintenanceWindowStartTime | undefined;
    set internalValue(value: LookerInstanceMaintenanceWindowStartTime | undefined);
    private _hours?;
    get hours(): number;
    set hours(value: number);
    resetHours(): void;
    get hoursInput(): number | undefined;
    private _minutes?;
    get minutes(): number;
    set minutes(value: number);
    resetMinutes(): void;
    get minutesInput(): number | undefined;
    private _nanos?;
    get nanos(): number;
    set nanos(value: number);
    resetNanos(): void;
    get nanosInput(): number | undefined;
    private _seconds?;
    get seconds(): number;
    set seconds(value: number);
    resetSeconds(): void;
    get secondsInput(): number | undefined;
}
export interface LookerInstanceMaintenanceWindow {
    /**
    * Required. Day of the week for this MaintenanceWindow (in UTC).
    *
    * - MONDAY: Monday
    * - TUESDAY: Tuesday
    * - WEDNESDAY: Wednesday
    * - THURSDAY: Thursday
    * - FRIDAY: Friday
    * - SATURDAY: Saturday
    * - SUNDAY: Sunday Possible values: ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#day_of_week LookerInstance#day_of_week}
    */
    readonly dayOfWeek: string;
    /**
    * start_time block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#start_time LookerInstance#start_time}
    */
    readonly startTime: LookerInstanceMaintenanceWindowStartTime;
}
export declare function lookerInstanceMaintenanceWindowToTerraform(struct?: LookerInstanceMaintenanceWindowOutputReference | LookerInstanceMaintenanceWindow): any;
export declare function lookerInstanceMaintenanceWindowToHclTerraform(struct?: LookerInstanceMaintenanceWindowOutputReference | LookerInstanceMaintenanceWindow): any;
export declare class LookerInstanceMaintenanceWindowOutputReference 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(): LookerInstanceMaintenanceWindow | undefined;
    set internalValue(value: LookerInstanceMaintenanceWindow | undefined);
    private _dayOfWeek?;
    get dayOfWeek(): string;
    set dayOfWeek(value: string);
    get dayOfWeekInput(): string | undefined;
    private _startTime;
    get startTime(): LookerInstanceMaintenanceWindowStartTimeOutputReference;
    putStartTime(value: LookerInstanceMaintenanceWindowStartTime): void;
    get startTimeInput(): LookerInstanceMaintenanceWindowStartTime | undefined;
}
export interface LookerInstanceOauthConfig {
    /**
    * The client ID for the Oauth config.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#client_id LookerInstance#client_id}
    */
    readonly clientId: string;
    /**
    * The client secret for the Oauth config.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#client_secret LookerInstance#client_secret}
    */
    readonly clientSecret: string;
}
export declare function lookerInstanceOauthConfigToTerraform(struct?: LookerInstanceOauthConfigOutputReference | LookerInstanceOauthConfig): any;
export declare function lookerInstanceOauthConfigToHclTerraform(struct?: LookerInstanceOauthConfigOutputReference | LookerInstanceOauthConfig): any;
export declare class LookerInstanceOauthConfigOutputReference 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(): LookerInstanceOauthConfig | undefined;
    set internalValue(value: LookerInstanceOauthConfig | undefined);
    private _clientId?;
    get clientId(): string;
    set clientId(value: string);
    get clientIdInput(): string | undefined;
    private _clientSecret?;
    get clientSecret(): string;
    set clientSecret(value: string);
    get clientSecretInput(): string | undefined;
}
export interface LookerInstancePscConfigServiceAttachments {
    /**
    * Fully qualified domain name that will be used in the private DNS record created for the service attachment.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#local_fqdn LookerInstance#local_fqdn}
    */
    readonly localFqdn?: string;
    /**
    * URI of the service attachment to connect to.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#target_service_attachment_uri LookerInstance#target_service_attachment_uri}
    */
    readonly targetServiceAttachmentUri?: string;
}
export declare function lookerInstancePscConfigServiceAttachmentsToTerraform(struct?: LookerInstancePscConfigServiceAttachments | cdktf.IResolvable): any;
export declare function lookerInstancePscConfigServiceAttachmentsToHclTerraform(struct?: LookerInstancePscConfigServiceAttachments | cdktf.IResolvable): any;
export declare class LookerInstancePscConfigServiceAttachmentsOutputReference 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(): LookerInstancePscConfigServiceAttachments | cdktf.IResolvable | undefined;
    set internalValue(value: LookerInstancePscConfigServiceAttachments | cdktf.IResolvable | undefined);
    get connectionStatus(): string;
    private _localFqdn?;
    get localFqdn(): string;
    set localFqdn(value: string);
    resetLocalFqdn(): void;
    get localFqdnInput(): string | undefined;
    private _targetServiceAttachmentUri?;
    get targetServiceAttachmentUri(): string;
    set targetServiceAttachmentUri(value: string);
    resetTargetServiceAttachmentUri(): void;
    get targetServiceAttachmentUriInput(): string | undefined;
}
export declare class LookerInstancePscConfigServiceAttachmentsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: LookerInstancePscConfigServiceAttachments[] | 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): LookerInstancePscConfigServiceAttachmentsOutputReference;
}
export interface LookerInstancePscConfig {
    /**
    * List of VPCs that are allowed ingress into the Looker instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#allowed_vpcs LookerInstance#allowed_vpcs}
    */
    readonly allowedVpcs?: string[];
    /**
    * service_attachments block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#service_attachments LookerInstance#service_attachments}
    */
    readonly serviceAttachments?: LookerInstancePscConfigServiceAttachments[] | cdktf.IResolvable;
}
export declare function lookerInstancePscConfigToTerraform(struct?: LookerInstancePscConfigOutputReference | LookerInstancePscConfig): any;
export declare function lookerInstancePscConfigToHclTerraform(struct?: LookerInstancePscConfigOutputReference | LookerInstancePscConfig): any;
export declare class LookerInstancePscConfigOutputReference 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(): LookerInstancePscConfig | undefined;
    set internalValue(value: LookerInstancePscConfig | undefined);
    private _allowedVpcs?;
    get allowedVpcs(): string[];
    set allowedVpcs(value: string[]);
    resetAllowedVpcs(): void;
    get allowedVpcsInput(): string[] | undefined;
    get lookerServiceAttachmentUri(): string;
    private _serviceAttachments;
    get serviceAttachments(): LookerInstancePscConfigServiceAttachmentsList;
    putServiceAttachments(value: LookerInstancePscConfigServiceAttachments[] | cdktf.IResolvable): void;
    resetServiceAttachments(): void;
    get serviceAttachmentsInput(): cdktf.IResolvable | LookerInstancePscConfigServiceAttachments[] | undefined;
}
export interface LookerInstanceTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#create LookerInstance#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#delete LookerInstance#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#update LookerInstance#update}
    */
    readonly update?: string;
}
export declare function lookerInstanceTimeoutsToTerraform(struct?: LookerInstanceTimeouts | cdktf.IResolvable): any;
export declare function lookerInstanceTimeoutsToHclTerraform(struct?: LookerInstanceTimeouts | cdktf.IResolvable): any;
export declare class LookerInstanceTimeoutsOutputReference 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(): LookerInstanceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: LookerInstanceTimeouts | 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;
}
export interface LookerInstanceUserMetadata {
    /**
    * Number of additional Developer Users to allocate to the Looker Instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#additional_developer_user_count LookerInstance#additional_developer_user_count}
    */
    readonly additionalDeveloperUserCount?: number;
    /**
    * Number of additional Standard Users to allocate to the Looker Instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#additional_standard_user_count LookerInstance#additional_standard_user_count}
    */
    readonly additionalStandardUserCount?: number;
    /**
    * Number of additional Viewer Users to allocate to the Looker Instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#additional_viewer_user_count LookerInstance#additional_viewer_user_count}
    */
    readonly additionalViewerUserCount?: number;
}
export declare function lookerInstanceUserMetadataToTerraform(struct?: LookerInstanceUserMetadataOutputReference | LookerInstanceUserMetadata): any;
export declare function lookerInstanceUserMetadataToHclTerraform(struct?: LookerInstanceUserMetadataOutputReference | LookerInstanceUserMetadata): any;
export declare class LookerInstanceUserMetadataOutputReference 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(): LookerInstanceUserMetadata | undefined;
    set internalValue(value: LookerInstanceUserMetadata | undefined);
    private _additionalDeveloperUserCount?;
    get additionalDeveloperUserCount(): number;
    set additionalDeveloperUserCount(value: number);
    resetAdditionalDeveloperUserCount(): void;
    get additionalDeveloperUserCountInput(): number | undefined;
    private _additionalStandardUserCount?;
    get additionalStandardUserCount(): number;
    set additionalStandardUserCount(value: number);
    resetAdditionalStandardUserCount(): void;
    get additionalStandardUserCountInput(): number | undefined;
    private _additionalViewerUserCount?;
    get additionalViewerUserCount(): number;
    set additionalViewerUserCount(value: number);
    resetAdditionalViewerUserCount(): void;
    get additionalViewerUserCountInput(): number | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance google_looker_instance}
*/
export declare class LookerInstance extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_looker_instance";
    /**
    * Generates CDKTF code for importing a LookerInstance 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 LookerInstance to import
    * @param importFromId The id of the existing LookerInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/looker_instance#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the LookerInstance 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.29.0/docs/resources/looker_instance google_looker_instance} 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 LookerInstanceConfig
    */
    constructor(scope: Construct, id: string, config: LookerInstanceConfig);
    private _consumerNetwork?;
    get consumerNetwork(): string;
    set consumerNetwork(value: string);
    resetConsumerNetwork(): void;
    get consumerNetworkInput(): string | undefined;
    get createTime(): string;
    private _deletionPolicy?;
    get deletionPolicy(): string;
    set deletionPolicy(value: string);
    resetDeletionPolicy(): void;
    get deletionPolicyInput(): string | undefined;
    get egressPublicIp(): string;
    private _fipsEnabled?;
    get fipsEnabled(): boolean | cdktf.IResolvable;
    set fipsEnabled(value: boolean | cdktf.IResolvable);
    resetFipsEnabled(): void;
    get fipsEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get ingressPrivateIp(): string;
    get ingressPublicIp(): string;
    get lookerUri(): string;
    get lookerVersion(): string;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _platformEdition?;
    get platformEdition(): string;
    set platformEdition(value: string);
    resetPlatformEdition(): void;
    get platformEditionInput(): string | undefined;
    private _privateIpEnabled?;
    get privateIpEnabled(): boolean | cdktf.IResolvable;
    set privateIpEnabled(value: boolean | cdktf.IResolvable);
    resetPrivateIpEnabled(): void;
    get privateIpEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _pscEnabled?;
    get pscEnabled(): boolean | cdktf.IResolvable;
    set pscEnabled(value: boolean | cdktf.IResolvable);
    resetPscEnabled(): void;
    get pscEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _publicIpEnabled?;
    get publicIpEnabled(): boolean | cdktf.IResolvable;
    set publicIpEnabled(value: boolean | cdktf.IResolvable);
    resetPublicIpEnabled(): void;
    get publicIpEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _reservedRange?;
    get reservedRange(): string;
    set reservedRange(value: string);
    resetReservedRange(): void;
    get reservedRangeInput(): string | undefined;
    get updateTime(): string;
    private _adminSettings;
    get adminSettings(): LookerInstanceAdminSettingsOutputReference;
    putAdminSettings(value: LookerInstanceAdminSettings): void;
    resetAdminSettings(): void;
    get adminSettingsInput(): LookerInstanceAdminSettings | undefined;
    private _customDomain;
    get customDomain(): LookerInstanceCustomDomainOutputReference;
    putCustomDomain(value: LookerInstanceCustomDomain): void;
    resetCustomDomain(): void;
    get customDomainInput(): LookerInstanceCustomDomain | undefined;
    private _denyMaintenancePeriod;
    get denyMaintenancePeriod(): LookerInstanceDenyMaintenancePeriodOutputReference;
    putDenyMaintenancePeriod(value: LookerInstanceDenyMaintenancePeriod): void;
    resetDenyMaintenancePeriod(): void;
    get denyMaintenancePeriodInput(): LookerInstanceDenyMaintenancePeriod | undefined;
    private _encryptionConfig;
    get encryptionConfig(): LookerInstanceEncryptionConfigOutputReference;
    putEncryptionConfig(value: LookerInstanceEncryptionConfig): void;
    resetEncryptionConfig(): void;
    get encryptionConfigInput(): LookerInstanceEncryptionConfig | undefined;
    private _maintenanceWindow;
    get maintenanceWindow(): LookerInstanceMaintenanceWindowOutputReference;
    putMaintenanceWindow(value: LookerInstanceMaintenanceWindow): void;
    resetMaintenanceWindow(): void;
    get maintenanceWindowInput(): LookerInstanceMaintenanceWindow | undefined;
    private _oauthConfig;
    get oauthConfig(): LookerInstanceOauthConfigOutputReference;
    putOauthConfig(value: LookerInstanceOauthConfig): void;
    get oauthConfigInput(): LookerInstanceOauthConfig | undefined;
    private _pscConfig;
    get pscConfig(): LookerInstancePscConfigOutputReference;
    putPscConfig(value: LookerInstancePscConfig): void;
    resetPscConfig(): void;
    get pscConfigInput(): LookerInstancePscConfig | undefined;
    private _timeouts;
    get timeouts(): LookerInstanceTimeoutsOutputReference;
    putTimeouts(value: LookerInstanceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | LookerInstanceTimeouts | undefined;
    private _userMetadata;
    get userMetadata(): LookerInstanceUserMetadataOutputReference;
    putUserMetadata(value: LookerInstanceUserMetadata): void;
    resetUserMetadata(): void;
    get userMetadataInput(): LookerInstanceUserMetadata | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
