aws_lite_rs/types/rds.rs
1//! Types for the Amazon Relational Database Service API (v1).
2//!
3//! Auto-generated from the AWS Botocore Model.
4//! **Do not edit manually** — modify the manifest and re-run codegen.
5
6use serde::{Deserialize, Serialize};
7
8///
9/// **AWS API**: `rds.v1.DescribeDBInstancesMessage`
10/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DescribeDBInstancesMessage>
11#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12#[serde(rename_all = "PascalCase")]
13pub struct DescribeDBInstancesRequest {
14 /// The user-supplied instance identifier or the Amazon Resource Name (ARN) of the DB
15 /// instance. If this parameter is specified, information from only the specific DB instance
16 /// is returned. This parameter isn't case-sensitive. Constraints: If supplied, must match
17 /// the identifier of an existing DB instance.
18 #[serde(rename = "DBInstanceIdentifier")]
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub db_instance_identifier: Option<String>,
21
22 /// A filter that specifies one or more DB instances to describe. Supported Filters: db-
23 /// cluster-id
24 /// - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The
25 /// results list only includes information about the DB instances associated with the DB
26 /// clusters identified by these ARNs. db-instance-id
27 /// - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The
28 /// results list only includes information about the DB instances identified by these
29 /// ARNs. dbi-resource-id
30 /// - Accepts DB instance resource identifiers. The results list only includes information
31 /// about the DB instances identified by these DB instance resource identifiers. domain
32 /// - Accepts Active Directory directory IDs. The results list only includes information
33 /// about the DB instances associated with these domains. engine
34 /// - Accepts engine names. The results list only includes information about the DB
35 /// instances for these engines.
36 #[serde(default)]
37 #[serde(skip_serializing_if = "Vec::is_empty")]
38 pub filters: Vec<Filter>,
39
40 /// The maximum number of records to include in the response. If more records exist than the
41 /// specified MaxRecords value, a pagination token called a marker is included in the
42 /// response so that you can retrieve the remaining results. Default: 100 Constraints:
43 /// Minimum 20, maximum 100.
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub max_records: Option<i32>,
46
47 /// An optional pagination token provided by a previous DescribeDBInstances request. If this
48 /// parameter is specified, the response includes only records beyond the marker, up to the
49 /// value specified by MaxRecords.
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub marker: Option<String>,
52}
53
54impl DescribeDBInstancesRequest {
55 #[cfg(any(test, feature = "test-support"))]
56 /// Create a fixture instance for testing.
57 pub fn fixture() -> Self {
58 Self {
59 db_instance_identifier: Some("test-db_instance_identifier".into()),
60 filters: vec![],
61 max_records: Some(100),
62 marker: Some("test-marker".into()),
63 }
64 }
65}
66
67/// Contains the result of a successful invocation of the DescribeDBInstances action.
68///
69/// **AWS API**: `rds.v1.DBInstanceMessage`
70/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DBInstanceMessage>
71#[derive(Debug, Clone, Default, Serialize, Deserialize)]
72#[serde(rename_all = "PascalCase")]
73pub struct DescribeDBInstancesResponse {
74 /// A list of DBInstance instances.
75 #[serde(rename = "DBInstances")]
76 #[serde(default)]
77 #[serde(skip_serializing_if = "Vec::is_empty")]
78 pub db_instances: Vec<DBInstance>,
79
80 /// An optional pagination token provided by a previous request. If this parameter is
81 /// specified, the response includes only records beyond the marker, up to the value
82 /// specified by MaxRecords .
83 #[serde(skip_serializing_if = "Option::is_none")]
84 pub marker: Option<String>,
85}
86
87impl DescribeDBInstancesResponse {
88 #[cfg(any(test, feature = "test-support"))]
89 /// Create a fixture instance for testing.
90 pub fn fixture() -> Self {
91 Self {
92 db_instances: vec![],
93 marker: Some("test-marker".into()),
94 }
95 }
96}
97
98/// Contains the details of an Amazon RDS DB instance. This data type is used as a response
99/// element in the operations CreateDBInstance, CreateDBInstanceReadReplica, DeleteDBInstance,
100/// DescribeDBInstances, ModifyDBInstance, PromoteReadReplica, RebootDBInstance,
101/// RestoreDBInstanceFromDBSnapshot, RestoreDBInstanceFromS3, RestoreDBInstanceToPointInTime,
102/// StartDBInstance, and StopDBInstance.
103///
104/// **AWS API**: `rds.v1.DBInstance`
105/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DBInstance>
106///
107/// ## Coverage
108/// 24 of 90 fields included.
109/// Omitted fields:
110/// - `DBSecurityGroups` — not selected in manifest
111/// - `VpcSecurityGroups` — not selected in manifest
112/// - `DBParameterGroups` — not selected in manifest
113/// - `DBSubnetGroup` — not selected in manifest
114/// - `UpgradeRolloutOrder` — not selected in manifest
115/// - `PendingModifiedValues` — not selected in manifest
116/// - `LatestRestorableTime` — not selected in manifest
117/// - `ReadReplicaSourceDBInstanceIdentifier` — not selected in manifest
118/// - `ReadReplicaDBInstanceIdentifiers` — not selected in manifest
119/// - `ReadReplicaDBClusterIdentifiers` — not selected in manifest
120/// - `ReplicaMode` — not selected in manifest
121/// - `LicenseModel` — not selected in manifest
122/// - `OptionGroupMemberships` — not selected in manifest
123/// - `CharacterSetName` — not selected in manifest
124/// - `NcharCharacterSetName` — not selected in manifest
125/// - `SecondaryAvailabilityZone` — not selected in manifest
126/// - `StatusInfos` — not selected in manifest
127/// - `TdeCredentialArn` — not selected in manifest
128/// - `DbInstancePort` — not selected in manifest
129/// - `DBClusterIdentifier` — not selected in manifest
130/// - `CACertificateIdentifier` — not selected in manifest
131/// - `DomainMemberships` — not selected in manifest
132/// - `CopyTagsToSnapshot` — not selected in manifest
133/// - `MonitoringInterval` — not selected in manifest
134/// - `EnhancedMonitoringResourceArn` — not selected in manifest
135/// - `MonitoringRoleArn` — not selected in manifest
136/// - `PromotionTier` — not selected in manifest
137/// - `Timezone` — not selected in manifest
138/// - `IAMDatabaseAuthenticationEnabled` — not selected in manifest
139/// - `DatabaseInsightsMode` — not selected in manifest
140/// - `PerformanceInsightsEnabled` — not selected in manifest
141/// - `PerformanceInsightsKMSKeyId` — not selected in manifest
142/// - `PerformanceInsightsRetentionPeriod` — not selected in manifest
143/// - `EnabledCloudwatchLogsExports` — not selected in manifest
144/// - `ProcessorFeatures` — not selected in manifest
145/// - `DeletionProtection` — not selected in manifest
146/// - `AssociatedRoles` — not selected in manifest
147/// - `ListenerEndpoint` — not selected in manifest
148/// - `MaxAllocatedStorage` — not selected in manifest
149/// - `TagList` — not selected in manifest
150/// - `AutomationMode` — not selected in manifest
151/// - `ResumeFullAutomationModeTime` — not selected in manifest
152/// - `CustomerOwnedIpEnabled` — not selected in manifest
153/// - `NetworkType` — not selected in manifest
154/// - `ActivityStreamStatus` — not selected in manifest
155/// - `ActivityStreamKmsKeyId` — not selected in manifest
156/// - `ActivityStreamKinesisStreamName` — not selected in manifest
157/// - `ActivityStreamMode` — not selected in manifest
158/// - `ActivityStreamEngineNativeAuditFieldsIncluded` — not selected in manifest
159/// - `AwsBackupRecoveryPointArn` — not selected in manifest
160/// - `DBInstanceAutomatedBackupsReplications` — not selected in manifest
161/// - `BackupTarget` — not selected in manifest
162/// - `AutomaticRestartTime` — not selected in manifest
163/// - `CustomIamInstanceProfile` — not selected in manifest
164/// - `ActivityStreamPolicyStatus` — not selected in manifest
165/// - `CertificateDetails` — not selected in manifest
166/// - `DBSystemId` — not selected in manifest
167/// - `MasterUserSecret` — not selected in manifest
168/// - `ReadReplicaSourceDBClusterIdentifier` — not selected in manifest
169/// - `PercentProgress` — not selected in manifest
170/// - `MultiTenant` — not selected in manifest
171/// - `DedicatedLogVolume` — not selected in manifest
172/// - `IsStorageConfigUpgradeAvailable` — not selected in manifest
173/// - `EngineLifecycleSupport` — not selected in manifest
174/// - `AdditionalStorageVolumes` — not selected in manifest
175/// - `StorageVolumeStatus` — not selected in manifest
176#[derive(Debug, Clone, Default, Serialize, Deserialize)]
177#[serde(rename_all = "PascalCase")]
178pub struct DBInstance {
179 /// The user-supplied database identifier. This identifier is the unique key that identifies
180 /// a DB instance.
181 #[serde(rename = "DBInstanceIdentifier")]
182 #[serde(skip_serializing_if = "Option::is_none")]
183 pub db_instance_identifier: Option<String>,
184
185 /// The name of the compute and memory capacity class of the DB instance.
186 #[serde(rename = "DBInstanceClass")]
187 #[serde(skip_serializing_if = "Option::is_none")]
188 pub db_instance_class: Option<String>,
189
190 /// The database engine used for this DB instance.
191 #[serde(skip_serializing_if = "Option::is_none")]
192 pub engine: Option<String>,
193
194 /// The current state of this database. For information about DB instance statuses, see
195 /// Viewing DB instance status in the Amazon RDS User Guide.
196 #[serde(rename = "DBInstanceStatus")]
197 #[serde(skip_serializing_if = "Option::is_none")]
198 pub db_instance_status: Option<String>,
199
200 /// The master username for the DB instance.
201 #[serde(skip_serializing_if = "Option::is_none")]
202 pub master_username: Option<String>,
203
204 /// The initial database name that you provided (if required) when you created the DB
205 /// instance. This name is returned for the life of your DB instance. For an RDS for Oracle
206 /// CDB instance, the name identifies the PDB rather than the CDB.
207 #[serde(rename = "DBName")]
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pub db_name: Option<String>,
210
211 /// The connection endpoint for the DB instance. The endpoint might not be shown for
212 /// instances with the status of creating.
213 #[serde(skip_serializing_if = "Option::is_none")]
214 pub endpoint: Option<Endpoint>,
215
216 /// The amount of storage in gibibytes (GiB) allocated for the DB instance.
217 #[serde(skip_serializing_if = "Option::is_none")]
218 pub allocated_storage: Option<i32>,
219
220 /// The date and time when the DB instance was created.
221 #[serde(skip_serializing_if = "Option::is_none")]
222 pub instance_create_time: Option<String>,
223
224 /// The daily time range during which automated backups are created if automated backups are
225 /// enabled, as determined by the BackupRetentionPeriod.
226 #[serde(skip_serializing_if = "Option::is_none")]
227 pub preferred_backup_window: Option<String>,
228
229 /// The number of days for which automatic DB snapshots are retained.
230 #[serde(skip_serializing_if = "Option::is_none")]
231 pub backup_retention_period: Option<i32>,
232
233 /// The name of the Availability Zone where the DB instance is located.
234 #[serde(skip_serializing_if = "Option::is_none")]
235 pub availability_zone: Option<String>,
236
237 /// The weekly time range during which system maintenance can occur, in Universal
238 /// Coordinated Time (UTC).
239 #[serde(skip_serializing_if = "Option::is_none")]
240 pub preferred_maintenance_window: Option<String>,
241
242 /// Indicates whether the DB instance is a Multi-AZ deployment. This setting doesn't apply
243 /// to RDS Custom DB instances.
244 #[serde(rename = "MultiAZ")]
245 #[serde(skip_serializing_if = "Option::is_none")]
246 pub multi_az: Option<bool>,
247
248 /// The version of the database engine.
249 #[serde(skip_serializing_if = "Option::is_none")]
250 pub engine_version: Option<String>,
251
252 /// Indicates whether minor version patches are applied automatically. For more information
253 /// about automatic minor version upgrades, see Automatically upgrading the minor engine
254 /// version.
255 #[serde(skip_serializing_if = "Option::is_none")]
256 pub auto_minor_version_upgrade: Option<bool>,
257
258 /// Indicates whether the DB instance is publicly accessible. When the DB instance is
259 /// publicly accessible and you connect from outside of the DB instance's virtual private
260 /// cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address.
261 /// When you connect from within the same VPC as the DB instance, the endpoint resolves to
262 /// the private IP address. Access to the DB cluster is ultimately controlled by the
263 /// security group it uses. That public access isn't permitted if the security group
264 /// assigned to the DB cluster doesn't permit it. When the DB instance isn't publicly
265 /// accessible, it is an internal DB instance with a DNS name that resolves to a private IP
266 /// address. For more information, see CreateDBInstance.
267 #[serde(skip_serializing_if = "Option::is_none")]
268 pub publicly_accessible: Option<bool>,
269
270 /// The storage type associated with the DB instance.
271 #[serde(skip_serializing_if = "Option::is_none")]
272 pub storage_type: Option<String>,
273
274 /// Indicates whether the DB instance is encrypted.
275 #[serde(skip_serializing_if = "Option::is_none")]
276 pub storage_encrypted: Option<bool>,
277
278 /// If StorageEncrypted is enabled, the Amazon Web Services KMS key identifier for the
279 /// encrypted DB instance. The Amazon Web Services KMS key identifier is the key ARN, key
280 /// ID, alias ARN, or alias name for the KMS key.
281 #[serde(skip_serializing_if = "Option::is_none")]
282 pub kms_key_id: Option<String>,
283
284 /// The Amazon Web Services Region-unique, immutable identifier for the DB instance. This
285 /// identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon
286 /// Web Services KMS key for the DB instance is accessed.
287 #[serde(skip_serializing_if = "Option::is_none")]
288 pub dbi_resource_id: Option<String>,
289
290 /// The Amazon Resource Name (ARN) for the DB instance.
291 #[serde(rename = "DBInstanceArn")]
292 #[serde(skip_serializing_if = "Option::is_none")]
293 pub db_instance_arn: Option<String>,
294
295 /// The Provisioned IOPS (I/O operations per second) value for the DB instance.
296 #[serde(skip_serializing_if = "Option::is_none")]
297 pub iops: Option<i32>,
298
299 /// The storage throughput for the DB instance. This setting applies only to the gp3 storage
300 /// type.
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub storage_throughput: Option<i32>,
303}
304
305impl DBInstance {
306 #[cfg(any(test, feature = "test-support"))]
307 /// Create a fixture instance for testing.
308 pub fn fixture() -> Self {
309 Self {
310 db_instance_identifier: Some("test-db_instance_identifier".into()),
311 db_instance_class: Some("test-db_instance_class".into()),
312 engine: Some("test-engine".into()),
313 db_instance_status: Some("test-db_instance_status".into()),
314 master_username: Some("test-master_username".into()),
315 db_name: Some("test-db_name".into()),
316 endpoint: Some(Endpoint::fixture()),
317 allocated_storage: Some(100),
318 instance_create_time: Some("test-instance_create_time".into()),
319 preferred_backup_window: Some("test-preferred_backup_window".into()),
320 backup_retention_period: Some(100),
321 availability_zone: Some("test-availability_zone".into()),
322 preferred_maintenance_window: Some("test-preferred_maintenance_window".into()),
323 multi_az: Some(false),
324 engine_version: Some("test-engine_version".into()),
325 auto_minor_version_upgrade: Some(false),
326 publicly_accessible: Some(false),
327 storage_type: Some("test-storage_type".into()),
328 storage_encrypted: Some(false),
329 kms_key_id: Some("test-kms_key_id".into()),
330 dbi_resource_id: Some("test-dbi_resource_id".into()),
331 db_instance_arn: Some("test-db_instance_arn".into()),
332 iops: Some(100),
333 storage_throughput: Some(100),
334 }
335 }
336}
337
338/// This data type represents the information you need to connect to an Amazon RDS DB instance.
339/// This data type is used as a response element in the following actions: CreateDBInstance
340/// DescribeDBInstances DeleteDBInstance For the data structure that represents Amazon Aurora DB
341/// cluster endpoints, see DBClusterEndpoint.
342///
343/// **AWS API**: `rds.v1.Endpoint`
344/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//Endpoint>
345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
346#[serde(rename_all = "PascalCase")]
347pub struct Endpoint {
348 /// Specifies the DNS address of the DB instance.
349 #[serde(skip_serializing_if = "Option::is_none")]
350 pub address: Option<String>,
351
352 /// Specifies the port that the database engine is listening on.
353 #[serde(skip_serializing_if = "Option::is_none")]
354 pub port: Option<i32>,
355
356 /// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
357 #[serde(skip_serializing_if = "Option::is_none")]
358 pub hosted_zone_id: Option<String>,
359}
360
361impl Endpoint {
362 #[cfg(any(test, feature = "test-support"))]
363 /// Create a fixture instance for testing.
364 pub fn fixture() -> Self {
365 Self {
366 address: Some("test-address".into()),
367 port: Some(100),
368 hosted_zone_id: Some("test-hosted_zone_id".into()),
369 }
370 }
371}
372
373/// A filter name and value pair that is used to return a more specific list of results from a
374/// describe operation. Filters can be used to match a set of resources by specific criteria,
375/// such as IDs. The filters supported by a describe operation are documented with the describe
376/// operation. Currently, wildcards are not supported in filters. The following actions can be
377/// filtered: DescribeDBClusterBacktracks DescribeDBClusterEndpoints DescribeDBClusters
378/// DescribeDBInstances DescribeDBRecommendations DescribeDBShardGroups
379/// DescribePendingMaintenanceActions
380///
381/// **AWS API**: `rds.v1.Filter`
382/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//Filter>
383#[derive(Debug, Clone, Default, Serialize, Deserialize)]
384#[serde(rename_all = "PascalCase")]
385pub struct Filter {
386 /// The name of the filter. Filter names are case-sensitive.
387 pub name: String,
388
389 /// One or more filter values. Filter values are case-sensitive.
390 #[serde(default)]
391 pub values: Vec<String>,
392}
393
394impl Filter {
395 #[cfg(any(test, feature = "test-support"))]
396 /// Create a fixture instance for testing.
397 pub fn fixture() -> Self {
398 Self {
399 name: "test-name".into(),
400 values: vec![],
401 }
402 }
403}
404
405///
406/// **AWS API**: `rds.v1.DescribeDBSnapshotsMessage`
407/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DescribeDBSnapshotsMessage>
408///
409/// ## Coverage
410/// 8 of 9 fields included.
411/// Omitted fields:
412/// - `DbiResourceId` — not selected in manifest
413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
414#[serde(rename_all = "PascalCase")]
415pub struct DescribeDBSnapshotsRequest {
416 /// The ID of the DB instance to retrieve the list of DB snapshots for. This parameter isn't
417 /// case-sensitive. Constraints: If supplied, must match the identifier of an existing
418 /// DBInstance.
419 #[serde(rename = "DBInstanceIdentifier")]
420 #[serde(skip_serializing_if = "Option::is_none")]
421 pub db_instance_identifier: Option<String>,
422
423 /// A specific DB snapshot identifier to describe. This value is stored as a lowercase
424 /// string. Constraints: If supplied, must match the identifier of an existing DBSnapshot.
425 /// If this identifier is for an automated snapshot, the SnapshotType parameter must also be
426 /// specified.
427 #[serde(rename = "DBSnapshotIdentifier")]
428 #[serde(skip_serializing_if = "Option::is_none")]
429 pub db_snapshot_identifier: Option<String>,
430
431 /// The type of snapshots to be returned. You can specify one of the following values:
432 /// automated
433 /// - Return all DB snapshots that have been automatically taken by Amazon RDS for my Amazon
434 /// Web Services account. manual
435 /// - Return all DB snapshots that have been taken by my Amazon Web Services account. shared
436 /// - Return all manual DB snapshots that have been shared to my Amazon Web Services
437 /// account. public
438 /// - Return all DB snapshots that have been marked as public. awsbackup
439 /// - Return the DB snapshots managed by the Amazon Web Services Backup service. For
440 /// information about Amazon Web Services Backup, see the Amazon Web Services Backup
441 /// Developer Guide. The awsbackup type does not apply to Aurora. If you don't specify a
442 /// SnapshotType value, then both automated and manual snapshots are returned. Shared and
443 /// public DB snapshots are not included in the returned results by default. You can
444 /// include shared snapshots with these results by enabling the IncludeShared parameter.
445 /// You can include public snapshots with these results by enabling the IncludePublic
446 /// parameter. The IncludeShared and IncludePublic parameters don't apply for SnapshotType
447 /// values of manual or automated. The IncludePublic parameter doesn't apply when
448 /// SnapshotType is set to shared. The IncludeShared parameter doesn't apply when
449 /// SnapshotType is set to public.
450 #[serde(skip_serializing_if = "Option::is_none")]
451 pub snapshot_type: Option<String>,
452
453 /// A filter that specifies one or more DB snapshots to describe. Supported filters: db-
454 /// instance-id
455 /// - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). db-
456 /// snapshot-id
457 /// - Accepts DB snapshot identifiers. dbi-resource-id
458 /// - Accepts identifiers of source DB instances. snapshot-type
459 /// - Accepts types of DB snapshots. engine
460 /// - Accepts names of database engines.
461 #[serde(default)]
462 #[serde(skip_serializing_if = "Vec::is_empty")]
463 pub filters: Vec<Filter>,
464
465 /// The maximum number of records to include in the response. If more records exist than the
466 /// specified MaxRecords value, a pagination token called a marker is included in the
467 /// response so that you can retrieve the remaining results. Default: 100 Constraints:
468 /// Minimum 20, maximum 100.
469 #[serde(skip_serializing_if = "Option::is_none")]
470 pub max_records: Option<i32>,
471
472 /// An optional pagination token provided by a previous DescribeDBSnapshots request. If this
473 /// parameter is specified, the response includes only records beyond the marker, up to the
474 /// value specified by MaxRecords.
475 #[serde(skip_serializing_if = "Option::is_none")]
476 pub marker: Option<String>,
477
478 /// Specifies whether to include shared manual DB cluster snapshots from other Amazon Web
479 /// Services accounts that this Amazon Web Services account has been given permission to
480 /// copy or restore. By default, these snapshots are not included. You can give an Amazon
481 /// Web Services account permission to restore a manual DB snapshot from another Amazon Web
482 /// Services account by using the ModifyDBSnapshotAttribute API action. This setting doesn't
483 /// apply to RDS Custom.
484 #[serde(skip_serializing_if = "Option::is_none")]
485 pub include_shared: Option<bool>,
486
487 /// Specifies whether to include manual DB cluster snapshots that are public and can be
488 /// copied or restored by any Amazon Web Services account. By default, the public snapshots
489 /// are not included. You can share a manual DB snapshot as public by using the
490 /// ModifyDBSnapshotAttribute API. This setting doesn't apply to RDS Custom.
491 #[serde(skip_serializing_if = "Option::is_none")]
492 pub include_public: Option<bool>,
493}
494
495impl DescribeDBSnapshotsRequest {
496 #[cfg(any(test, feature = "test-support"))]
497 /// Create a fixture instance for testing.
498 pub fn fixture() -> Self {
499 Self {
500 db_instance_identifier: Some("test-db_instance_identifier".into()),
501 db_snapshot_identifier: Some("test-db_snapshot_identifier".into()),
502 snapshot_type: Some("test-snapshot_type".into()),
503 filters: vec![],
504 max_records: Some(100),
505 marker: Some("test-marker".into()),
506 include_shared: Some(false),
507 include_public: Some(false),
508 }
509 }
510}
511
512/// Contains the result of a successful invocation of the DescribeDBSnapshots action.
513///
514/// **AWS API**: `rds.v1.DBSnapshotMessage`
515/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DBSnapshotMessage>
516#[derive(Debug, Clone, Default, Serialize, Deserialize)]
517#[serde(rename_all = "PascalCase")]
518pub struct DescribeDBSnapshotsResponse {
519 /// A list of DBSnapshot instances.
520 #[serde(rename = "DBSnapshots")]
521 #[serde(default)]
522 #[serde(skip_serializing_if = "Vec::is_empty")]
523 pub db_snapshots: Vec<DBSnapshot>,
524
525 /// An optional pagination token provided by a previous request. If this parameter is
526 /// specified, the response includes only records beyond the marker, up to the value
527 /// specified by MaxRecords.
528 #[serde(skip_serializing_if = "Option::is_none")]
529 pub marker: Option<String>,
530}
531
532impl DescribeDBSnapshotsResponse {
533 #[cfg(any(test, feature = "test-support"))]
534 /// Create a fixture instance for testing.
535 pub fn fixture() -> Self {
536 Self {
537 db_snapshots: vec![],
538 marker: Some("test-marker".into()),
539 }
540 }
541}
542
543/// Contains the details of an Amazon RDS DB snapshot. This data type is used as a response
544/// element in the DescribeDBSnapshots action.
545///
546/// **AWS API**: `rds.v1.DBSnapshot`
547/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DBSnapshot>
548///
549/// ## Coverage
550/// 20 of 40 fields included.
551/// Omitted fields:
552/// - `LicenseModel` — not selected in manifest
553/// - `OptionGroupName` — not selected in manifest
554/// - `SourceRegion` — not selected in manifest
555/// - `SourceDBSnapshotIdentifier` — not selected in manifest
556/// - `TdeCredentialArn` — not selected in manifest
557/// - `BackupRetentionPeriod` — not selected in manifest
558/// - `PreferredBackupWindow` — not selected in manifest
559/// - `Timezone` — not selected in manifest
560/// - `IAMDatabaseAuthenticationEnabled` — not selected in manifest
561/// - `ProcessorFeatures` — not selected in manifest
562/// - `DbiResourceId` — not selected in manifest
563/// - `TagList` — not selected in manifest
564/// - `SnapshotTarget` — not selected in manifest
565/// - `OriginalSnapshotCreateTime` — not selected in manifest
566/// - `SnapshotDatabaseTime` — not selected in manifest
567/// - `DBSystemId` — not selected in manifest
568/// - `MultiTenant` — not selected in manifest
569/// - `DedicatedLogVolume` — not selected in manifest
570/// - `AdditionalStorageVolumes` — not selected in manifest
571/// - `SnapshotAvailabilityZone` — not selected in manifest
572#[derive(Debug, Clone, Default, Serialize, Deserialize)]
573#[serde(rename_all = "PascalCase")]
574pub struct DBSnapshot {
575 /// Specifies the identifier for the DB snapshot.
576 #[serde(rename = "DBSnapshotIdentifier")]
577 #[serde(skip_serializing_if = "Option::is_none")]
578 pub db_snapshot_identifier: Option<String>,
579
580 /// Specifies the DB instance identifier of the DB instance this DB snapshot was created
581 /// from.
582 #[serde(rename = "DBInstanceIdentifier")]
583 #[serde(skip_serializing_if = "Option::is_none")]
584 pub db_instance_identifier: Option<String>,
585
586 /// Specifies when the snapshot was taken in Coordinated Universal Time (UTC). Changes for
587 /// the copy when the snapshot is copied.
588 #[serde(skip_serializing_if = "Option::is_none")]
589 pub snapshot_create_time: Option<String>,
590
591 /// Specifies the name of the database engine.
592 #[serde(skip_serializing_if = "Option::is_none")]
593 pub engine: Option<String>,
594
595 /// Specifies the allocated storage size in gibibytes (GiB).
596 #[serde(skip_serializing_if = "Option::is_none")]
597 pub allocated_storage: Option<i32>,
598
599 /// Specifies the status of this DB snapshot.
600 #[serde(skip_serializing_if = "Option::is_none")]
601 pub status: Option<String>,
602
603 /// Specifies the port that the database engine was listening on at the time of the
604 /// snapshot.
605 #[serde(skip_serializing_if = "Option::is_none")]
606 pub port: Option<i32>,
607
608 /// Specifies the name of the Availability Zone the DB instance was located in at the time
609 /// of the DB snapshot.
610 #[serde(skip_serializing_if = "Option::is_none")]
611 pub availability_zone: Option<String>,
612
613 /// Provides the VPC ID associated with the DB snapshot.
614 #[serde(skip_serializing_if = "Option::is_none")]
615 pub vpc_id: Option<String>,
616
617 /// Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which
618 /// the snapshot was taken, was created.
619 #[serde(skip_serializing_if = "Option::is_none")]
620 pub instance_create_time: Option<String>,
621
622 /// Provides the master username for the DB snapshot.
623 #[serde(skip_serializing_if = "Option::is_none")]
624 pub master_username: Option<String>,
625
626 /// Specifies the version of the database engine.
627 #[serde(skip_serializing_if = "Option::is_none")]
628 pub engine_version: Option<String>,
629
630 /// Provides the type of the DB snapshot.
631 #[serde(skip_serializing_if = "Option::is_none")]
632 pub snapshot_type: Option<String>,
633
634 /// Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at
635 /// the time of the snapshot.
636 #[serde(skip_serializing_if = "Option::is_none")]
637 pub iops: Option<i32>,
638
639 /// Specifies the storage throughput for the DB snapshot.
640 #[serde(skip_serializing_if = "Option::is_none")]
641 pub storage_throughput: Option<i32>,
642
643 /// Specifies the storage type associated with DB snapshot.
644 #[serde(skip_serializing_if = "Option::is_none")]
645 pub storage_type: Option<String>,
646
647 /// Indicates whether the DB snapshot is encrypted.
648 #[serde(skip_serializing_if = "Option::is_none")]
649 pub encrypted: Option<bool>,
650
651 /// If Encrypted is true, the Amazon Web Services KMS key identifier for the encrypted DB
652 /// snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN,
653 /// or alias name for the KMS key.
654 #[serde(skip_serializing_if = "Option::is_none")]
655 pub kms_key_id: Option<String>,
656
657 /// The Amazon Resource Name (ARN) for the DB snapshot.
658 #[serde(rename = "DBSnapshotArn")]
659 #[serde(skip_serializing_if = "Option::is_none")]
660 pub db_snapshot_arn: Option<String>,
661
662 /// The percentage of the estimated data that has been transferred.
663 #[serde(skip_serializing_if = "Option::is_none")]
664 pub percent_progress: Option<i32>,
665}
666
667impl DBSnapshot {
668 #[cfg(any(test, feature = "test-support"))]
669 /// Create a fixture instance for testing.
670 pub fn fixture() -> Self {
671 Self {
672 db_snapshot_identifier: Some("test-db_snapshot_identifier".into()),
673 db_instance_identifier: Some("test-db_instance_identifier".into()),
674 snapshot_create_time: Some("test-snapshot_create_time".into()),
675 engine: Some("test-engine".into()),
676 allocated_storage: Some(100),
677 status: Some("test-status".into()),
678 port: Some(100),
679 availability_zone: Some("test-availability_zone".into()),
680 vpc_id: Some("test-vpc_id".into()),
681 instance_create_time: Some("test-instance_create_time".into()),
682 master_username: Some("test-master_username".into()),
683 engine_version: Some("test-engine_version".into()),
684 snapshot_type: Some("test-snapshot_type".into()),
685 iops: Some(100),
686 storage_throughput: Some(100),
687 storage_type: Some("test-storage_type".into()),
688 encrypted: Some(false),
689 kms_key_id: Some("test-kms_key_id".into()),
690 db_snapshot_arn: Some("test-db_snapshot_arn".into()),
691 percent_progress: Some(100),
692 }
693 }
694}
695
696///
697/// **AWS API**: `rds.v1.DescribeDBSnapshotAttributesMessage`
698/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DescribeDBSnapshotAttributesMessage>
699#[derive(Debug, Clone, Default, Serialize, Deserialize)]
700#[serde(rename_all = "PascalCase")]
701pub struct DescribeDBSnapshotAttributesRequest {
702 /// The identifier for the DB snapshot to describe the attributes for.
703 #[serde(rename = "DBSnapshotIdentifier")]
704 pub db_snapshot_identifier: String,
705}
706
707impl DescribeDBSnapshotAttributesRequest {
708 #[cfg(any(test, feature = "test-support"))]
709 /// Create a fixture instance for testing.
710 pub fn fixture() -> Self {
711 Self {
712 db_snapshot_identifier: "test-db_snapshot_identifier".into(),
713 }
714 }
715}
716
717///
718/// **AWS API**: `rds.v1.DescribeDBSnapshotAttributesResult`
719/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DescribeDBSnapshotAttributesResult>
720#[derive(Debug, Clone, Default, Serialize, Deserialize)]
721#[serde(rename_all = "PascalCase")]
722pub struct DescribeDBSnapshotAttributesResponse {
723 /// The `DBSnapshotAttributesResult` field.
724 #[serde(rename = "DBSnapshotAttributesResult")]
725 #[serde(skip_serializing_if = "Option::is_none")]
726 pub db_snapshot_attributes_result: Option<DBSnapshotAttributesResult>,
727}
728
729impl DescribeDBSnapshotAttributesResponse {
730 #[cfg(any(test, feature = "test-support"))]
731 /// Create a fixture instance for testing.
732 pub fn fixture() -> Self {
733 Self {
734 db_snapshot_attributes_result: Some(DBSnapshotAttributesResult::fixture()),
735 }
736 }
737}
738
739/// Contains the results of a successful call to the DescribeDBSnapshotAttributes API action.
740/// Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to
741/// copy or restore a manual DB snapshot. For more information, see the
742/// ModifyDBSnapshotAttribute API action.
743///
744/// **AWS API**: `rds.v1.DBSnapshotAttributesResult`
745/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DBSnapshotAttributesResult>
746#[derive(Debug, Clone, Default, Serialize, Deserialize)]
747#[serde(rename_all = "PascalCase")]
748pub struct DBSnapshotAttributesResult {
749 /// The identifier of the manual DB snapshot that the attributes apply to.
750 #[serde(rename = "DBSnapshotIdentifier")]
751 #[serde(skip_serializing_if = "Option::is_none")]
752 pub db_snapshot_identifier: Option<String>,
753
754 /// The list of attributes and values for the manual DB snapshot.
755 #[serde(rename = "DBSnapshotAttributes")]
756 #[serde(default)]
757 #[serde(skip_serializing_if = "Vec::is_empty")]
758 pub db_snapshot_attributes: Vec<DBSnapshotAttribute>,
759}
760
761impl DBSnapshotAttributesResult {
762 #[cfg(any(test, feature = "test-support"))]
763 /// Create a fixture instance for testing.
764 pub fn fixture() -> Self {
765 Self {
766 db_snapshot_identifier: Some("test-db_snapshot_identifier".into()),
767 db_snapshot_attributes: vec![],
768 }
769 }
770}
771
772/// Contains the name and values of a manual DB snapshot attribute Manual DB snapshot attributes
773/// are used to authorize other Amazon Web Services accounts to restore a manual DB snapshot.
774/// For more information, see the ModifyDBSnapshotAttribute API.
775///
776/// **AWS API**: `rds.v1.DBSnapshotAttribute`
777/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DBSnapshotAttribute>
778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
779#[serde(rename_all = "PascalCase")]
780pub struct DBSnapshotAttribute {
781 /// The name of the manual DB snapshot attribute. The attribute named restore refers to the
782 /// list of Amazon Web Services accounts that have permission to copy or restore the manual
783 /// DB cluster snapshot. For more information, see the ModifyDBSnapshotAttribute API action.
784 #[serde(skip_serializing_if = "Option::is_none")]
785 pub attribute_name: Option<String>,
786
787 /// The value or values for the manual DB snapshot attribute. If the AttributeName field is
788 /// set to restore, then this element returns a list of IDs of the Amazon Web Services
789 /// accounts that are authorized to copy or restore the manual DB snapshot. If a value of
790 /// all is in the list, then the manual DB snapshot is public and available for any Amazon
791 /// Web Services account to copy or restore.
792 #[serde(default)]
793 #[serde(skip_serializing_if = "Vec::is_empty")]
794 pub attribute_values: Vec<String>,
795}
796
797impl DBSnapshotAttribute {
798 #[cfg(any(test, feature = "test-support"))]
799 /// Create a fixture instance for testing.
800 pub fn fixture() -> Self {
801 Self {
802 attribute_name: Some("test-attribute_name".into()),
803 attribute_values: vec![],
804 }
805 }
806}
807
808///
809/// **AWS API**: `rds.v1.ModifyDBInstanceMessage`
810/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//ModifyDBInstanceMessage>
811///
812/// ## Coverage
813/// 15 of 64 fields included.
814/// Omitted fields:
815/// - `DBSubnetGroupName` — not selected in manifest
816/// - `DBSecurityGroups` — not selected in manifest
817/// - `VpcSecurityGroupIds` — not selected in manifest
818/// - `DBParameterGroupName` — not selected in manifest
819/// - `AllowMajorVersionUpgrade` — not selected in manifest
820/// - `LicenseModel` — not selected in manifest
821/// - `OptionGroupName` — not selected in manifest
822/// - `NewDBInstanceIdentifier` — not selected in manifest
823/// - `TdeCredentialArn` — not selected in manifest
824/// - `TdeCredentialPassword` — not selected in manifest
825/// - `CACertificateIdentifier` — not selected in manifest
826/// - `Domain` — not selected in manifest
827/// - `DomainFqdn` — not selected in manifest
828/// - `DomainOu` — not selected in manifest
829/// - `DomainAuthSecretArn` — not selected in manifest
830/// - `DomainDnsIps` — not selected in manifest
831/// - `DisableDomain` — not selected in manifest
832/// - `CopyTagsToSnapshot` — not selected in manifest
833/// - `MonitoringInterval` — not selected in manifest
834/// - `DBPortNumber` — not selected in manifest
835/// - `MonitoringRoleArn` — not selected in manifest
836/// - `DomainIAMRoleName` — not selected in manifest
837/// - `PromotionTier` — not selected in manifest
838/// - `EnableIAMDatabaseAuthentication` — not selected in manifest
839/// - `DatabaseInsightsMode` — not selected in manifest
840/// - `EnablePerformanceInsights` — not selected in manifest
841/// - `PerformanceInsightsKMSKeyId` — not selected in manifest
842/// - `PerformanceInsightsRetentionPeriod` — not selected in manifest
843/// - `CloudwatchLogsExportConfiguration` — not selected in manifest
844/// - `ProcessorFeatures` — not selected in manifest
845/// - `UseDefaultProcessorFeatures` — not selected in manifest
846/// - `DeletionProtection` — not selected in manifest
847/// - `MaxAllocatedStorage` — not selected in manifest
848/// - `CertificateRotationRestart` — not selected in manifest
849/// - `ReplicaMode` — not selected in manifest
850/// - `AutomationMode` — not selected in manifest
851/// - `ResumeFullAutomationModeMinutes` — not selected in manifest
852/// - `EnableCustomerOwnedIp` — not selected in manifest
853/// - `NetworkType` — not selected in manifest
854/// - `AwsBackupRecoveryPointArn` — not selected in manifest
855/// - `ManageMasterUserPassword` — not selected in manifest
856/// - `RotateMasterUserPassword` — not selected in manifest
857/// - `MasterUserSecretKmsKeyId` — not selected in manifest
858/// - `MultiTenant` — not selected in manifest
859/// - `DedicatedLogVolume` — not selected in manifest
860/// - `Engine` — not selected in manifest
861/// - `AdditionalStorageVolumes` — not selected in manifest
862/// - `TagSpecifications` — not selected in manifest
863/// - `MasterUserAuthenticationType` — not selected in manifest
864#[derive(Debug, Clone, Default, Serialize, Deserialize)]
865#[serde(rename_all = "PascalCase")]
866pub struct ModifyDBInstanceRequest {
867 /// The identifier of DB instance to modify. This value is stored as a lowercase string.
868 /// Constraints: Must match the identifier of an existing DB instance.
869 #[serde(rename = "DBInstanceIdentifier")]
870 pub db_instance_identifier: String,
871
872 /// The new amount of storage in gibibytes (GiB) to allocate for the DB instance. For RDS
873 /// for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL, the value
874 /// supplied must be at least 10% greater than the current value. Values that are not at
875 /// least 10% greater than the existing value are rounded up so that they are 10% greater
876 /// than the current value. For the valid values for allocated storage for each engine, see
877 /// CreateDBInstance. Constraints: When you increase the allocated storage for a DB instance
878 /// that uses Provisioned IOPS (gp3, io1, or io2 storage type), you must also specify the
879 /// Iops parameter. You can use the current value for Iops.
880 #[serde(skip_serializing_if = "Option::is_none")]
881 pub allocated_storage: Option<i32>,
882
883 /// The new compute and memory capacity of the DB instance, for example db.m4.large. Not all
884 /// DB instance classes are available in all Amazon Web Services Regions, or for all
885 /// database engines. For the full list of DB instance classes, and availability for your
886 /// engine, see DB Instance Class in the Amazon RDS User Guide or Aurora DB instance classes
887 /// in the Amazon Aurora User Guide. For RDS Custom, see DB instance class support for RDS
888 /// Custom for Oracle and DB instance class support for RDS Custom for SQL Server. If you
889 /// modify the DB instance class, an outage occurs during the change. The change is applied
890 /// during the next maintenance window, unless you specify ApplyImmediately in your request.
891 /// Default: Uses existing setting Constraints: If you are modifying the DB instance class
892 /// and upgrading the engine version at the same time, the currently running engine version
893 /// must be supported on the specified DB instance class. Otherwise, the operation returns
894 /// an error. In this case, first run the operation to upgrade the engine version, and then
895 /// run it again to modify the DB instance class.
896 #[serde(rename = "DBInstanceClass")]
897 #[serde(skip_serializing_if = "Option::is_none")]
898 pub db_instance_class: Option<String>,
899
900 /// Specifies whether the modifications in this request and any pending modifications are
901 /// asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow
902 /// setting for the DB instance. By default, this parameter is disabled. If this parameter
903 /// is disabled, changes to the DB instance are applied during the next maintenance window.
904 /// Some parameter changes can cause an outage and are applied on the next call to
905 /// RebootDBInstance, or the next failure reboot. Review the table of parameters in
906 /// Modifying a DB Instance in the Amazon RDS User Guide to see the impact of enabling or
907 /// disabling ApplyImmediately for each modified parameter and to determine when the changes
908 /// are applied.
909 #[serde(skip_serializing_if = "Option::is_none")]
910 pub apply_immediately: Option<bool>,
911
912 /// The new password for the master user. Changing this parameter doesn't result in an
913 /// outage and the change is asynchronously applied as soon as possible. Between the time of
914 /// the request and the completion of the request, the MasterUserPassword element exists in
915 /// the PendingModifiedValues element of the operation response. Amazon RDS API operations
916 /// never return the password, so this operation provides a way to regain access to a
917 /// primary instance user if the password is lost. This includes restoring privileges that
918 /// might have been accidentally revoked. This setting doesn't apply to the following DB
919 /// instances: Amazon Aurora The password for the master user is managed by the DB cluster.
920 /// For more information, see ModifyDBCluster. RDS Custom RDS for Oracle CDBs in the multi-
921 /// tenant configuration Specify the master password in ModifyTenantDatabase instead.
922 /// Default: Uses existing setting Constraints: Can't be specified if
923 /// ManageMasterUserPassword is turned on. Can include any printable ASCII character except
924 /// "/", """, or "@". For RDS for Oracle, can't include the "&" (ampersand) or the "'"
925 /// (single quotes) character. Length Constraints: RDS for Db2
926 /// - Must contain from 8 to 255 characters. RDS for MariaDB
927 /// - Must contain from 8 to 41 characters. RDS for Microsoft SQL Server
928 /// - Must contain from 8 to 128 characters. RDS for MySQL
929 /// - Must contain from 8 to 41 characters. RDS for Oracle
930 /// - Must contain from 8 to 30 characters. RDS for PostgreSQL
931 /// - Must contain from 8 to 128 characters.
932 #[serde(skip_serializing_if = "Option::is_none")]
933 pub master_user_password: Option<String>,
934
935 /// The number of days to retain automated backups. Setting this parameter to a positive
936 /// number enables backups. Setting this parameter to 0 disables automated backups. Enabling
937 /// and disabling backups can result in a brief I/O suspension that lasts from a few seconds
938 /// to a few minutes, depending on the size and class of your DB instance. These changes are
939 /// applied during the next maintenance window unless the ApplyImmediately parameter is
940 /// enabled for this request. If you change the parameter from one non-zero value to another
941 /// non-zero value, the change is asynchronously applied as soon as possible. This setting
942 /// doesn't apply to Amazon Aurora DB instances. The retention period for automated backups
943 /// is managed by the DB cluster. For more information, see ModifyDBCluster. Default: Uses
944 /// existing setting Constraints: Must be a value from 0 to 35. Can't be set to 0 if the DB
945 /// instance is a source to read replicas. Can't be set to 0 for an RDS Custom for Oracle DB
946 /// instance.
947 #[serde(skip_serializing_if = "Option::is_none")]
948 pub backup_retention_period: Option<i32>,
949
950 /// The daily time range during which automated backups are created if automated backups are
951 /// enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter
952 /// doesn't result in an outage and the change is asynchronously applied as soon as
953 /// possible. The default is a 30-minute window selected at random from an 8-hour block of
954 /// time for each Amazon Web Services Region. For more information, see Backup window in the
955 /// Amazon RDS User Guide. This setting doesn't apply to Amazon Aurora DB instances. The
956 /// daily time range for creating automated backups is managed by the DB cluster. For more
957 /// information, see ModifyDBCluster. Constraints: Must be in the format hh24:mi-hh24:mi.
958 /// Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred
959 /// maintenance window. Must be at least 30 minutes.
960 #[serde(skip_serializing_if = "Option::is_none")]
961 pub preferred_backup_window: Option<String>,
962
963 /// The weekly time range during which system maintenance can occur, which might result in
964 /// an outage. Changing this parameter doesn't result in an outage, except in the following
965 /// situation, and the change is asynchronously applied as soon as possible. If there are
966 /// pending actions that cause a reboot, and the maintenance window is changed to include
967 /// the current time, then changing this parameter causes a reboot of the DB instance. If
968 /// you change this window to the current time, there must be at least 30 minutes between
969 /// the current time and end of the window to ensure pending changes are applied. For more
970 /// information, see Amazon RDS Maintenance Window in the Amazon RDS User Guide. Default:
971 /// Uses existing setting Constraints: Must be in the format ddd:hh24:mi-ddd:hh24:mi. The
972 /// day values must be mon | tue | wed | thu | fri | sat | sun. Must be in Universal
973 /// Coordinated Time (UTC). Must not conflict with the preferred backup window. Must be at
974 /// least 30 minutes.
975 #[serde(skip_serializing_if = "Option::is_none")]
976 pub preferred_maintenance_window: Option<String>,
977
978 /// Specifies whether the DB instance is a Multi-AZ deployment. Changing this parameter
979 /// doesn't result in an outage. The change is applied during the next maintenance window
980 /// unless the ApplyImmediately parameter is enabled for this request. This setting doesn't
981 /// apply to RDS Custom DB instances.
982 #[serde(rename = "MultiAZ")]
983 #[serde(skip_serializing_if = "Option::is_none")]
984 pub multi_az: Option<bool>,
985
986 /// The version number of the database engine to upgrade to. Changing this parameter results
987 /// in an outage and the change is applied during the next maintenance window unless the
988 /// ApplyImmediately parameter is enabled for this request. For major version upgrades, if a
989 /// nondefault DB parameter group is currently in use, a new DB parameter group in the DB
990 /// parameter group family for the new engine version must be specified. The new DB
991 /// parameter group can be the default for that DB parameter group family. If you specify
992 /// only a major version, Amazon RDS updates the DB instance to the default minor version if
993 /// the current minor version is lower. For information about valid engine versions, see
994 /// CreateDBInstance, or call DescribeDBEngineVersions. If the instance that you're
995 /// modifying is acting as a read replica, the engine version that you specify must be the
996 /// same or higher than the version that the source DB instance or cluster is running. In
997 /// RDS Custom for Oracle, this parameter is supported for read replicas only if they are in
998 /// the PATCH_DB_FAILURE lifecycle. Constraints: If you are upgrading the engine version and
999 /// modifying the DB instance class at the same time, the currently running engine version
1000 /// must be supported on the specified DB instance class. Otherwise, the operation returns
1001 /// an error. In this case, first run the operation to upgrade the engine version, and then
1002 /// run it again to modify the DB instance class.
1003 #[serde(skip_serializing_if = "Option::is_none")]
1004 pub engine_version: Option<String>,
1005
1006 /// Specifies whether minor version upgrades are applied automatically to the DB instance
1007 /// during the maintenance window. An outage occurs when all the following conditions are
1008 /// met: The automatic upgrade is enabled for the maintenance window. A newer minor version
1009 /// is available. RDS has enabled automatic patching for the engine version. If any of the
1010 /// preceding conditions isn't met, Amazon RDS applies the change as soon as possible and
1011 /// doesn't cause an outage. For an RDS Custom DB instance, don't enable this setting.
1012 /// Otherwise, the operation returns an error. For more information about automatic minor
1013 /// version upgrades, see Automatically upgrading the minor engine version.
1014 #[serde(skip_serializing_if = "Option::is_none")]
1015 pub auto_minor_version_upgrade: Option<bool>,
1016
1017 /// The new Provisioned IOPS (I/O operations per second) value for the RDS instance.
1018 /// Changing this setting doesn't result in an outage and the change is applied during the
1019 /// next maintenance window unless the ApplyImmediately parameter is enabled for this
1020 /// request. If you are migrating from Provisioned IOPS to standard storage, set this value
1021 /// to 0. The DB instance will require a reboot for the change in storage type to take
1022 /// effect. If you choose to migrate your DB instance from using standard storage to
1023 /// Provisioned IOPS (io1), or from Provisioned IOPS to standard storage, the process can
1024 /// take time. The duration of the migration depends on several factors such as database
1025 /// load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS
1026 /// provisioned (if any), and the number of prior scale storage operations. Typical
1027 /// migration times are under 24 hours, but the process can take up to several days in some
1028 /// cases. During the migration, the DB instance is available for use, but might experience
1029 /// performance degradation. While the migration takes place, nightly backups for the
1030 /// instance are suspended. No other Amazon RDS operations can take place for the instance,
1031 /// including modifying the instance, rebooting the instance, deleting the instance,
1032 /// creating a read replica for the instance, and creating a DB snapshot of the instance.
1033 /// Constraints: For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL
1034 /// - The value supplied must be at least 10% greater than the current value. Values that
1035 /// are not at least 10% greater than the existing value are rounded up so that they are
1036 /// 10% greater than the current value. When you increase the Provisioned IOPS, you must
1037 /// also specify the AllocatedStorage parameter. You can use the current value for
1038 /// AllocatedStorage. Default: Uses existing setting
1039 #[serde(skip_serializing_if = "Option::is_none")]
1040 pub iops: Option<i32>,
1041
1042 /// The storage type to associate with the DB instance. If you specify io1, io2, or gp3 you
1043 /// must also include a value for the Iops parameter. If you choose to migrate your DB
1044 /// instance from using standard storage to gp2 (General Purpose SSD), gp3, or Provisioned
1045 /// IOPS (io1), or from these storage types to standard storage, the process can take time.
1046 /// The duration of the migration depends on several factors such as database load, storage
1047 /// size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any),
1048 /// and the number of prior scale storage operations. Typical migration times are under 24
1049 /// hours, but the process can take up to several days in some cases. During the migration,
1050 /// the DB instance is available for use, but might experience performance degradation.
1051 /// While the migration takes place, nightly backups for the instance are suspended. No
1052 /// other Amazon RDS operations can take place for the instance, including modifying the
1053 /// instance, rebooting the instance, deleting the instance, creating a read replica for the
1054 /// instance, and creating a DB snapshot of the instance. Valid Values: gp2 | gp3 | io1 |
1055 /// io2 | standard Default: io1, if the Iops parameter is specified. Otherwise, gp2.
1056 #[serde(skip_serializing_if = "Option::is_none")]
1057 pub storage_type: Option<String>,
1058
1059 /// Specifies whether the DB instance is publicly accessible. When the DB instance is
1060 /// publicly accessible and you connect from outside of the DB instance's virtual private
1061 /// cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address.
1062 /// When you connect from within the same VPC as the DB instance, the endpoint resolves to
1063 /// the private IP address. Access to the DB instance is ultimately controlled by the
1064 /// security group it uses. That public access isn't permitted if the security group
1065 /// assigned to the DB instance doesn't permit it. When the DB instance isn't publicly
1066 /// accessible, it is an internal DB instance with a DNS name that resolves to a private IP
1067 /// address. PubliclyAccessible only applies to DB instances in a VPC. The DB instance must
1068 /// be part of a public subnet and PubliclyAccessible must be enabled for it to be publicly
1069 /// accessible. Changes to the PubliclyAccessible parameter are applied immediately
1070 /// regardless of the value of the ApplyImmediately parameter.
1071 #[serde(skip_serializing_if = "Option::is_none")]
1072 pub publicly_accessible: Option<bool>,
1073
1074 /// The storage throughput value for the DB instance. This setting applies only to the gp3
1075 /// storage type. This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.
1076 #[serde(skip_serializing_if = "Option::is_none")]
1077 pub storage_throughput: Option<i32>,
1078}
1079
1080impl ModifyDBInstanceRequest {
1081 #[cfg(any(test, feature = "test-support"))]
1082 /// Create a fixture instance for testing.
1083 pub fn fixture() -> Self {
1084 Self {
1085 db_instance_identifier: "test-db_instance_identifier".into(),
1086 allocated_storage: Some(100),
1087 db_instance_class: Some("test-db_instance_class".into()),
1088 apply_immediately: Some(false),
1089 master_user_password: Some("test-master_user_password".into()),
1090 backup_retention_period: Some(100),
1091 preferred_backup_window: Some("test-preferred_backup_window".into()),
1092 preferred_maintenance_window: Some("test-preferred_maintenance_window".into()),
1093 multi_az: Some(false),
1094 engine_version: Some("test-engine_version".into()),
1095 auto_minor_version_upgrade: Some(false),
1096 iops: Some(100),
1097 storage_type: Some("test-storage_type".into()),
1098 publicly_accessible: Some(false),
1099 storage_throughput: Some(100),
1100 }
1101 }
1102}
1103
1104///
1105/// **AWS API**: `rds.v1.ModifyDBInstanceResult`
1106/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//ModifyDBInstanceResult>
1107#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1108#[serde(rename_all = "PascalCase")]
1109pub struct ModifyDBInstanceResponse {
1110 /// The `DBInstance` field.
1111 #[serde(rename = "DBInstance")]
1112 #[serde(skip_serializing_if = "Option::is_none")]
1113 pub db_instance: Option<DBInstance>,
1114}
1115
1116impl ModifyDBInstanceResponse {
1117 #[cfg(any(test, feature = "test-support"))]
1118 /// Create a fixture instance for testing.
1119 pub fn fixture() -> Self {
1120 Self {
1121 db_instance: Some(DBInstance::fixture()),
1122 }
1123 }
1124}
1125
1126///
1127/// **AWS API**: `rds.v1.StopDBInstanceMessage`
1128/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//StopDBInstanceMessage>
1129#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1130#[serde(rename_all = "PascalCase")]
1131pub struct StopDBInstanceRequest {
1132 /// The user-supplied instance identifier.
1133 #[serde(rename = "DBInstanceIdentifier")]
1134 pub db_instance_identifier: String,
1135
1136 /// The user-supplied instance identifier of the DB Snapshot created immediately before the
1137 /// DB instance is stopped.
1138 #[serde(rename = "DBSnapshotIdentifier")]
1139 #[serde(skip_serializing_if = "Option::is_none")]
1140 pub db_snapshot_identifier: Option<String>,
1141}
1142
1143impl StopDBInstanceRequest {
1144 #[cfg(any(test, feature = "test-support"))]
1145 /// Create a fixture instance for testing.
1146 pub fn fixture() -> Self {
1147 Self {
1148 db_instance_identifier: "test-db_instance_identifier".into(),
1149 db_snapshot_identifier: Some("test-db_snapshot_identifier".into()),
1150 }
1151 }
1152}
1153
1154///
1155/// **AWS API**: `rds.v1.StopDBInstanceResult`
1156/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//StopDBInstanceResult>
1157#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1158#[serde(rename_all = "PascalCase")]
1159pub struct StopDBInstanceResponse {
1160 /// The `DBInstance` field.
1161 #[serde(rename = "DBInstance")]
1162 #[serde(skip_serializing_if = "Option::is_none")]
1163 pub db_instance: Option<DBInstance>,
1164}
1165
1166impl StopDBInstanceResponse {
1167 #[cfg(any(test, feature = "test-support"))]
1168 /// Create a fixture instance for testing.
1169 pub fn fixture() -> Self {
1170 Self {
1171 db_instance: Some(DBInstance::fixture()),
1172 }
1173 }
1174}
1175
1176///
1177/// **AWS API**: `rds.v1.StartDBInstanceMessage`
1178/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//StartDBInstanceMessage>
1179#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1180#[serde(rename_all = "PascalCase")]
1181pub struct StartDBInstanceRequest {
1182 /// The user-supplied instance identifier.
1183 #[serde(rename = "DBInstanceIdentifier")]
1184 pub db_instance_identifier: String,
1185}
1186
1187impl StartDBInstanceRequest {
1188 #[cfg(any(test, feature = "test-support"))]
1189 /// Create a fixture instance for testing.
1190 pub fn fixture() -> Self {
1191 Self {
1192 db_instance_identifier: "test-db_instance_identifier".into(),
1193 }
1194 }
1195}
1196
1197///
1198/// **AWS API**: `rds.v1.StartDBInstanceResult`
1199/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//StartDBInstanceResult>
1200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1201#[serde(rename_all = "PascalCase")]
1202pub struct StartDBInstanceResponse {
1203 /// The `DBInstance` field.
1204 #[serde(rename = "DBInstance")]
1205 #[serde(skip_serializing_if = "Option::is_none")]
1206 pub db_instance: Option<DBInstance>,
1207}
1208
1209impl StartDBInstanceResponse {
1210 #[cfg(any(test, feature = "test-support"))]
1211 /// Create a fixture instance for testing.
1212 pub fn fixture() -> Self {
1213 Self {
1214 db_instance: Some(DBInstance::fixture()),
1215 }
1216 }
1217}
1218
1219///
1220/// **AWS API**: `rds.v1.DeleteDBInstanceMessage`
1221/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DeleteDBInstanceMessage>
1222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1223#[serde(rename_all = "PascalCase")]
1224pub struct DeleteDBInstanceRequest {
1225 /// The DB instance identifier for the DB instance to be deleted. This parameter isn't case-
1226 /// sensitive. Constraints: Must match the name of an existing DB instance.
1227 #[serde(rename = "DBInstanceIdentifier")]
1228 pub db_instance_identifier: String,
1229
1230 /// Specifies whether to skip the creation of a final DB snapshot before deleting the
1231 /// instance. If you enable this parameter, RDS doesn't create a DB snapshot. If you don't
1232 /// enable this parameter, RDS creates a DB snapshot before the DB instance is deleted. By
1233 /// default, skip isn't enabled, and the DB snapshot is created. If you don't enable this
1234 /// parameter, you must specify the FinalDBSnapshotIdentifier parameter. When a DB instance
1235 /// is in a failure state and has a status of failed, incompatible-restore, or incompatible-
1236 /// network, RDS can delete the instance only if you enable this parameter. If you delete a
1237 /// read replica or an RDS Custom instance, you must enable this setting. This setting is
1238 /// required for RDS Custom.
1239 #[serde(skip_serializing_if = "Option::is_none")]
1240 pub skip_final_snapshot: Option<bool>,
1241
1242 /// The DBSnapshotIdentifier of the new DBSnapshot created when the SkipFinalSnapshot
1243 /// parameter is disabled. If you enable this parameter and also enable SkipFinalShapshot,
1244 /// the command results in an error. This setting doesn't apply to RDS Custom. Constraints:
1245 /// Must be 1 to 255 letters or numbers. First character must be a letter. Can't end with a
1246 /// hyphen or contain two consecutive hyphens. Can't be specified when deleting a read
1247 /// replica.
1248 #[serde(rename = "FinalDBSnapshotIdentifier")]
1249 #[serde(skip_serializing_if = "Option::is_none")]
1250 pub final_db_snapshot_identifier: Option<String>,
1251
1252 /// Specifies whether to remove automated backups immediately after the DB instance is
1253 /// deleted. This parameter isn't case-sensitive. The default is to remove automated backups
1254 /// immediately after the DB instance is deleted.
1255 #[serde(skip_serializing_if = "Option::is_none")]
1256 pub delete_automated_backups: Option<bool>,
1257}
1258
1259impl DeleteDBInstanceRequest {
1260 #[cfg(any(test, feature = "test-support"))]
1261 /// Create a fixture instance for testing.
1262 pub fn fixture() -> Self {
1263 Self {
1264 db_instance_identifier: "test-db_instance_identifier".into(),
1265 skip_final_snapshot: Some(false),
1266 final_db_snapshot_identifier: Some("test-final_db_snapshot_identifier".into()),
1267 delete_automated_backups: Some(false),
1268 }
1269 }
1270}
1271
1272///
1273/// **AWS API**: `rds.v1.DeleteDBInstanceResult`
1274/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DeleteDBInstanceResult>
1275#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1276#[serde(rename_all = "PascalCase")]
1277pub struct DeleteDBInstanceResponse {
1278 /// The `DBInstance` field.
1279 #[serde(rename = "DBInstance")]
1280 #[serde(skip_serializing_if = "Option::is_none")]
1281 pub db_instance: Option<DBInstance>,
1282}
1283
1284impl DeleteDBInstanceResponse {
1285 #[cfg(any(test, feature = "test-support"))]
1286 /// Create a fixture instance for testing.
1287 pub fn fixture() -> Self {
1288 Self {
1289 db_instance: Some(DBInstance::fixture()),
1290 }
1291 }
1292}
1293
1294///
1295/// **AWS API**: `rds.v1.CreateDBSnapshotMessage`
1296/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//CreateDBSnapshotMessage>
1297#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1298#[serde(rename_all = "PascalCase")]
1299pub struct CreateDBSnapshotRequest {
1300 /// The identifier for the DB snapshot. Constraints: Can't be null, empty, or blank Must
1301 /// contain from 1 to 255 letters, numbers, or hyphens First character must be a letter
1302 /// Can't end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id
1303 #[serde(rename = "DBSnapshotIdentifier")]
1304 pub db_snapshot_identifier: String,
1305
1306 /// The identifier of the DB instance that you want to create the snapshot of. Constraints:
1307 /// Must match the identifier of an existing DBInstance.
1308 #[serde(rename = "DBInstanceIdentifier")]
1309 pub db_instance_identifier: String,
1310
1311 /// The `Tags` field.
1312 #[serde(default)]
1313 #[serde(skip_serializing_if = "Vec::is_empty")]
1314 pub tags: Vec<Tag>,
1315}
1316
1317impl CreateDBSnapshotRequest {
1318 #[cfg(any(test, feature = "test-support"))]
1319 /// Create a fixture instance for testing.
1320 pub fn fixture() -> Self {
1321 Self {
1322 db_snapshot_identifier: "test-db_snapshot_identifier".into(),
1323 db_instance_identifier: "test-db_instance_identifier".into(),
1324 tags: vec![],
1325 }
1326 }
1327}
1328
1329///
1330/// **AWS API**: `rds.v1.CreateDBSnapshotResult`
1331/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//CreateDBSnapshotResult>
1332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1333#[serde(rename_all = "PascalCase")]
1334pub struct CreateDBSnapshotResponse {
1335 /// The `DBSnapshot` field.
1336 #[serde(rename = "DBSnapshot")]
1337 #[serde(skip_serializing_if = "Option::is_none")]
1338 pub db_snapshot: Option<DBSnapshot>,
1339}
1340
1341impl CreateDBSnapshotResponse {
1342 #[cfg(any(test, feature = "test-support"))]
1343 /// Create a fixture instance for testing.
1344 pub fn fixture() -> Self {
1345 Self {
1346 db_snapshot: Some(DBSnapshot::fixture()),
1347 }
1348 }
1349}
1350
1351///
1352/// **AWS API**: `rds.v1.DeleteDBSnapshotMessage`
1353/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DeleteDBSnapshotMessage>
1354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1355#[serde(rename_all = "PascalCase")]
1356pub struct DeleteDBSnapshotRequest {
1357 /// The DB snapshot identifier. Constraints: Must be the name of an existing DB snapshot in
1358 /// the available state.
1359 #[serde(rename = "DBSnapshotIdentifier")]
1360 pub db_snapshot_identifier: String,
1361}
1362
1363impl DeleteDBSnapshotRequest {
1364 #[cfg(any(test, feature = "test-support"))]
1365 /// Create a fixture instance for testing.
1366 pub fn fixture() -> Self {
1367 Self {
1368 db_snapshot_identifier: "test-db_snapshot_identifier".into(),
1369 }
1370 }
1371}
1372
1373///
1374/// **AWS API**: `rds.v1.DeleteDBSnapshotResult`
1375/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//DeleteDBSnapshotResult>
1376#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1377#[serde(rename_all = "PascalCase")]
1378pub struct DeleteDBSnapshotResponse {
1379 /// The `DBSnapshot` field.
1380 #[serde(rename = "DBSnapshot")]
1381 #[serde(skip_serializing_if = "Option::is_none")]
1382 pub db_snapshot: Option<DBSnapshot>,
1383}
1384
1385impl DeleteDBSnapshotResponse {
1386 #[cfg(any(test, feature = "test-support"))]
1387 /// Create a fixture instance for testing.
1388 pub fn fixture() -> Self {
1389 Self {
1390 db_snapshot: Some(DBSnapshot::fixture()),
1391 }
1392 }
1393}
1394
1395///
1396/// **AWS API**: `rds.v1.ModifyDBSnapshotAttributeMessage`
1397/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//ModifyDBSnapshotAttributeMessage>
1398#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1399#[serde(rename_all = "PascalCase")]
1400pub struct ModifyDBSnapshotAttributeRequest {
1401 /// The identifier for the DB snapshot to modify the attributes for.
1402 #[serde(rename = "DBSnapshotIdentifier")]
1403 pub db_snapshot_identifier: String,
1404
1405 /// The name of the DB snapshot attribute to modify. To manage authorization for other
1406 /// Amazon Web Services accounts to copy or restore a manual DB snapshot, set this value to
1407 /// restore. To view the list of attributes available to modify, use the
1408 /// DescribeDBSnapshotAttributes API operation.
1409 pub attribute_name: String,
1410
1411 /// A list of DB snapshot attributes to add to the attribute specified by AttributeName. To
1412 /// authorize other Amazon Web Services accounts to copy or restore a manual snapshot, set
1413 /// this list to include one or more Amazon Web Services account IDs, or all to make the
1414 /// manual DB snapshot restorable by any Amazon Web Services account. Do not add the all
1415 /// value for any manual DB snapshots that contain private information that you don't want
1416 /// available to all Amazon Web Services accounts.
1417 #[serde(default)]
1418 #[serde(skip_serializing_if = "Vec::is_empty")]
1419 pub values_to_add: Vec<String>,
1420
1421 /// A list of DB snapshot attributes to remove from the attribute specified by
1422 /// AttributeName. To remove authorization for other Amazon Web Services accounts to copy or
1423 /// restore a manual snapshot, set this list to include one or more Amazon Web Services
1424 /// account identifiers, or all to remove authorization for any Amazon Web Services account
1425 /// to copy or restore the DB snapshot. If you specify all, an Amazon Web Services account
1426 /// whose account ID is explicitly added to the restore attribute can still copy or restore
1427 /// the manual DB snapshot.
1428 #[serde(default)]
1429 #[serde(skip_serializing_if = "Vec::is_empty")]
1430 pub values_to_remove: Vec<String>,
1431}
1432
1433impl ModifyDBSnapshotAttributeRequest {
1434 #[cfg(any(test, feature = "test-support"))]
1435 /// Create a fixture instance for testing.
1436 pub fn fixture() -> Self {
1437 Self {
1438 db_snapshot_identifier: "test-db_snapshot_identifier".into(),
1439 attribute_name: "test-attribute_name".into(),
1440 values_to_add: vec![],
1441 values_to_remove: vec![],
1442 }
1443 }
1444}
1445
1446///
1447/// **AWS API**: `rds.v1.ModifyDBSnapshotAttributeResult`
1448/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//ModifyDBSnapshotAttributeResult>
1449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1450#[serde(rename_all = "PascalCase")]
1451pub struct ModifyDBSnapshotAttributeResponse {
1452 /// The `DBSnapshotAttributesResult` field.
1453 #[serde(rename = "DBSnapshotAttributesResult")]
1454 #[serde(skip_serializing_if = "Option::is_none")]
1455 pub db_snapshot_attributes_result: Option<DBSnapshotAttributesResult>,
1456}
1457
1458impl ModifyDBSnapshotAttributeResponse {
1459 #[cfg(any(test, feature = "test-support"))]
1460 /// Create a fixture instance for testing.
1461 pub fn fixture() -> Self {
1462 Self {
1463 db_snapshot_attributes_result: Some(DBSnapshotAttributesResult::fixture()),
1464 }
1465 }
1466}
1467
1468/// Metadata assigned to an Amazon RDS resource consisting of a key-value pair. For more
1469/// information, see Tagging Amazon RDS resources in the Amazon RDS User Guide or Tagging Amazon
1470/// Aurora and Amazon RDS resources in the Amazon Aurora User Guide.
1471///
1472/// **AWS API**: `rds.v1.Tag`
1473/// **Reference**: <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference//Tag>
1474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1475#[serde(rename_all = "PascalCase")]
1476pub struct Tag {
1477 /// A key is the required name of the tag. The string value can be from 1 to 128 Unicode
1478 /// characters in length and can't be prefixed with aws: or rds:. The string can only
1479 /// contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=',
1480 /// '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").
1481 #[serde(skip_serializing_if = "Option::is_none")]
1482 pub key: Option<String>,
1483
1484 /// A value is the optional value of the tag. The string value can be from 1 to 256 Unicode
1485 /// characters in length and can't be prefixed with aws: or rds:. The string can only
1486 /// contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=',
1487 /// '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").
1488 #[serde(skip_serializing_if = "Option::is_none")]
1489 pub value: Option<String>,
1490}
1491
1492impl Tag {
1493 #[cfg(any(test, feature = "test-support"))]
1494 /// Create a fixture instance for testing.
1495 pub fn fixture() -> Self {
1496 Self {
1497 key: Some("test-key".into()),
1498 value: Some("test-value".into()),
1499 }
1500 }
1501}