import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface DatabaseConfig extends cdktf.TerraformMetaArguments { /** * The day of week to perform the automated database service maintenance (`never`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#maintenance_dow Database#maintenance_dow} */ readonly maintenanceDow?: string; /** * The time of day to perform the automated database service maintenance (`HH:MM:SS`) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#maintenance_time Database#maintenance_time} */ readonly maintenanceTime?: string; /** * ❗ The name of the database service. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#name Database#name} */ readonly name: string; /** * The plan of the database service (use the [Exoscale CLI](https://github.com/exoscale/cli/) - `exo dbaas type show --plans` - for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#plan Database#plan} */ readonly plan: string; /** * The database service protection boolean flag against termination/power-off. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#termination_protection Database#termination_protection} */ readonly terminationProtection?: boolean | cdktf.IResolvable; /** * ❗ The type of the database service (`kafka`, `mysql`, `opensearch`, `pg`, `valkey`, `grafana`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#type Database#type} */ readonly type: string; /** * ❗ The Exoscale [Zone](https://www.exoscale.com/datacenters/) name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#zone Database#zone} */ readonly zone: string; /** * grafana block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#grafana Database#grafana} */ readonly grafana?: DatabaseGrafana; /** * kafka block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#kafka Database#kafka} */ readonly kafka?: DatabaseKafka; /** * mysql block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#mysql Database#mysql} */ readonly mysql?: DatabaseMysql; /** * opensearch block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#opensearch Database#opensearch} */ readonly opensearch?: DatabaseOpensearch; /** * pg block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#pg Database#pg} */ readonly pg?: DatabasePg; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#timeouts Database#timeouts} */ readonly timeouts?: DatabaseTimeouts; /** * valkey block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#valkey Database#valkey} */ readonly valkey?: DatabaseValkey; } export interface DatabaseGrafana { /** * Grafana configuration settings in JSON format (`exo dbaas type show grafana --settings=grafana` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#grafana_settings Database#grafana_settings} */ readonly grafanaSettings?: string; /** * A list of CIDR blocks to allow incoming connections from. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#ip_filter Database#ip_filter} */ readonly ipFilter?: string[]; } export declare function databaseGrafanaToTerraform(struct?: DatabaseGrafana | cdktf.IResolvable): any; export declare function databaseGrafanaToHclTerraform(struct?: DatabaseGrafana | cdktf.IResolvable): any; export declare class DatabaseGrafanaOutputReference 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(): DatabaseGrafana | cdktf.IResolvable | undefined; set internalValue(value: DatabaseGrafana | cdktf.IResolvable | undefined); private _grafanaSettings?; get grafanaSettings(): string; set grafanaSettings(value: string); resetGrafanaSettings(): void; get grafanaSettingsInput(): string; private _ipFilter?; get ipFilter(): string[]; set ipFilter(value: string[]); resetIpFilter(): void; get ipFilterInput(): string[]; } export interface DatabaseKafka { /** * Enable certificate-based authentication method. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#enable_cert_auth Database#enable_cert_auth} */ readonly enableCertAuth?: boolean | cdktf.IResolvable; /** * Enable Kafka Connect. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#enable_kafka_connect Database#enable_kafka_connect} */ readonly enableKafkaConnect?: boolean | cdktf.IResolvable; /** * Enable Kafka REST. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#enable_kafka_rest Database#enable_kafka_rest} */ readonly enableKafkaRest?: boolean | cdktf.IResolvable; /** * Enable SASL-based authentication method. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#enable_sasl_auth Database#enable_sasl_auth} */ readonly enableSaslAuth?: boolean | cdktf.IResolvable; /** * Enable Schema Registry. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#enable_schema_registry Database#enable_schema_registry} */ readonly enableSchemaRegistry?: boolean | cdktf.IResolvable; /** * A list of CIDR blocks to allow incoming connections from. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#ip_filter Database#ip_filter} */ readonly ipFilter?: string[]; /** * Kafka Connect configuration settings in JSON format (`exo dbaas type show kafka --settings=kafka-connect` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#kafka_connect_settings Database#kafka_connect_settings} */ readonly kafkaConnectSettings?: string; /** * Kafka REST configuration settings in JSON format (`exo dbaas type show kafka --settings=kafka-rest` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#kafka_rest_settings Database#kafka_rest_settings} */ readonly kafkaRestSettings?: string; /** * Kafka configuration settings in JSON format (`exo dbaas type show kafka --settings=kafka` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#kafka_settings Database#kafka_settings} */ readonly kafkaSettings?: string; /** * Schema Registry configuration settings in JSON format (`exo dbaas type show kafka --settings=schema-registry` for reference) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#schema_registry_settings Database#schema_registry_settings} */ readonly schemaRegistrySettings?: string; /** * Kafka major version (`exo dbaas type show kafka` for reference; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#version Database#version} */ readonly version?: string; } export declare function databaseKafkaToTerraform(struct?: DatabaseKafka | cdktf.IResolvable): any; export declare function databaseKafkaToHclTerraform(struct?: DatabaseKafka | cdktf.IResolvable): any; export declare class DatabaseKafkaOutputReference 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(): DatabaseKafka | cdktf.IResolvable | undefined; set internalValue(value: DatabaseKafka | cdktf.IResolvable | undefined); private _enableCertAuth?; get enableCertAuth(): boolean | cdktf.IResolvable; set enableCertAuth(value: boolean | cdktf.IResolvable); resetEnableCertAuth(): void; get enableCertAuthInput(): any; private _enableKafkaConnect?; get enableKafkaConnect(): boolean | cdktf.IResolvable; set enableKafkaConnect(value: boolean | cdktf.IResolvable); resetEnableKafkaConnect(): void; get enableKafkaConnectInput(): any; private _enableKafkaRest?; get enableKafkaRest(): boolean | cdktf.IResolvable; set enableKafkaRest(value: boolean | cdktf.IResolvable); resetEnableKafkaRest(): void; get enableKafkaRestInput(): any; private _enableSaslAuth?; get enableSaslAuth(): boolean | cdktf.IResolvable; set enableSaslAuth(value: boolean | cdktf.IResolvable); resetEnableSaslAuth(): void; get enableSaslAuthInput(): any; private _enableSchemaRegistry?; get enableSchemaRegistry(): boolean | cdktf.IResolvable; set enableSchemaRegistry(value: boolean | cdktf.IResolvable); resetEnableSchemaRegistry(): void; get enableSchemaRegistryInput(): any; private _ipFilter?; get ipFilter(): string[]; set ipFilter(value: string[]); resetIpFilter(): void; get ipFilterInput(): string[]; private _kafkaConnectSettings?; get kafkaConnectSettings(): string; set kafkaConnectSettings(value: string); resetKafkaConnectSettings(): void; get kafkaConnectSettingsInput(): string; private _kafkaRestSettings?; get kafkaRestSettings(): string; set kafkaRestSettings(value: string); resetKafkaRestSettings(): void; get kafkaRestSettingsInput(): string; private _kafkaSettings?; get kafkaSettings(): string; set kafkaSettings(value: string); resetKafkaSettings(): void; get kafkaSettingsInput(): string; private _schemaRegistrySettings?; get schemaRegistrySettings(): string; set schemaRegistrySettings(value: string); resetSchemaRegistrySettings(): void; get schemaRegistrySettingsInput(): string; private _version?; get version(): string; set version(value: string); resetVersion(): void; get versionInput(): string; } export interface DatabaseMysql { /** * A custom administrator account password (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#admin_password Database#admin_password} */ readonly adminPassword?: string; /** * A custom administrator account username (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#admin_username Database#admin_username} */ readonly adminUsername?: string; /** * The automated backup schedule (`HH:MM`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#backup_schedule Database#backup_schedule} */ readonly backupSchedule?: string; /** * A list of CIDR blocks to allow incoming connections from. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#ip_filter Database#ip_filter} */ readonly ipFilter?: string[]; /** * MySQL configuration settings in JSON format (`exo dbaas type show mysql --settings=mysql` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#mysql_settings Database#mysql_settings} */ readonly mysqlSettings?: string; /** * MySQL major version (`exo dbaas type show mysql` for reference; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#version Database#version} */ readonly version?: string; } export declare function databaseMysqlToTerraform(struct?: DatabaseMysql | cdktf.IResolvable): any; export declare function databaseMysqlToHclTerraform(struct?: DatabaseMysql | cdktf.IResolvable): any; export declare class DatabaseMysqlOutputReference 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(): DatabaseMysql | cdktf.IResolvable | undefined; set internalValue(value: DatabaseMysql | cdktf.IResolvable | undefined); private _adminPassword?; get adminPassword(): string; set adminPassword(value: string); resetAdminPassword(): void; get adminPasswordInput(): string; private _adminUsername?; get adminUsername(): string; set adminUsername(value: string); resetAdminUsername(): void; get adminUsernameInput(): string; private _backupSchedule?; get backupSchedule(): string; set backupSchedule(value: string); resetBackupSchedule(): void; get backupScheduleInput(): string; private _ipFilter?; get ipFilter(): string[]; set ipFilter(value: string[]); resetIpFilter(): void; get ipFilterInput(): string[]; private _mysqlSettings?; get mysqlSettings(): string; set mysqlSettings(value: string); resetMysqlSettings(): void; get mysqlSettingsInput(): string; private _version?; get version(): string; set version(value: string); resetVersion(): void; get versionInput(): string; } export interface DatabaseOpensearchDashboards { /** * Enable or disable OpenSearch Dashboards (default: true). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#enabled Database#enabled} */ readonly enabled?: boolean | cdktf.IResolvable; /** * Limits the maximum amount of memory (in MiB) the OpenSearch Dashboards process can use. This sets the max_old_space_size option of the nodejs running the OpenSearch Dashboards. Note: the memory reserved by OpenSearch Dashboards is not available for OpenSearch. (default: 128). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#max_old_space_size Database#max_old_space_size} */ readonly maxOldSpaceSize?: number; /** * Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch (default: 30000) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#request_timeout Database#request_timeout} */ readonly requestTimeout?: number; } export declare function databaseOpensearchDashboardsToTerraform(struct?: DatabaseOpensearchDashboards | cdktf.IResolvable): any; export declare function databaseOpensearchDashboardsToHclTerraform(struct?: DatabaseOpensearchDashboards | cdktf.IResolvable): any; export declare class DatabaseOpensearchDashboardsOutputReference 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(): DatabaseOpensearchDashboards | cdktf.IResolvable | undefined; set internalValue(value: DatabaseOpensearchDashboards | cdktf.IResolvable | undefined); private _enabled?; get enabled(): boolean | cdktf.IResolvable; set enabled(value: boolean | cdktf.IResolvable); resetEnabled(): void; get enabledInput(): any; private _maxOldSpaceSize?; get maxOldSpaceSize(): number; set maxOldSpaceSize(value: number); resetMaxOldSpaceSize(): void; get maxOldSpaceSizeInput(): number; private _requestTimeout?; get requestTimeout(): number; set requestTimeout(value: number); resetRequestTimeout(): void; get requestTimeoutInput(): number; } export interface DatabaseOpensearchIndexPattern { /** * Maximum number of indexes to keep before deleting the oldest one (Minimum value is `0`) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#max_index_count Database#max_index_count} */ readonly maxIndexCount?: number; /** * fnmatch pattern * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#pattern Database#pattern} */ readonly pattern?: string; /** * `alphabetical` or `creation_date`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#sorting_algorithm Database#sorting_algorithm} */ readonly sortingAlgorithm?: string; } export declare function databaseOpensearchIndexPatternToTerraform(struct?: DatabaseOpensearchIndexPattern | cdktf.IResolvable): any; export declare function databaseOpensearchIndexPatternToHclTerraform(struct?: DatabaseOpensearchIndexPattern | cdktf.IResolvable): any; export declare class DatabaseOpensearchIndexPatternOutputReference 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(): DatabaseOpensearchIndexPattern | cdktf.IResolvable | undefined; set internalValue(value: DatabaseOpensearchIndexPattern | cdktf.IResolvable | undefined); private _maxIndexCount?; get maxIndexCount(): number; set maxIndexCount(value: number); resetMaxIndexCount(): void; get maxIndexCountInput(): number; private _pattern?; get pattern(): string; set pattern(value: string); resetPattern(): void; get patternInput(): string; private _sortingAlgorithm?; get sortingAlgorithm(): string; set sortingAlgorithm(value: string); resetSortingAlgorithm(): void; get sortingAlgorithmInput(): string; } export declare class DatabaseOpensearchIndexPatternList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: DatabaseOpensearchIndexPattern[] | 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): DatabaseOpensearchIndexPatternOutputReference; } export interface DatabaseOpensearchIndexTemplate { /** * The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. (Default is 10000. Minimum value is `0`, maximum value is `100000`.) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#mapping_nested_objects_limit Database#mapping_nested_objects_limit} */ readonly mappingNestedObjectsLimit?: number; /** * The number of replicas each primary shard has. (Minimum value is `0`, maximum value is `29`) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#number_of_replicas Database#number_of_replicas} */ readonly numberOfReplicas?: number; /** * The number of primary shards that an index should have. (Minimum value is `1`, maximum value is `1024`.) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#number_of_shards Database#number_of_shards} */ readonly numberOfShards?: number; } export declare function databaseOpensearchIndexTemplateToTerraform(struct?: DatabaseOpensearchIndexTemplate | cdktf.IResolvable): any; export declare function databaseOpensearchIndexTemplateToHclTerraform(struct?: DatabaseOpensearchIndexTemplate | cdktf.IResolvable): any; export declare class DatabaseOpensearchIndexTemplateOutputReference 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(): DatabaseOpensearchIndexTemplate | cdktf.IResolvable | undefined; set internalValue(value: DatabaseOpensearchIndexTemplate | cdktf.IResolvable | undefined); private _mappingNestedObjectsLimit?; get mappingNestedObjectsLimit(): number; set mappingNestedObjectsLimit(value: number); resetMappingNestedObjectsLimit(): void; get mappingNestedObjectsLimitInput(): number; private _numberOfReplicas?; get numberOfReplicas(): number; set numberOfReplicas(value: number); resetNumberOfReplicas(): void; get numberOfReplicasInput(): number; private _numberOfShards?; get numberOfShards(): number; set numberOfShards(value: number); resetNumberOfShards(): void; get numberOfShardsInput(): number; } export interface DatabaseOpensearch { /** * ❗ Service name * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#fork_from_service Database#fork_from_service} */ readonly forkFromService?: string; /** * Allow incoming connections from this list of CIDR address block, e.g. `["10.20.0.0/16"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#ip_filter Database#ip_filter} */ readonly ipFilter?: string[]; /** * Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#keep_index_refresh_interval Database#keep_index_refresh_interval} */ readonly keepIndexRefreshInterval?: boolean | cdktf.IResolvable; /** * Maximum number of indexes to keep (Minimum value is `0`) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#max_index_count Database#max_index_count} */ readonly maxIndexCount?: number; /** * ❗ Name of a backup to recover from * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#recovery_backup_name Database#recovery_backup_name} */ readonly recoveryBackupName?: string; /** * OpenSearch-specific settings, in json. e.g.`jsonencode({thread_pool_search_size: 64})`. Use `exo x get-dbaas-settings-opensearch` to get a list of available settings. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#settings Database#settings} */ readonly settings?: string; /** * ❗ OpenSearch major version (`exo dbaas type show opensearch` for reference) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#version Database#version} */ readonly version?: string; /** * dashboards block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#dashboards Database#dashboards} */ readonly dashboards?: DatabaseOpensearchDashboards; /** * index_pattern block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#index_pattern Database#index_pattern} */ readonly indexPattern?: DatabaseOpensearchIndexPattern[] | cdktf.IResolvable; /** * index_template block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#index_template Database#index_template} */ readonly indexTemplate?: DatabaseOpensearchIndexTemplate; } export declare function databaseOpensearchToTerraform(struct?: DatabaseOpensearch | cdktf.IResolvable): any; export declare function databaseOpensearchToHclTerraform(struct?: DatabaseOpensearch | cdktf.IResolvable): any; export declare class DatabaseOpensearchOutputReference 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(): DatabaseOpensearch | cdktf.IResolvable | undefined; set internalValue(value: DatabaseOpensearch | cdktf.IResolvable | undefined); private _forkFromService?; get forkFromService(): string; set forkFromService(value: string); resetForkFromService(): void; get forkFromServiceInput(): string; private _ipFilter?; get ipFilter(): string[]; set ipFilter(value: string[]); resetIpFilter(): void; get ipFilterInput(): string[]; private _keepIndexRefreshInterval?; get keepIndexRefreshInterval(): boolean | cdktf.IResolvable; set keepIndexRefreshInterval(value: boolean | cdktf.IResolvable); resetKeepIndexRefreshInterval(): void; get keepIndexRefreshIntervalInput(): any; private _maxIndexCount?; get maxIndexCount(): number; set maxIndexCount(value: number); resetMaxIndexCount(): void; get maxIndexCountInput(): number; private _recoveryBackupName?; get recoveryBackupName(): string; set recoveryBackupName(value: string); resetRecoveryBackupName(): void; get recoveryBackupNameInput(): string; private _settings?; get settings(): string; set settings(value: string); resetSettings(): void; get settingsInput(): string; private _version?; get version(): string; set version(value: string); resetVersion(): void; get versionInput(): string; private _dashboards; get dashboards(): DatabaseOpensearchDashboardsOutputReference; putDashboards(value: DatabaseOpensearchDashboards): void; resetDashboards(): void; get dashboardsInput(): any; private _indexPattern; get indexPattern(): DatabaseOpensearchIndexPatternList; putIndexPattern(value: DatabaseOpensearchIndexPattern[] | cdktf.IResolvable): void; resetIndexPattern(): void; get indexPatternInput(): any; private _indexTemplate; get indexTemplate(): DatabaseOpensearchIndexTemplateOutputReference; putIndexTemplate(value: DatabaseOpensearchIndexTemplate): void; resetIndexTemplate(): void; get indexTemplateInput(): any; } export interface DatabasePg { /** * A custom administrator account password (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#admin_password Database#admin_password} */ readonly adminPassword?: string; /** * A custom administrator account username (may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#admin_username Database#admin_username} */ readonly adminUsername?: string; /** * The automated backup schedule (`HH:MM`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#backup_schedule Database#backup_schedule} */ readonly backupSchedule?: string; /** * A list of CIDR blocks to allow incoming connections from. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#ip_filter Database#ip_filter} */ readonly ipFilter?: string[]; /** * PostgreSQL configuration settings in JSON format (`exo dbaas type show pg --settings=pg` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#pg_settings Database#pg_settings} */ readonly pgSettings?: string; /** * PgBouncer configuration settings in JSON format (`exo dbaas type show pg --settings=pgbouncer` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#pgbouncer_settings Database#pgbouncer_settings} */ readonly pgbouncerSettings?: string; /** * pglookout configuration settings in JSON format (`exo dbaas type show pg --settings=pglookout` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#pglookout_settings Database#pglookout_settings} */ readonly pglookoutSettings?: string; /** * PostgreSQL major version (`exo dbaas type show pg` for reference; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#version Database#version} */ readonly version?: string; } export declare function databasePgToTerraform(struct?: DatabasePg | cdktf.IResolvable): any; export declare function databasePgToHclTerraform(struct?: DatabasePg | cdktf.IResolvable): any; export declare class DatabasePgOutputReference 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(): DatabasePg | cdktf.IResolvable | undefined; set internalValue(value: DatabasePg | cdktf.IResolvable | undefined); private _adminPassword?; get adminPassword(): string; set adminPassword(value: string); resetAdminPassword(): void; get adminPasswordInput(): string; private _adminUsername?; get adminUsername(): string; set adminUsername(value: string); resetAdminUsername(): void; get adminUsernameInput(): string; private _backupSchedule?; get backupSchedule(): string; set backupSchedule(value: string); resetBackupSchedule(): void; get backupScheduleInput(): string; private _ipFilter?; get ipFilter(): string[]; set ipFilter(value: string[]); resetIpFilter(): void; get ipFilterInput(): string[]; private _pgSettings?; get pgSettings(): string; set pgSettings(value: string); resetPgSettings(): void; get pgSettingsInput(): string; private _pgbouncerSettings?; get pgbouncerSettings(): string; set pgbouncerSettings(value: string); resetPgbouncerSettings(): void; get pgbouncerSettingsInput(): string; private _pglookoutSettings?; get pglookoutSettings(): string; set pglookoutSettings(value: string); resetPglookoutSettings(): void; get pglookoutSettingsInput(): string; private _version?; get version(): string; set version(value: string); resetVersion(): void; get versionInput(): string; } export interface DatabaseTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#create Database#create} */ readonly create?: string; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#delete Database#delete} */ readonly delete?: string; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#read Database#read} */ readonly read?: string; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#update Database#update} */ readonly update?: string; } export declare function databaseTimeoutsToTerraform(struct?: DatabaseTimeouts | cdktf.IResolvable): any; export declare function databaseTimeoutsToHclTerraform(struct?: DatabaseTimeouts | cdktf.IResolvable): any; export declare class DatabaseTimeoutsOutputReference 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(): DatabaseTimeouts | cdktf.IResolvable | undefined; set internalValue(value: DatabaseTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string; } export interface DatabaseValkey { /** * A list of CIDR blocks to allow incoming connections from. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#ip_filter Database#ip_filter} */ readonly ipFilter?: string[]; /** * Valkey configuration settings in JSON format (`exo dbaas type show valkey --settings=valkey` for reference). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#valkey_settings Database#valkey_settings} */ readonly valkeySettings?: string; } export declare function databaseValkeyToTerraform(struct?: DatabaseValkey | cdktf.IResolvable): any; export declare function databaseValkeyToHclTerraform(struct?: DatabaseValkey | cdktf.IResolvable): any; export declare class DatabaseValkeyOutputReference 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(): DatabaseValkey | cdktf.IResolvable | undefined; set internalValue(value: DatabaseValkey | cdktf.IResolvable | undefined); private _ipFilter?; get ipFilter(): string[]; set ipFilter(value: string[]); resetIpFilter(): void; get ipFilterInput(): string[]; private _valkeySettings?; get valkeySettings(): string; set valkeySettings(value: string); resetValkeySettings(): void; get valkeySettingsInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database exoscale_database} */ export declare class Database extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_database"; /** * Generates CDKTF code for importing a Database 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 Database to import * @param importFromId The id of the existing Database that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/database#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Database 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/exoscale/exoscale/0.67.1/docs/resources/database exoscale_database} 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 DatabaseConfig */ constructor(scope: Construct, id: string, config: DatabaseConfig); get caCertificate(): any; get createdAt(): any; get diskSize(): any; get id(): any; private _maintenanceDow?; get maintenanceDow(): string; set maintenanceDow(value: string); resetMaintenanceDow(): void; get maintenanceDowInput(): string; private _maintenanceTime?; get maintenanceTime(): string; set maintenanceTime(value: string); resetMaintenanceTime(): void; get maintenanceTimeInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; get nodeCpus(): any; get nodeMemory(): any; get nodes(): any; private _plan?; get plan(): string; set plan(value: string); get planInput(): string; get state(): any; private _terminationProtection?; get terminationProtection(): boolean | cdktf.IResolvable; set terminationProtection(value: boolean | cdktf.IResolvable); resetTerminationProtection(): void; get terminationProtectionInput(): any; private _type?; get type(): string; set type(value: string); get typeInput(): string; get updatedAt(): any; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; private _grafana; get grafana(): DatabaseGrafanaOutputReference; putGrafana(value: DatabaseGrafana): void; resetGrafana(): void; get grafanaInput(): any; private _kafka; get kafka(): DatabaseKafkaOutputReference; putKafka(value: DatabaseKafka): void; resetKafka(): void; get kafkaInput(): any; private _mysql; get mysql(): DatabaseMysqlOutputReference; putMysql(value: DatabaseMysql): void; resetMysql(): void; get mysqlInput(): any; private _opensearch; get opensearch(): DatabaseOpensearchOutputReference; putOpensearch(value: DatabaseOpensearch): void; resetOpensearch(): void; get opensearchInput(): any; private _pg; get pg(): DatabasePgOutputReference; putPg(value: DatabasePg): void; resetPg(): void; get pgInput(): any; private _timeouts; get timeouts(): DatabaseTimeoutsOutputReference; putTimeouts(value: DatabaseTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; private _valkey; get valkey(): DatabaseValkeyOutputReference; putValkey(value: DatabaseValkey): void; resetValkey(): void; get valkeyInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }