From 82bdc84780d98d9472f08b5564f7ebc2ef0f34f9 Mon Sep 17 00:00:00 2001 From: markpeek <638982+markpeek@users.noreply.github.com> Date: Fri, 4 Jul 2025 13:24:05 +0000 Subject: [PATCH] Updates from spec version 204.0.0 --- troposphere/bedrock.py | 22 +++++++++ troposphere/cassandra.py | 12 +++++ troposphere/dynamodb.py | 12 +++++ troposphere/gamelift.py | 1 + troposphere/kinesis.py | 3 +- troposphere/neptune.py | 1 - troposphere/qbusiness.py | 49 ++++++++++++++++++++ troposphere/quicksight.py | 6 +++ troposphere/rds.py | 1 + troposphere/redshiftserverless.py | 34 ++++++++++++++ troposphere/s3tables.py | 76 ++++++++++++++++++++++++++++++- 11 files changed, 214 insertions(+), 3 deletions(-) diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index 965cd658e..3eb254d3c 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -1900,12 +1900,23 @@ class ContentFilterConfig(AWSProperty): } +class ContentFiltersTierConfig(AWSProperty): + """ + `ContentFiltersTierConfig `__ + """ + + props: PropsDictType = { + "TierName": (str, True), + } + + class ContentPolicyConfig(AWSProperty): """ `ContentPolicyConfig `__ """ props: PropsDictType = { + "ContentFiltersTierConfig": (ContentFiltersTierConfig, False), "FiltersConfig": ([ContentFilterConfig], True), } @@ -2003,6 +2014,16 @@ class TopicConfig(AWSProperty): } +class TopicsTierConfig(AWSProperty): + """ + `TopicsTierConfig `__ + """ + + props: PropsDictType = { + "TierName": (str, True), + } + + class TopicPolicyConfig(AWSProperty): """ `TopicPolicyConfig `__ @@ -2010,6 +2031,7 @@ class TopicPolicyConfig(AWSProperty): props: PropsDictType = { "TopicsConfig": ([TopicConfig], True), + "TopicsTierConfig": (TopicsTierConfig, False), } diff --git a/troposphere/cassandra.py b/troposphere/cassandra.py index 2c618579e..3db74ef73 100644 --- a/troposphere/cassandra.py +++ b/troposphere/cassandra.py @@ -112,6 +112,17 @@ class BillingMode(AWSProperty): } +class CdcSpecification(AWSProperty): + """ + `CdcSpecification `__ + """ + + props: PropsDictType = { + "Status": (str, True), + "ViewType": (str, False), + } + + class Column(AWSProperty): """ `Column `__ @@ -167,6 +178,7 @@ class Table(AWSObject): props: PropsDictType = { "AutoScalingSpecifications": (AutoScalingSpecification, False), "BillingMode": (BillingMode, False), + "CdcSpecification": (CdcSpecification, False), "ClientSideTimestampsEnabled": (boolean, False), "ClusteringKeyColumns": ([ClusteringKeyColumn], False), "DefaultTimeToLive": (integer, False), diff --git a/troposphere/dynamodb.py b/troposphere/dynamodb.py index eca2a0327..10ad7f8b6 100644 --- a/troposphere/dynamodb.py +++ b/troposphere/dynamodb.py @@ -140,6 +140,16 @@ class GlobalTableSSESpecification(AWSProperty): } +class GlobalTableWitness(AWSProperty): + """ + `GlobalTableWitness `__ + """ + + props: PropsDictType = { + "Region": (str, False), + } + + class LocalSecondaryIndex(AWSProperty): """ `LocalSecondaryIndex `__ @@ -303,8 +313,10 @@ class GlobalTable(AWSObject): "AttributeDefinitions": ([AttributeDefinition], True), "BillingMode": (str, False), "GlobalSecondaryIndexes": ([GlobalTableGlobalSecondaryIndex], False), + "GlobalTableWitnesses": ([GlobalTableWitness], False), "KeySchema": ([KeySchema], True), "LocalSecondaryIndexes": ([LocalSecondaryIndex], False), + "MultiRegionConsistency": (str, False), "Replicas": ([ReplicaSpecification], True), "SSESpecification": (GlobalTableSSESpecification, False), "StreamSpecification": (StreamSpecification, False), diff --git a/troposphere/gamelift.py b/troposphere/gamelift.py index 0dfc7d4e6..d274adcd6 100644 --- a/troposphere/gamelift.py +++ b/troposphere/gamelift.py @@ -145,6 +145,7 @@ class LogConfiguration(AWSProperty): props: PropsDictType = { "LogDestination": (str, False), + "LogGroupArn": (str, False), "S3BucketName": (str, False), } diff --git a/troposphere/kinesis.py b/troposphere/kinesis.py index bc61f64fc..9fd8f1c4c 100644 --- a/troposphere/kinesis.py +++ b/troposphere/kinesis.py @@ -6,7 +6,7 @@ # *** Do not modify - this file is autogenerated *** -from . import AWSObject, AWSProperty, PropsDictType +from . import AWSObject, AWSProperty, PropsDictType, Tags from .validators import integer from .validators.kinesis import kinesis_stream_mode, validate_tags_or_list @@ -73,4 +73,5 @@ class StreamConsumer(AWSObject): props: PropsDictType = { "ConsumerName": (str, True), "StreamARN": (str, True), + "Tags": (Tags, False), } diff --git a/troposphere/neptune.py b/troposphere/neptune.py index 6d3428488..7638cb975 100644 --- a/troposphere/neptune.py +++ b/troposphere/neptune.py @@ -99,7 +99,6 @@ class DBInstance(AWSObject): "DBInstanceClass": (str, True), "DBInstanceIdentifier": (str, False), "DBParameterGroupName": (str, False), - "DBSnapshotIdentifier": (str, False), "DBSubnetGroupName": (str, False), "PreferredMaintenanceWindow": (str, False), "Tags": (Tags, False), diff --git a/troposphere/qbusiness.py b/troposphere/qbusiness.py index 498ea6b1f..f0be1952d 100644 --- a/troposphere/qbusiness.py +++ b/troposphere/qbusiness.py @@ -160,6 +160,41 @@ class ActionConfiguration(AWSProperty): } +class DataAccessorIdcTrustedTokenIssuerConfiguration(AWSProperty): + """ + `DataAccessorIdcTrustedTokenIssuerConfiguration `__ + """ + + props: PropsDictType = { + "IdcTrustedTokenIssuerArn": (str, True), + } + + +class DataAccessorAuthenticationConfiguration(AWSProperty): + """ + `DataAccessorAuthenticationConfiguration `__ + """ + + props: PropsDictType = { + "IdcTrustedTokenIssuerConfiguration": ( + DataAccessorIdcTrustedTokenIssuerConfiguration, + True, + ), + } + + +class DataAccessorAuthenticationDetail(AWSProperty): + """ + `DataAccessorAuthenticationDetail `__ + """ + + props: PropsDictType = { + "AuthenticationConfiguration": (DataAccessorAuthenticationConfiguration, False), + "AuthenticationType": (str, True), + "ExternalIds": ([str], False), + } + + class DataAccessor(AWSObject): """ `DataAccessor `__ @@ -170,6 +205,7 @@ class DataAccessor(AWSObject): props: PropsDictType = { "ActionConfigurations": ([ActionConfiguration], True), "ApplicationId": (str, True), + "AuthenticationDetail": (DataAccessorAuthenticationDetail, False), "DisplayName": (str, True), "Principal": (str, True), "Tags": (Tags, False), @@ -352,6 +388,18 @@ class Index(AWSObject): } +class Condition(AWSProperty): + """ + `Condition `__ + """ + + props: PropsDictType = { + "ConditionKey": (str, True), + "ConditionOperator": (str, True), + "ConditionValues": ([str], True), + } + + class Permission(AWSObject): """ `Permission `__ @@ -362,6 +410,7 @@ class Permission(AWSObject): props: PropsDictType = { "Actions": ([str], True), "ApplicationId": (str, True), + "Conditions": ([Condition], False), "Principal": (str, True), "StatementId": (str, True), } diff --git a/troposphere/quicksight.py b/troposphere/quicksight.py index aa04fb7f7..c3cde07a8 100644 --- a/troposphere/quicksight.py +++ b/troposphere/quicksight.py @@ -6917,7 +6917,13 @@ class Capabilities(AWSProperty): "CreateSPICEDataset": (str, False), "CreateSharedFolders": (str, False), "ExportToCsv": (str, False), + "ExportToCsvInScheduledReports": (str, False), "ExportToExcel": (str, False), + "ExportToExcelInScheduledReports": (str, False), + "ExportToPdf": (str, False), + "ExportToPdfInScheduledReports": (str, False), + "IncludeContentInScheduledReportsEmail": (str, False), + "PrintReports": (str, False), "RenameSharedFolders": (str, False), "ShareAnalyses": (str, False), "ShareDashboards": (str, False), diff --git a/troposphere/rds.py b/troposphere/rds.py index bd52f620c..c45e9fc02 100644 --- a/troposphere/rds.py +++ b/troposphere/rds.py @@ -246,6 +246,7 @@ class DBInstance(AWSObject): "AutomaticBackupReplicationRetentionPeriod": (integer, False), "AvailabilityZone": (str, False), "BackupRetentionPeriod": (validate_backup_retention_period, False), + "BackupTarget": (str, False), "CACertificateIdentifier": (str, False), "CertificateDetails": (CertificateDetails, False), "CertificateRotationRestart": (boolean, False), diff --git a/troposphere/redshiftserverless.py b/troposphere/redshiftserverless.py index 38c46047e..ff4c11e67 100755 --- a/troposphere/redshiftserverless.py +++ b/troposphere/redshiftserverless.py @@ -49,6 +49,21 @@ class Namespace(AWSObject): } +class Snapshot(AWSObject): + """ + `Snapshot `__ + """ + + resource_type = "AWS::RedshiftServerless::Snapshot" + + props: PropsDictType = { + "NamespaceName": (str, False), + "RetentionPeriod": (integer, False), + "SnapshotName": (str, True), + "Tags": (Tags, False), + } + + class ConfigParameter(AWSProperty): """ `ConfigParameter `__ @@ -182,3 +197,22 @@ class NamespaceProperty(AWSProperty): "NamespaceName": (str, False), "Status": (str, False), } + + +class SnapshotProperty(AWSProperty): + """ + `SnapshotProperty `__ + """ + + props: PropsDictType = { + "AdminUsername": (str, False), + "KmsKeyId": (str, False), + "NamespaceArn": (str, False), + "NamespaceName": (str, False), + "OwnerAccount": (str, False), + "RetentionPeriod": (integer, False), + "SnapshotArn": (str, False), + "SnapshotCreateTime": (str, False), + "SnapshotName": (str, False), + "Status": (str, False), + } diff --git a/troposphere/s3tables.py b/troposphere/s3tables.py index 17c97b9fe..fed960d57 100644 --- a/troposphere/s3tables.py +++ b/troposphere/s3tables.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType -from .validators import integer +from .validators import boolean, integer class Namespace(AWSObject): @@ -23,6 +23,80 @@ class Namespace(AWSObject): } +class Compaction(AWSProperty): + """ + `Compaction `__ + """ + + props: PropsDictType = { + "Status": (str, False), + "TargetFileSizeMB": (integer, False), + } + + +class SchemaField(AWSProperty): + """ + `SchemaField `__ + """ + + props: PropsDictType = { + "Name": (str, True), + "Required": (boolean, False), + "Type": (str, True), + } + + +class IcebergSchema(AWSProperty): + """ + `IcebergSchema `__ + """ + + props: PropsDictType = { + "SchemaFieldList": ([SchemaField], True), + } + + +class IcebergMetadata(AWSProperty): + """ + `IcebergMetadata `__ + """ + + props: PropsDictType = { + "IcebergSchema": (IcebergSchema, True), + } + + +class SnapshotManagement(AWSProperty): + """ + `SnapshotManagement `__ + """ + + props: PropsDictType = { + "MaxSnapshotAgeHours": (integer, False), + "MinSnapshotsToKeep": (integer, False), + "Status": (str, False), + } + + +class Table(AWSObject): + """ + `Table `__ + """ + + resource_type = "AWS::S3Tables::Table" + + props: PropsDictType = { + "Compaction": (Compaction, False), + "IcebergMetadata": (IcebergMetadata, False), + "Namespace": (str, True), + "OpenTableFormat": (str, True), + "SnapshotManagement": (SnapshotManagement, False), + "TableBucketARN": (str, True), + "TableName": (str, True), + "WithoutMetadata": (str, False), + } + + class EncryptionConfiguration(AWSProperty): """ `EncryptionConfiguration `__