|
| 1 | +from dataclasses import dataclass |
| 2 | +from typing import Optional |
| 3 | + |
1 | 4 | from deprecated import deprecated
|
2 | 5 |
|
3 |
| -from linode_api4.objects import Base, DerivedBase, MappedObject, Property |
| 6 | +from linode_api4.objects import ( |
| 7 | + Base, |
| 8 | + DerivedBase, |
| 9 | + JSONObject, |
| 10 | + MappedObject, |
| 11 | + Property, |
| 12 | +) |
4 | 13 |
|
5 | 14 |
|
6 | 15 | class DatabaseType(Base):
|
@@ -128,6 +137,143 @@ class PostgreSQLDatabaseBackup(DatabaseBackup):
|
128 | 137 | api_endpoint = "/databases/postgresql/instances/{database_id}/backups/{id}"
|
129 | 138 |
|
130 | 139 |
|
| 140 | +@dataclass |
| 141 | +class MySQLDatabaseConfigMySQLOptions(JSONObject): |
| 142 | + """ |
| 143 | + MySQLDatabaseConfigMySQLOptions represents the fields in the mysql |
| 144 | + field of the MySQLDatabaseConfigOptions class |
| 145 | + """ |
| 146 | + |
| 147 | + connect_timeout: Optional[int] = None |
| 148 | + default_time_zone: Optional[str] = None |
| 149 | + group_concat_max_len: Optional[float] = None |
| 150 | + information_schema_stats_expiry: Optional[int] = None |
| 151 | + innodb_change_buffer_max_size: Optional[int] = None |
| 152 | + innodb_flush_neighbors: Optional[int] = None |
| 153 | + innodb_ft_min_token_size: Optional[int] = None |
| 154 | + innodb_ft_server_stopword_table: Optional[str] = None |
| 155 | + innodb_lock_wait_timeout: Optional[int] = None |
| 156 | + innodb_log_buffer_size: Optional[int] = None |
| 157 | + innodb_online_alter_log_max_size: Optional[int] = None |
| 158 | + innodb_print_all_deadlocks: Optional[bool] = None |
| 159 | + innodb_read_io_threads: Optional[int] = None |
| 160 | + innodb_rollback_on_timeout: Optional[bool] = None |
| 161 | + innodb_thread_concurrency: Optional[int] = None |
| 162 | + innodb_write_io_threads: Optional[int] = None |
| 163 | + interactive_timeout: Optional[int] = None |
| 164 | + internal_tmp_mem_storage_engine: Optional[str] = None |
| 165 | + log_output: Optional[str] = None |
| 166 | + long_query_time: Optional[float] = None |
| 167 | + max_allowed_packet: Optional[int] = None |
| 168 | + max_heap_table_size: Optional[int] = None |
| 169 | + net_buffer_length: Optional[int] = None |
| 170 | + net_read_timeout: Optional[int] = None |
| 171 | + net_write_timeout: Optional[int] = None |
| 172 | + slow_query_log: Optional[bool] = None |
| 173 | + sort_buffer_size: Optional[int] = None |
| 174 | + sql_mode: Optional[str] = None |
| 175 | + sql_require_primary_key: Optional[bool] = None |
| 176 | + tmp_table_size: Optional[int] = None |
| 177 | + wait_timeout: Optional[int] = None |
| 178 | + |
| 179 | + |
| 180 | +@dataclass |
| 181 | +class MySQLDatabaseConfigOptions(JSONObject): |
| 182 | + """ |
| 183 | + MySQLDatabaseConfigOptions is used to specify |
| 184 | + a MySQL Database Cluster's configuration options during its creation. |
| 185 | + """ |
| 186 | + |
| 187 | + mysql: Optional[MySQLDatabaseConfigMySQLOptions] = None |
| 188 | + binlog_retention_period: Optional[int] = None |
| 189 | + service_log: Optional[bool] = None |
| 190 | + |
| 191 | + |
| 192 | +@dataclass |
| 193 | +class PostgreSQLDatabasePGLookoutConfigOptions(JSONObject): |
| 194 | + """ |
| 195 | + PostgreSQLDatabasePGLookoutConfigOptions represents the fields in the pglookout |
| 196 | + field of the PostgreSQLDatabasePGConfigOptions class |
| 197 | + """ |
| 198 | + |
| 199 | + max_failover_replication_time_lag: Optional[int] = None |
| 200 | + |
| 201 | + |
| 202 | +@dataclass |
| 203 | +class PostgreSQLDatabasePGConfigOptions(JSONObject): |
| 204 | + """ |
| 205 | + PostgreSQLDatabasePGConfigOptions represents the fields in the pg |
| 206 | + field of the PostgreSQLDatabasePGConfigOptions class |
| 207 | + """ |
| 208 | + |
| 209 | + autovacuum_analyze_scale_factor: Optional[float] = None |
| 210 | + autovacuum_analyze_threshold: Optional[int] = None |
| 211 | + autovacuum_freeze_max_age: Optional[int] = None |
| 212 | + autovacuum_max_workers: Optional[int] = None |
| 213 | + autovacuum_naptime: Optional[int] = None |
| 214 | + autovacuum_vacuum_cost_delay: Optional[int] = None |
| 215 | + autovacuum_vacuum_cost_limit: Optional[int] = None |
| 216 | + autovacuum_vacuum_scale_factor: Optional[float] = None |
| 217 | + autovacuum_vacuum_threshold: Optional[int] = None |
| 218 | + bgwriter_delay: Optional[int] = None |
| 219 | + bgwriter_flush_after: Optional[int] = None |
| 220 | + bgwriter_lru_maxpages: Optional[int] = None |
| 221 | + bgwriter_lru_multiplier: Optional[float] = None |
| 222 | + deadlock_timeout: Optional[int] = None |
| 223 | + default_toast_compression: Optional[str] = None |
| 224 | + idle_in_transaction_session_timeout: Optional[int] = None |
| 225 | + jit: Optional[bool] = None |
| 226 | + log_autovacuum_min_duration: Optional[int] = None |
| 227 | + log_error_verbosity: Optional[str] = None |
| 228 | + log_line_prefix: Optional[str] = None |
| 229 | + log_min_duration_statement: Optional[int] = None |
| 230 | + log_temp_files: Optional[int] = None |
| 231 | + max_files_per_process: Optional[int] = None |
| 232 | + max_locks_per_transaction: Optional[int] = None |
| 233 | + max_logical_replication_workers: Optional[int] = None |
| 234 | + max_parallel_workers: Optional[int] = None |
| 235 | + max_parallel_workers_per_gather: Optional[int] = None |
| 236 | + max_pred_locks_per_transaction: Optional[int] = None |
| 237 | + max_prepared_transactions: Optional[int] = None |
| 238 | + max_replication_slots: Optional[int] = None |
| 239 | + max_slot_wal_keep_size: Optional[int] = None |
| 240 | + max_stack_depth: Optional[int] = None |
| 241 | + max_standby_archive_delay: Optional[int] = None |
| 242 | + max_standby_streaming_delay: Optional[int] = None |
| 243 | + max_wal_senders: Optional[int] = None |
| 244 | + max_worker_processes: Optional[int] = None |
| 245 | + password_encryption: Optional[str] = None |
| 246 | + pg_partman_bgw_interval: Optional[int] = None |
| 247 | + pg_partman_bgw_role: Optional[str] = None |
| 248 | + pg_stat_monitor_pgsm_enable_query_plan: Optional[bool] = None |
| 249 | + pg_stat_monitor_pgsm_max_buckets: Optional[int] = None |
| 250 | + pg_stat_statements_track: Optional[str] = None |
| 251 | + temp_file_limit: Optional[int] = None |
| 252 | + timezone: Optional[str] = None |
| 253 | + track_activity_query_size: Optional[int] = None |
| 254 | + track_commit_timestamp: Optional[str] = None |
| 255 | + track_functions: Optional[str] = None |
| 256 | + track_io_timing: Optional[str] = None |
| 257 | + wal_sender_timeout: Optional[int] = None |
| 258 | + wal_writer_delay: Optional[int] = None |
| 259 | + |
| 260 | + |
| 261 | +@dataclass |
| 262 | +class PostgreSQLDatabaseConfigOptions(JSONObject): |
| 263 | + """ |
| 264 | + PostgreSQLDatabaseConfigOptions is used to specify |
| 265 | + a PostgreSQL Database Cluster's configuration options during its creation. |
| 266 | + """ |
| 267 | + |
| 268 | + pg: Optional[PostgreSQLDatabasePGConfigOptions] = None |
| 269 | + pg_stat_monitor_enable: Optional[bool] = None |
| 270 | + pglookout: Optional[PostgreSQLDatabasePGLookoutConfigOptions] = None |
| 271 | + service_log: Optional[bool] = None |
| 272 | + shared_buffers_percentage: Optional[float] = None |
| 273 | + synchronous_replication: Optional[str] = None |
| 274 | + work_mem: Optional[int] = None |
| 275 | + |
| 276 | + |
131 | 277 | class MySQLDatabase(Base):
|
132 | 278 | """
|
133 | 279 | An accessible Managed MySQL Database.
|
@@ -158,6 +304,7 @@ class MySQLDatabase(Base):
|
158 | 304 | "updated": Property(volatile=True, is_datetime=True),
|
159 | 305 | "updates": Property(mutable=True),
|
160 | 306 | "version": Property(),
|
| 307 | + "engine_config": Property(mutable=True), |
161 | 308 | }
|
162 | 309 |
|
163 | 310 | @property
|
@@ -321,6 +468,7 @@ class PostgreSQLDatabase(Base):
|
321 | 468 | "updated": Property(volatile=True, is_datetime=True),
|
322 | 469 | "updates": Property(mutable=True),
|
323 | 470 | "version": Property(),
|
| 471 | + "engine_config": Property(mutable=True), |
324 | 472 | }
|
325 | 473 |
|
326 | 474 | @property
|
|
0 commit comments