import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface WaapDomainConfig extends cdktf.TerraformMetaArguments { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#id WaapDomain#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; /** * Name of the domain. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#name WaapDomain#name} */ readonly name: string; /** * Status of the domain. It must be one of these values {active, monitor}. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#status WaapDomain#status} */ readonly status?: string; /** * api_discovery_settings block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#api_discovery_settings WaapDomain#api_discovery_settings} */ readonly apiDiscoverySettings?: WaapDomainApiDiscoverySettings; /** * settings block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#settings WaapDomain#settings} */ readonly settings?: WaapDomainSettings; } export interface WaapDomainApiDiscoverySettings { /** * The URL of the API description file. This will be periodically scanned if `description_file_scan_enabled` is enabled. Supported formats are YAML and JSON, and it must adhere to OpenAPI versions 2, 3, or 3.1. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#description_file_location WaapDomain#description_file_location} */ readonly descriptionFileLocation: string; /** * Indicates if periodic scan of the description file is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#description_file_scan_enabled WaapDomain#description_file_scan_enabled} */ readonly descriptionFileScanEnabled?: boolean | cdktf.IResolvable; /** * The interval in hours for scanning the description file. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#description_file_scan_interval_hours WaapDomain#description_file_scan_interval_hours} */ readonly descriptionFileScanIntervalHours?: number; /** * Indicates if traffic scan is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#traffic_scan_enabled WaapDomain#traffic_scan_enabled} */ readonly trafficScanEnabled?: boolean | cdktf.IResolvable; /** * The interval in hours for scanning the traffic. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#traffic_scan_interval_hours WaapDomain#traffic_scan_interval_hours} */ readonly trafficScanIntervalHours?: number; } export declare function waapDomainApiDiscoverySettingsToTerraform(struct?: WaapDomainApiDiscoverySettingsOutputReference | WaapDomainApiDiscoverySettings): any; export declare function waapDomainApiDiscoverySettingsToHclTerraform(struct?: WaapDomainApiDiscoverySettingsOutputReference | WaapDomainApiDiscoverySettings): any; export declare class WaapDomainApiDiscoverySettingsOutputReference 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(): WaapDomainApiDiscoverySettings | undefined; set internalValue(value: WaapDomainApiDiscoverySettings | undefined); private _descriptionFileLocation?; get descriptionFileLocation(): string; set descriptionFileLocation(value: string); get descriptionFileLocationInput(): string; private _descriptionFileScanEnabled?; get descriptionFileScanEnabled(): boolean | cdktf.IResolvable; set descriptionFileScanEnabled(value: boolean | cdktf.IResolvable); resetDescriptionFileScanEnabled(): void; get descriptionFileScanEnabledInput(): any; private _descriptionFileScanIntervalHours?; get descriptionFileScanIntervalHours(): number; set descriptionFileScanIntervalHours(value: number); resetDescriptionFileScanIntervalHours(): void; get descriptionFileScanIntervalHoursInput(): number; private _trafficScanEnabled?; get trafficScanEnabled(): boolean | cdktf.IResolvable; set trafficScanEnabled(value: boolean | cdktf.IResolvable); resetTrafficScanEnabled(): void; get trafficScanEnabledInput(): any; private _trafficScanIntervalHours?; get trafficScanIntervalHours(): number; set trafficScanIntervalHours(value: number); resetTrafficScanIntervalHours(): void; get trafficScanIntervalHoursInput(): number; } export interface WaapDomainSettingsApi { /** * List of API URL patterns. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#api_urls WaapDomain#api_urls} */ readonly apiUrls?: string[]; /** * Indicates if the domain is an API domain. All requests to an API domain are treated as API requests. If this is set to true then the api_urls field is ignored. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#is_api WaapDomain#is_api} */ readonly isApi?: boolean | cdktf.IResolvable; } export declare function waapDomainSettingsApiToTerraform(struct?: WaapDomainSettingsApiOutputReference | WaapDomainSettingsApi): any; export declare function waapDomainSettingsApiToHclTerraform(struct?: WaapDomainSettingsApiOutputReference | WaapDomainSettingsApi): any; export declare class WaapDomainSettingsApiOutputReference 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(): WaapDomainSettingsApi | undefined; set internalValue(value: WaapDomainSettingsApi | undefined); private _apiUrls?; get apiUrls(): string[]; set apiUrls(value: string[]); resetApiUrls(): void; get apiUrlsInput(): string[]; private _isApi?; get isApi(): boolean | cdktf.IResolvable; set isApi(value: boolean | cdktf.IResolvable); resetIsApi(): void; get isApiInput(): any; } export interface WaapDomainSettingsDdos { /** * Burst threshold for DDoS protection. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#burst_threshold WaapDomain#burst_threshold} */ readonly burstThreshold?: number; /** * Global threshold for DDoS protection. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#global_threshold WaapDomain#global_threshold} */ readonly globalThreshold?: number; } export declare function waapDomainSettingsDdosToTerraform(struct?: WaapDomainSettingsDdosOutputReference | WaapDomainSettingsDdos): any; export declare function waapDomainSettingsDdosToHclTerraform(struct?: WaapDomainSettingsDdosOutputReference | WaapDomainSettingsDdos): any; export declare class WaapDomainSettingsDdosOutputReference 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(): WaapDomainSettingsDdos | undefined; set internalValue(value: WaapDomainSettingsDdos | undefined); private _burstThreshold?; get burstThreshold(): number; set burstThreshold(value: number); resetBurstThreshold(): void; get burstThresholdInput(): number; private _globalThreshold?; get globalThreshold(): number; set globalThreshold(value: number); resetGlobalThreshold(): void; get globalThresholdInput(): number; } export interface WaapDomainSettings { /** * api block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#api WaapDomain#api} */ readonly api?: WaapDomainSettingsApi; /** * ddos block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#ddos WaapDomain#ddos} */ readonly ddos?: WaapDomainSettingsDdos; } export declare function waapDomainSettingsToTerraform(struct?: WaapDomainSettingsOutputReference | WaapDomainSettings): any; export declare function waapDomainSettingsToHclTerraform(struct?: WaapDomainSettingsOutputReference | WaapDomainSettings): any; export declare class WaapDomainSettingsOutputReference 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(): WaapDomainSettings | undefined; set internalValue(value: WaapDomainSettings | undefined); private _api; get api(): WaapDomainSettingsApiOutputReference; putApi(value: WaapDomainSettingsApi): void; resetApi(): void; get apiInput(): WaapDomainSettingsApi; private _ddos; get ddos(): WaapDomainSettingsDdosOutputReference; putDdos(value: WaapDomainSettingsDdos): void; resetDdos(): void; get ddosInput(): WaapDomainSettingsDdos; } /** * Represents a {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain gcore_waap_domain} */ export declare class WaapDomain extends cdktf.TerraformResource { static readonly tfResourceType = "gcore_waap_domain"; /** * Generates CDKTF code for importing a WaapDomain resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the WaapDomain to import * @param importFromId The id of the existing WaapDomain that should be imported. Refer to the {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the WaapDomain to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_domain gcore_waap_domain} 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 WaapDomainConfig */ constructor(scope: Construct, id: string, config: WaapDomainConfig); private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _status?; get status(): string; set status(value: string); resetStatus(): void; get statusInput(): string; private _apiDiscoverySettings; get apiDiscoverySettings(): WaapDomainApiDiscoverySettingsOutputReference; putApiDiscoverySettings(value: WaapDomainApiDiscoverySettings): void; resetApiDiscoverySettings(): void; get apiDiscoverySettingsInput(): WaapDomainApiDiscoverySettings; private _settings; get settings(): WaapDomainSettingsOutputReference; putSettings(value: WaapDomainSettings): void; resetSettings(): void; get settingsInput(): WaapDomainSettings; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }