From eab6609d1f88a9818e89a82015a62f632d6f93a3 Mon Sep 17 00:00:00 2001 From: Mark Peek Date: Sun, 1 Sep 2024 07:44:46 -0700 Subject: [PATCH] Updates from spec version 184.0.0 (#2263) This includes 2 patches: - Rename CodePipeline::Pipeline.RuleDeclaration InputArtifacts due to backward compatibility - Remove NetworkManager::CoreNetwork.CoreNetworkNetworkFunctionGroup due to Name Error (ordering of unseen properties) with Segments property --- scripts/patches/codepipeline.py | 5 + scripts/patches/networkmanager.py | 6 + troposphere/appintegrations.py | 2 +- troposphere/awslambda.py | 3 + troposphere/bedrock.py | 354 ++++++++++++++++++++++++++++-- troposphere/codebuild.py | 1 + troposphere/codepipeline.py | 62 ++++++ troposphere/cognito.py | 37 +++- troposphere/deadline.py | 6 +- troposphere/ec2.py | 9 +- troposphere/ecs.py | 13 ++ troposphere/entityresolution.py | 11 + troposphere/firehose.py | 1 + troposphere/glue.py | 3 +- troposphere/iotfleetwise.py | 120 +--------- troposphere/ivs.py | 29 +++ troposphere/medialive.py | 37 +++- troposphere/msk.py | 11 + troposphere/networkmanager.py | 42 ++++ troposphere/osis.py | 12 + troposphere/quicksight.py | 38 +++- troposphere/redshift.py | 2 + troposphere/rolesanywhere.py | 1 + troposphere/route53resolver.py | 3 +- troposphere/sagemaker.py | 60 +++-- troposphere/securityhub.py | 10 +- troposphere/ses.py | 3 +- troposphere/systemsmanagersap.py | 1 + 28 files changed, 729 insertions(+), 153 deletions(-) create mode 100644 scripts/patches/networkmanager.py diff --git a/scripts/patches/codepipeline.py b/scripts/patches/codepipeline.py index 20b98f852..b7ed87251 100644 --- a/scripts/patches/codepipeline.py +++ b/scripts/patches/codepipeline.py @@ -30,6 +30,11 @@ "path": "/PropertyTypes/AWS::CodePipeline::Pipeline.ActionDeclaration/Properties/InputArtifacts/ItemType", "value": "InputArtifacts", }, + { + "op": "replace", + "path": "/PropertyTypes/AWS::CodePipeline::Pipeline.RuleDeclaration/Properties/InputArtifacts/ItemType", + "value": "InputArtifacts", + }, { "op": "move", "from": "/PropertyTypes/AWS::CodePipeline::Pipeline.OutputArtifact", diff --git a/scripts/patches/networkmanager.py b/scripts/patches/networkmanager.py new file mode 100644 index 000000000..4fb6c66de --- /dev/null +++ b/scripts/patches/networkmanager.py @@ -0,0 +1,6 @@ +patches = [ + { + "op": "remove", + "path": "/PropertyTypes/AWS::NetworkManager::CoreNetwork.CoreNetworkNetworkFunctionGroup", + }, +] diff --git a/troposphere/appintegrations.py b/troposphere/appintegrations.py index ea22b8dad..c5bbe996f 100644 --- a/troposphere/appintegrations.py +++ b/troposphere/appintegrations.py @@ -41,7 +41,7 @@ class Application(AWSObject): "ApplicationSourceConfig": (ApplicationSourceConfig, True), "Description": (str, True), "Name": (str, True), - "Namespace": (str, False), + "Namespace": (str, True), "Permissions": ([str], False), "Tags": (Tags, False), } diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index 7a4cb8886..893179559 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -262,6 +262,7 @@ class EventSourceMapping(AWSObject): "FilterCriteria": (FilterCriteria, False), "FunctionName": (str, True), "FunctionResponseTypes": ([str], False), + "KmsKeyArn": (str, False), "MaximumBatchingWindowInSeconds": (integer, False), "MaximumRecordAgeInSeconds": (integer, False), "MaximumRetryAttempts": (integer, False), @@ -288,6 +289,7 @@ class Code(AWSProperty): "S3Bucket": (str, False), "S3Key": (str, False), "S3ObjectVersion": (str, False), + "SourceKMSKeyArn": (str, False), "ZipFile": (str, False), } @@ -431,6 +433,7 @@ class Function(AWSObject): "LoggingConfig": (LoggingConfig, False), "MemorySize": (validate_memory_size, False), "PackageType": (validate_package_type, False), + "RecursiveLoop": (str, False), "ReservedConcurrentExecutions": (integer, False), "Role": (str, True), "Runtime": (str, False), diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index 7e6855f9f..e5d3e4bb1 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -209,6 +209,73 @@ class AgentAlias(AWSObject): } +class PatternObjectFilter(AWSProperty): + """ + `PatternObjectFilter `__ + """ + + props: PropsDictType = { + "ExclusionFilters": ([str], False), + "InclusionFilters": ([str], False), + "ObjectType": (str, True), + } + + +class PatternObjectFilterConfiguration(AWSProperty): + """ + `PatternObjectFilterConfiguration `__ + """ + + props: PropsDictType = { + "Filters": ([PatternObjectFilter], True), + } + + +class CrawlFilterConfiguration(AWSProperty): + """ + `CrawlFilterConfiguration `__ + """ + + props: PropsDictType = { + "PatternObjectFilter": (PatternObjectFilterConfiguration, False), + "Type": (str, True), + } + + +class ConfluenceCrawlerConfiguration(AWSProperty): + """ + `ConfluenceCrawlerConfiguration `__ + """ + + props: PropsDictType = { + "FilterConfiguration": (CrawlFilterConfiguration, False), + } + + +class ConfluenceSourceConfiguration(AWSProperty): + """ + `ConfluenceSourceConfiguration `__ + """ + + props: PropsDictType = { + "AuthType": (str, True), + "CredentialsSecretArn": (str, True), + "HostType": (str, True), + "HostUrl": (str, True), + } + + +class ConfluenceDataSourceConfiguration(AWSProperty): + """ + `ConfluenceDataSourceConfiguration `__ + """ + + props: PropsDictType = { + "CrawlerConfiguration": (ConfluenceCrawlerConfiguration, False), + "SourceConfiguration": (ConfluenceSourceConfiguration, True), + } + + class S3DataSourceConfiguration(AWSProperty): """ `S3DataSourceConfiguration `__ @@ -221,14 +288,151 @@ class S3DataSourceConfiguration(AWSProperty): } +class SalesforceCrawlerConfiguration(AWSProperty): + """ + `SalesforceCrawlerConfiguration `__ + """ + + props: PropsDictType = { + "FilterConfiguration": (CrawlFilterConfiguration, False), + } + + +class SalesforceSourceConfiguration(AWSProperty): + """ + `SalesforceSourceConfiguration `__ + """ + + props: PropsDictType = { + "AuthType": (str, True), + "CredentialsSecretArn": (str, True), + "HostUrl": (str, True), + } + + +class SalesforceDataSourceConfiguration(AWSProperty): + """ + `SalesforceDataSourceConfiguration `__ + """ + + props: PropsDictType = { + "CrawlerConfiguration": (SalesforceCrawlerConfiguration, False), + "SourceConfiguration": (SalesforceSourceConfiguration, True), + } + + +class SharePointCrawlerConfiguration(AWSProperty): + """ + `SharePointCrawlerConfiguration `__ + """ + + props: PropsDictType = { + "FilterConfiguration": (CrawlFilterConfiguration, False), + } + + +class SharePointSourceConfiguration(AWSProperty): + """ + `SharePointSourceConfiguration `__ + """ + + props: PropsDictType = { + "AuthType": (str, True), + "CredentialsSecretArn": (str, True), + "Domain": (str, True), + "HostType": (str, True), + "SiteUrls": ([str], True), + "TenantId": (str, False), + } + + +class SharePointDataSourceConfiguration(AWSProperty): + """ + `SharePointDataSourceConfiguration `__ + """ + + props: PropsDictType = { + "CrawlerConfiguration": (SharePointCrawlerConfiguration, False), + "SourceConfiguration": (SharePointSourceConfiguration, True), + } + + +class WebCrawlerLimits(AWSProperty): + """ + `WebCrawlerLimits `__ + """ + + props: PropsDictType = { + "RateLimit": (integer, False), + } + + +class WebCrawlerConfiguration(AWSProperty): + """ + `WebCrawlerConfiguration `__ + """ + + props: PropsDictType = { + "CrawlerLimits": (WebCrawlerLimits, False), + "ExclusionFilters": ([str], False), + "InclusionFilters": ([str], False), + "Scope": (str, False), + } + + +class SeedUrl(AWSProperty): + """ + `SeedUrl `__ + """ + + props: PropsDictType = { + "Url": (str, True), + } + + +class UrlConfiguration(AWSProperty): + """ + `UrlConfiguration `__ + """ + + props: PropsDictType = { + "SeedUrls": ([SeedUrl], True), + } + + +class WebSourceConfiguration(AWSProperty): + """ + `WebSourceConfiguration `__ + """ + + props: PropsDictType = { + "UrlConfiguration": (UrlConfiguration, True), + } + + +class WebDataSourceConfiguration(AWSProperty): + """ + `WebDataSourceConfiguration `__ + """ + + props: PropsDictType = { + "CrawlerConfiguration": (WebCrawlerConfiguration, False), + "SourceConfiguration": (WebSourceConfiguration, True), + } + + class DataSourceConfiguration(AWSProperty): """ `DataSourceConfiguration `__ """ props: PropsDictType = { - "S3Configuration": (S3DataSourceConfiguration, True), + "ConfluenceConfiguration": (ConfluenceDataSourceConfiguration, False), + "S3Configuration": (S3DataSourceConfiguration, False), + "SalesforceConfiguration": (SalesforceDataSourceConfiguration, False), + "SharePointConfiguration": (SharePointDataSourceConfiguration, False), "Type": (str, True), + "WebConfiguration": (WebDataSourceConfiguration, False), } @@ -253,6 +457,39 @@ class FixedSizeChunkingConfiguration(AWSProperty): } +class HierarchicalChunkingLevelConfiguration(AWSProperty): + """ + `HierarchicalChunkingLevelConfiguration `__ + """ + + props: PropsDictType = { + "MaxTokens": (integer, True), + } + + +class HierarchicalChunkingConfiguration(AWSProperty): + """ + `HierarchicalChunkingConfiguration `__ + """ + + props: PropsDictType = { + "LevelConfigurations": ([HierarchicalChunkingLevelConfiguration], True), + "OverlapTokens": (integer, True), + } + + +class SemanticChunkingConfiguration(AWSProperty): + """ + `SemanticChunkingConfiguration `__ + """ + + props: PropsDictType = { + "BreakpointPercentileThreshold": (integer, True), + "BufferSize": (integer, True), + "MaxTokens": (integer, True), + } + + class ChunkingConfiguration(AWSProperty): """ `ChunkingConfiguration `__ @@ -261,6 +498,107 @@ class ChunkingConfiguration(AWSProperty): props: PropsDictType = { "ChunkingStrategy": (str, True), "FixedSizeChunkingConfiguration": (FixedSizeChunkingConfiguration, False), + "HierarchicalChunkingConfiguration": (HierarchicalChunkingConfiguration, False), + "SemanticChunkingConfiguration": (SemanticChunkingConfiguration, False), + } + + +class S3Location(AWSProperty): + """ + `S3Location `__ + """ + + props: PropsDictType = { + "Bucket": (str, True), + "Key": (str, True), + "Version": (str, False), + } + + +class IntermediateStorage(AWSProperty): + """ + `IntermediateStorage `__ + """ + + props: PropsDictType = { + "S3Location": (S3Location, True), + } + + +class TransformationLambdaConfiguration(AWSProperty): + """ + `TransformationLambdaConfiguration `__ + """ + + props: PropsDictType = { + "LambdaArn": (str, True), + } + + +class TransformationFunction(AWSProperty): + """ + `TransformationFunction `__ + """ + + props: PropsDictType = { + "TransformationLambdaConfiguration": (TransformationLambdaConfiguration, True), + } + + +class Transformation(AWSProperty): + """ + `Transformation `__ + """ + + props: PropsDictType = { + "StepToApply": (str, True), + "TransformationFunction": (TransformationFunction, True), + } + + +class CustomTransformationConfiguration(AWSProperty): + """ + `CustomTransformationConfiguration `__ + """ + + props: PropsDictType = { + "IntermediateStorage": (IntermediateStorage, True), + "Transformations": ([Transformation], True), + } + + +class ParsingPrompt(AWSProperty): + """ + `ParsingPrompt `__ + """ + + props: PropsDictType = { + "ParsingPromptText": (str, True), + } + + +class BedrockFoundationModelConfiguration(AWSProperty): + """ + `BedrockFoundationModelConfiguration `__ + """ + + props: PropsDictType = { + "ModelArn": (str, True), + "ParsingPrompt": (ParsingPrompt, False), + } + + +class ParsingConfiguration(AWSProperty): + """ + `ParsingConfiguration `__ + """ + + props: PropsDictType = { + "BedrockFoundationModelConfiguration": ( + BedrockFoundationModelConfiguration, + False, + ), + "ParsingStrategy": (str, True), } @@ -271,6 +609,8 @@ class VectorIngestionConfiguration(AWSProperty): props: PropsDictType = { "ChunkingConfiguration": (ChunkingConfiguration, False), + "CustomTransformationConfiguration": (CustomTransformationConfiguration, False), + "ParsingConfiguration": (ParsingConfiguration, False), } @@ -554,18 +894,6 @@ class FlowDefinition(AWSProperty): } -class S3Location(AWSProperty): - """ - `S3Location `__ - """ - - props: PropsDictType = { - "Bucket": (str, True), - "Key": (str, True), - "Version": (str, False), - } - - class Flow(AWSObject): """ `Flow `__ diff --git a/troposphere/codebuild.py b/troposphere/codebuild.py index 728895216..fdd452762 100644 --- a/troposphere/codebuild.py +++ b/troposphere/codebuild.py @@ -50,6 +50,7 @@ class Fleet(AWSObject): "EnvironmentType": (str, False), "FleetServiceRole": (str, False), "FleetVpcConfig": (VpcConfig, False), + "ImageId": (str, False), "Name": (str, False), "OverflowBehavior": (str, False), "Tags": (Tags, False), diff --git a/troposphere/codepipeline.py b/troposphere/codepipeline.py index de59bb6d8..f27572dc6 100644 --- a/troposphere/codepipeline.py +++ b/troposphere/codepipeline.py @@ -246,6 +246,55 @@ class Actions(AWSProperty): } +class RuleTypeId(AWSProperty): + """ + `RuleTypeId `__ + """ + + props: PropsDictType = { + "Category": (str, False), + "Owner": (str, False), + "Provider": (str, False), + "Version": (str, False), + } + + +class RuleDeclaration(AWSProperty): + """ + `RuleDeclaration `__ + """ + + props: PropsDictType = { + "Configuration": (dict, False), + "InputArtifacts": ([InputArtifacts], False), + "Name": (str, False), + "Region": (str, False), + "RoleArn": (str, False), + "RuleTypeId": (RuleTypeId, False), + } + + +class Condition(AWSProperty): + """ + `Condition `__ + """ + + props: PropsDictType = { + "Result": (str, False), + "Rules": ([RuleDeclaration], False), + } + + +class BeforeEntryConditions(AWSProperty): + """ + `BeforeEntryConditions `__ + """ + + props: PropsDictType = { + "Conditions": ([Condition], False), + } + + class Blockers(AWSProperty): """ `Blockers `__ @@ -263,10 +312,21 @@ class FailureConditions(AWSProperty): """ props: PropsDictType = { + "Conditions": ([Condition], False), "Result": (str, False), } +class SuccessConditions(AWSProperty): + """ + `SuccessConditions `__ + """ + + props: PropsDictType = { + "Conditions": ([Condition], False), + } + + class Stages(AWSProperty): """ `Stages `__ @@ -274,9 +334,11 @@ class Stages(AWSProperty): props: PropsDictType = { "Actions": ([Actions], True), + "BeforeEntry": (BeforeEntryConditions, False), "Blockers": ([Blockers], False), "Name": (str, True), "OnFailure": (FailureConditions, False), + "OnSuccess": (SuccessConditions, False), } diff --git a/troposphere/cognito.py b/troposphere/cognito.py index 366d73336..1002c86eb 100644 --- a/troposphere/cognito.py +++ b/troposphere/cognito.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 boolean, integer from .validators.cognito import validate_recoveryoption_name @@ -61,6 +61,7 @@ class IdentityPool(AWSObject): "CognitoStreams": (CognitoStreams, False), "DeveloperProviderName": (str, False), "IdentityPoolName": (str, False), + "IdentityPoolTags": (Tags, False), "OpenIdConnectProviderARNs": ([str], False), "PushSync": (PushSync, False), "SamlProviderARNs": ([str], False), @@ -143,6 +144,26 @@ class CloudWatchLogsConfiguration(AWSProperty): } +class FirehoseConfiguration(AWSProperty): + """ + `FirehoseConfiguration `__ + """ + + props: PropsDictType = { + "StreamArn": (str, False), + } + + +class S3Configuration(AWSProperty): + """ + `S3Configuration `__ + """ + + props: PropsDictType = { + "BucketArn": (str, False), + } + + class LogConfiguration(AWSProperty): """ `LogConfiguration `__ @@ -151,7 +172,9 @@ class LogConfiguration(AWSProperty): props: PropsDictType = { "CloudWatchLogsConfiguration": (CloudWatchLogsConfiguration, False), "EventSource": (str, False), + "FirehoseConfiguration": (FirehoseConfiguration, False), "LogLevel": (str, False), + "S3Configuration": (S3Configuration, False), } @@ -301,6 +324,7 @@ class PasswordPolicy(AWSProperty): props: PropsDictType = { "MinimumLength": (integer, False), + "PasswordHistorySize": (integer, False), "RequireLowercase": (boolean, False), "RequireNumbers": (boolean, False), "RequireSymbols": (boolean, False), @@ -379,12 +403,23 @@ class UserAttributeUpdateSettings(AWSProperty): } +class AdvancedSecurityAdditionalFlows(AWSProperty): + """ + `AdvancedSecurityAdditionalFlows `__ + """ + + props: PropsDictType = { + "CustomAuthMode": (str, False), + } + + class UserPoolAddOns(AWSProperty): """ `UserPoolAddOns `__ """ props: PropsDictType = { + "AdvancedSecurityAdditionalFlows": (AdvancedSecurityAdditionalFlows, False), "AdvancedSecurityMode": (str, False), } diff --git a/troposphere/deadline.py b/troposphere/deadline.py index e0a343820..5c4a3a352 100644 --- a/troposphere/deadline.py +++ b/troposphere/deadline.py @@ -195,7 +195,7 @@ class Fleet(AWSObject): "Configuration": (FleetConfiguration, True), "Description": (str, False), "DisplayName": (str, True), - "FarmId": (str, False), + "FarmId": (str, True), "MaxWorkerCount": (integer, True), "MinWorkerCount": (integer, False), "RoleArn": (str, True), @@ -303,7 +303,7 @@ class Queue(AWSObject): "DefaultBudgetAction": (str, False), "Description": (str, False), "DisplayName": (str, True), - "FarmId": (str, False), + "FarmId": (str, True), "JobAttachmentSettings": (JobAttachmentSettings, False), "JobRunAsUser": (JobRunAsUser, False), "RequiredFileSystemLocationNames": ([str], False), @@ -363,7 +363,7 @@ class StorageProfile(AWSObject): props: PropsDictType = { "DisplayName": (str, True), - "FarmId": (str, False), + "FarmId": (str, True), "FileSystemLocations": ([FileSystemLocation], False), "OsFamily": (str, True), } diff --git a/troposphere/ec2.py b/troposphere/ec2.py index 2b2940b2f..b67ef919b 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -740,6 +740,7 @@ class IPAM(AWSObject): props: PropsDictType = { "Description": (str, False), + "EnablePrivateGua": (boolean, False), "OperatingRegions": ([IpamOperatingRegion], False), "Tags": (Tags, False), "Tier": (str, False), @@ -2356,7 +2357,6 @@ class Subnet(AWSObject): "Ipv4IpamPoolId": (str, False), "Ipv4NetmaskLength": (integer, False), "Ipv6CidrBlock": (str, False), - "Ipv6CidrBlocks": ([str], False), "Ipv6IpamPoolId": (str, False), "Ipv6Native": (boolean, False), "Ipv6NetmaskLength": (integer, False), @@ -2891,9 +2891,16 @@ class VPNConnection(AWSObject): props: PropsDictType = { "CustomerGatewayId": (str, True), "EnableAcceleration": (boolean, False), + "LocalIpv4NetworkCidr": (str, False), + "LocalIpv6NetworkCidr": (str, False), + "OutsideIpAddressType": (str, False), + "RemoteIpv4NetworkCidr": (str, False), + "RemoteIpv6NetworkCidr": (str, False), "StaticRoutesOnly": (boolean, False), "Tags": (validate_tags_or_list, False), "TransitGatewayId": (str, False), + "TransportTransitGatewayAttachmentId": (str, False), + "TunnelInsideIpVersion": (str, False), "Type": (str, True), "VpnGatewayId": (str, False), "VpnTunnelOptionsSpecifications": ([VpnTunnelOptionsSpecification], False), diff --git a/troposphere/ecs.py b/troposphere/ecs.py index c7cfd33b7..360412090 100644 --- a/troposphere/ecs.py +++ b/troposphere/ecs.py @@ -665,6 +665,18 @@ class ResourceRequirement(AWSProperty): } +class RestartPolicy(AWSProperty): + """ + `RestartPolicy `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + "IgnoredExitCodes": ([integer], False), + "RestartAttemptPeriod": (integer, False), + } + + class SystemControl(AWSProperty): """ `SystemControl `__ @@ -737,6 +749,7 @@ class ContainerDefinition(AWSProperty): "ReadonlyRootFilesystem": (boolean, False), "RepositoryCredentials": (RepositoryCredentials, False), "ResourceRequirements": ([ResourceRequirement], False), + "RestartPolicy": (RestartPolicy, False), "Secrets": ([Secret], False), "StartTimeout": (integer, False), "StopTimeout": (integer, False), diff --git a/troposphere/entityresolution.py b/troposphere/entityresolution.py index 0711ecca6..819abe007 100644 --- a/troposphere/entityresolution.py +++ b/troposphere/entityresolution.py @@ -177,6 +177,16 @@ class IdNamespace(AWSObject): } +class IncrementalRunConfig(AWSProperty): + """ + `IncrementalRunConfig `__ + """ + + props: PropsDictType = { + "IncrementalRunType": (str, True), + } + + class InputSource(AWSProperty): """ `InputSource `__ @@ -246,6 +256,7 @@ class MatchingWorkflow(AWSObject): props: PropsDictType = { "Description": (str, False), + "IncrementalRunConfig": (IncrementalRunConfig, False), "InputSourceConfig": ([InputSource], True), "OutputSourceConfig": ([OutputSource], True), "ResolutionTechniques": (ResolutionTechniques, True), diff --git a/troposphere/firehose.py b/troposphere/firehose.py index c936c6e20..8c9ebb3f1 100644 --- a/troposphere/firehose.py +++ b/troposphere/firehose.py @@ -575,6 +575,7 @@ class MSKSourceConfiguration(AWSProperty): props: PropsDictType = { "AuthenticationConfiguration": (AuthenticationConfiguration, True), "MSKClusterARN": (str, True), + "ReadFromTimestamp": (str, False), "TopicName": (str, True), } diff --git a/troposphere/glue.py b/troposphere/glue.py index 90f4b3108..b364801dd 100644 --- a/troposphere/glue.py +++ b/troposphere/glue.py @@ -403,7 +403,7 @@ class DatabaseIdentifier(AWSProperty): class FederatedDatabase(AWSProperty): """ - `FederatedDatabase `__ + `FederatedDatabase `__ """ props: PropsDictType = { @@ -459,6 +459,7 @@ class Database(AWSObject): props: PropsDictType = { "CatalogId": (str, True), "DatabaseInput": (DatabaseInput, True), + "DatabaseName": (str, False), } diff --git a/troposphere/iotfleetwise.py b/troposphere/iotfleetwise.py index 6dde79a8f..efcb2be63 100644 --- a/troposphere/iotfleetwise.py +++ b/troposphere/iotfleetwise.py @@ -44,6 +44,17 @@ class CollectionScheme(AWSProperty): } +class MqttTopicConfig(AWSProperty): + """ + `MqttTopicConfig `__ + """ + + props: PropsDictType = { + "ExecutionRoleArn": (str, True), + "MqttTopicArn": (str, True), + } + + class S3Config(AWSProperty): """ `S3Config `__ @@ -74,6 +85,7 @@ class DataDestinationConfig(AWSProperty): """ props: PropsDictType = { + "MqttTopicConfig": (MqttTopicConfig, False), "S3Config": (S3Config, False), "TimestreamConfig": (TimestreamConfig, False), } @@ -119,114 +131,6 @@ class Campaign(AWSObject): } -class CanInterface(AWSProperty): - """ - `CanInterface `__ - """ - - props: PropsDictType = { - "Name": (str, True), - "ProtocolName": (str, False), - "ProtocolVersion": (str, False), - } - - -class ObdInterface(AWSProperty): - """ - `ObdInterface `__ - """ - - props: PropsDictType = { - "DtcRequestIntervalSeconds": (str, False), - "HasTransmissionEcu": (str, False), - "Name": (str, True), - "ObdStandard": (str, False), - "PidRequestIntervalSeconds": (str, False), - "RequestMessageId": (str, True), - "UseExtendedIds": (str, False), - } - - -class NetworkInterfacesItems(AWSProperty): - """ - `NetworkInterfacesItems `__ - """ - - props: PropsDictType = { - "CanInterface": (CanInterface, False), - "InterfaceId": (str, True), - "ObdInterface": (ObdInterface, False), - "Type": (str, True), - } - - -class CanSignal(AWSProperty): - """ - `CanSignal `__ - """ - - props: PropsDictType = { - "Factor": (str, True), - "IsBigEndian": (str, True), - "IsSigned": (str, True), - "Length": (str, True), - "MessageId": (str, True), - "Name": (str, False), - "Offset": (str, True), - "StartBit": (str, True), - } - - -class ObdSignal(AWSProperty): - """ - `ObdSignal `__ - """ - - props: PropsDictType = { - "BitMaskLength": (str, False), - "BitRightShift": (str, False), - "ByteLength": (str, True), - "Offset": (str, True), - "Pid": (str, True), - "PidResponseLength": (str, True), - "Scaling": (str, True), - "ServiceMode": (str, True), - "StartByte": (str, True), - } - - -class SignalDecodersItems(AWSProperty): - """ - `SignalDecodersItems `__ - """ - - props: PropsDictType = { - "CanSignal": (CanSignal, False), - "FullyQualifiedName": (str, True), - "InterfaceId": (str, True), - "ObdSignal": (ObdSignal, False), - "Type": (str, True), - } - - -class DecoderManifest(AWSObject): - """ - `DecoderManifest `__ - """ - - resource_type = "AWS::IoTFleetWise::DecoderManifest" - - props: PropsDictType = { - "Description": (str, False), - "ModelManifestArn": (str, True), - "Name": (str, True), - "NetworkInterfaces": ([NetworkInterfacesItems], False), - "SignalDecoders": ([SignalDecodersItems], False), - "Status": (str, False), - "Tags": (Tags, False), - } - - class Fleet(AWSObject): """ `Fleet `__ diff --git a/troposphere/ivs.py b/troposphere/ivs.py index 534a1d44e..0c30ab9bf 100644 --- a/troposphere/ivs.py +++ b/troposphere/ivs.py @@ -86,6 +86,20 @@ class PlaybackRestrictionPolicy(AWSObject): } +class PublicKey(AWSObject): + """ + `PublicKey `__ + """ + + resource_type = "AWS::IVS::PublicKey" + + props: PropsDictType = { + "Name": (str, False), + "PublicKeyMaterial": (str, False), + "Tags": (Tags, False), + } + + class S3DestinationConfiguration(AWSProperty): """ `S3DestinationConfiguration `__ @@ -147,6 +161,17 @@ class RecordingConfiguration(AWSObject): } +class AutoParticipantRecordingConfiguration(AWSProperty): + """ + `AutoParticipantRecordingConfiguration `__ + """ + + props: PropsDictType = { + "MediaTypes": ([str], False), + "StorageConfigurationArn": (str, True), + } + + class Stage(AWSObject): """ `Stage `__ @@ -155,6 +180,10 @@ class Stage(AWSObject): resource_type = "AWS::IVS::Stage" props: PropsDictType = { + "AutoParticipantRecordingConfiguration": ( + AutoParticipantRecordingConfiguration, + False, + ), "Name": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/medialive.py b/troposphere/medialive.py index 8ad691aed..e08d883b2 100644 --- a/troposphere/medialive.py +++ b/troposphere/medialive.py @@ -2269,6 +2269,41 @@ class MediaConnectFlowRequest(AWSProperty): } +class SrtCallerDecryptionRequest(AWSProperty): + """ + `SrtCallerDecryptionRequest `__ + """ + + props: PropsDictType = { + "Algorithm": (str, False), + "PassphraseSecretArn": (str, False), + } + + +class SrtCallerSourceRequest(AWSProperty): + """ + `SrtCallerSourceRequest `__ + """ + + props: PropsDictType = { + "Decryption": (SrtCallerDecryptionRequest, False), + "MinimumLatency": (integer, False), + "SrtListenerAddress": (str, False), + "SrtListenerPort": (str, False), + "StreamId": (str, False), + } + + +class SrtSettingsRequest(AWSProperty): + """ + `SrtSettingsRequest `__ + """ + + props: PropsDictType = { + "SrtCallerSources": ([SrtCallerSourceRequest], False), + } + + class Input(AWSObject): """ `Input `__ @@ -2284,6 +2319,7 @@ class Input(AWSObject): "Name": (str, False), "RoleArn": (str, False), "Sources": ([InputSourceRequest], False), + "SrtSettings": (SrtSettingsRequest, False), "Tags": (dict, False), "Type": (str, False), "Vpc": (InputVpcRequest, False), @@ -2453,7 +2489,6 @@ class Multiplexprogram(AWSObject): resource_type = "AWS::MediaLive::Multiplexprogram" props: PropsDictType = { - "ChannelId": (str, False), "MultiplexId": (str, False), "MultiplexProgramSettings": (MultiplexProgramSettings, False), "PacketIdentifiersMap": (MultiplexProgramPacketIdentifiersMap, False), diff --git a/troposphere/msk.py b/troposphere/msk.py index eff754866..b56bcdbbb 100644 --- a/troposphere/msk.py +++ b/troposphere/msk.py @@ -477,6 +477,16 @@ class ReplicationStartingPosition(AWSProperty): } +class ReplicationTopicNameConfiguration(AWSProperty): + """ + `ReplicationTopicNameConfiguration `__ + """ + + props: PropsDictType = { + "Type": (str, False), + } + + class TopicReplication(AWSProperty): """ `TopicReplication `__ @@ -487,6 +497,7 @@ class TopicReplication(AWSProperty): "CopyTopicConfigurations": (boolean, False), "DetectAndCopyNewTopics": (boolean, False), "StartingPosition": (ReplicationStartingPosition, False), + "TopicNameConfiguration": (ReplicationTopicNameConfiguration, False), "TopicsToExclude": ([str], False), "TopicsToReplicate": ([str], True), } diff --git a/troposphere/networkmanager.py b/troposphere/networkmanager.py index 664afcc73..a5be55ba4 100644 --- a/troposphere/networkmanager.py +++ b/troposphere/networkmanager.py @@ -20,6 +20,18 @@ class ConnectAttachmentOptions(AWSProperty): } +class ProposedNetworkFunctionGroupChange(AWSProperty): + """ + `ProposedNetworkFunctionGroupChange `__ + """ + + props: PropsDictType = { + "AttachmentPolicyRuleNumber": (integer, False), + "NetworkFunctionGroupName": (str, False), + "Tags": (Tags, False), + } + + class ProposedSegmentChange(AWSProperty): """ `ProposedSegmentChange `__ @@ -42,7 +54,12 @@ class ConnectAttachment(AWSObject): props: PropsDictType = { "CoreNetworkId": (str, True), "EdgeLocation": (str, True), + "NetworkFunctionGroupName": (str, False), "Options": (ConnectAttachmentOptions, True), + "ProposedNetworkFunctionGroupChange": ( + ProposedNetworkFunctionGroupChange, + False, + ), "ProposedSegmentChange": (ProposedSegmentChange, False), "Tags": (Tags, False), "TransportAttachmentId": (str, True), @@ -233,6 +250,11 @@ class SiteToSiteVpnAttachment(AWSObject): props: PropsDictType = { "CoreNetworkId": (str, True), + "NetworkFunctionGroupName": (str, False), + "ProposedNetworkFunctionGroupChange": ( + ProposedNetworkFunctionGroupChange, + False, + ), "ProposedSegmentChange": (ProposedSegmentChange, False), "Tags": (Tags, False), "VpnConnectionArn": (str, True), @@ -274,7 +296,12 @@ class TransitGatewayRouteTableAttachment(AWSObject): resource_type = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" props: PropsDictType = { + "NetworkFunctionGroupName": (str, False), "PeeringId": (str, True), + "ProposedNetworkFunctionGroupChange": ( + ProposedNetworkFunctionGroupChange, + False, + ), "ProposedSegmentChange": (ProposedSegmentChange, False), "Tags": (Tags, False), "TransitGatewayRouteTableArn": (str, True), @@ -302,6 +329,10 @@ class VpcAttachment(AWSObject): props: PropsDictType = { "CoreNetworkId": (str, True), "Options": (VpcOptions, False), + "ProposedNetworkFunctionGroupChange": ( + ProposedNetworkFunctionGroupChange, + False, + ), "ProposedSegmentChange": (ProposedSegmentChange, False), "SubnetArns": ([str], True), "Tags": (Tags, False), @@ -358,3 +389,14 @@ class CoreNetworkSegment(AWSProperty): "Name": (str, False), "SharedSegments": ([str], False), } + + +class Segments(AWSProperty): + """ + `Segments `__ + """ + + props: PropsDictType = { + "SendTo": ([str], False), + "SendVia": ([str], False), + } diff --git a/troposphere/osis.py b/troposphere/osis.py index cc87dcb66..dcd44ab23 100644 --- a/troposphere/osis.py +++ b/troposphere/osis.py @@ -51,6 +51,17 @@ class LogPublishingOptions(AWSProperty): } +class VpcAttachmentOptions(AWSProperty): + """ + `VpcAttachmentOptions `__ + """ + + props: PropsDictType = { + "AttachToVpc": (boolean, True), + "CidrBlock": (str, True), + } + + class VpcOptions(AWSProperty): """ `VpcOptions `__ @@ -59,6 +70,7 @@ class VpcOptions(AWSProperty): props: PropsDictType = { "SecurityGroupIds": ([str], False), "SubnetIds": ([str], True), + "VpcAttachmentOptions": (VpcAttachmentOptions, False), "VpcEndpointManagement": (str, False), } diff --git a/troposphere/quicksight.py b/troposphere/quicksight.py index 17eb7322e..55ed2e8ec 100644 --- a/troposphere/quicksight.py +++ b/troposphere/quicksight.py @@ -761,6 +761,41 @@ class CategoryFilter(AWSProperty): } +class CategoryInnerFilter(AWSProperty): + """ + `CategoryInnerFilter `__ + """ + + props: PropsDictType = { + "Column": (ColumnIdentifier, True), + "Configuration": (CategoryFilterConfiguration, True), + "DefaultFilterControlConfiguration": (DefaultFilterControlConfiguration, False), + } + + +class InnerFilter(AWSProperty): + """ + `InnerFilter `__ + """ + + props: PropsDictType = { + "CategoryInnerFilter": (CategoryInnerFilter, False), + } + + +class NestedFilter(AWSProperty): + """ + `NestedFilter `__ + """ + + props: PropsDictType = { + "Column": (ColumnIdentifier, True), + "FilterId": (str, True), + "IncludeInnerSet": (boolean, True), + "InnerFilter": (InnerFilter, True), + } + + class AttributeAggregationFunction(AWSProperty): """ `AttributeAggregationFunction `__ @@ -990,6 +1025,7 @@ class Filter(AWSProperty): props: PropsDictType = { "CategoryFilter": (CategoryFilter, False), + "NestedFilter": (NestedFilter, False), "NumericEqualityFilter": (NumericEqualityFilter, False), "NumericRangeFilter": (NumericRangeFilter, False), "RelativeDatesFilter": (RelativeDatesFilter, False), @@ -6294,7 +6330,7 @@ class DataSetRefreshProperties(AWSProperty): """ props: PropsDictType = { - "RefreshConfiguration": (RefreshConfiguration, True), + "RefreshConfiguration": (RefreshConfiguration, False), } diff --git a/troposphere/redshift.py b/troposphere/redshift.py index 0624d0b05..169cb0820 100644 --- a/troposphere/redshift.py +++ b/troposphere/redshift.py @@ -28,6 +28,8 @@ class LoggingProperties(AWSProperty): props: PropsDictType = { "BucketName": (str, False), + "LogDestinationType": (str, False), + "LogExports": ([str], False), "S3KeyPrefix": (str, False), } diff --git a/troposphere/rolesanywhere.py b/troposphere/rolesanywhere.py index acee0af39..f078e94a4 100644 --- a/troposphere/rolesanywhere.py +++ b/troposphere/rolesanywhere.py @@ -55,6 +55,7 @@ class Profile(AWSObject): resource_type = "AWS::RolesAnywhere::Profile" props: PropsDictType = { + "AcceptRoleSessionName": (boolean, False), "AttributeMappings": ([AttributeMapping], False), "DurationSeconds": (double, False), "Enabled": (boolean, False), diff --git a/troposphere/route53resolver.py b/troposphere/route53resolver.py index b7daf7d07..f5181cd9c 100644 --- a/troposphere/route53resolver.py +++ b/troposphere/route53resolver.py @@ -195,7 +195,8 @@ class ResolverRule(AWSObject): resource_type = "AWS::Route53Resolver::ResolverRule" props: PropsDictType = { - "DomainName": (str, True), + "DelegationRecord": (str, False), + "DomainName": (str, False), "Name": (str, False), "ResolverEndpointId": (str, False), "RuleType": (validate_ruletype, True), diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index f44801d33..42544015f 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -1438,12 +1438,24 @@ class ImageConfig(AWSProperty): } -class S3DataSource(AWSProperty): +class ModelAccessConfig(AWSProperty): """ - `S3DataSource `__ + `ModelAccessConfig `__ + """ + + props: PropsDictType = { + "AcceptEula": (boolean, True), + } + + +class S3ModelDataSource(AWSProperty): + """ + `S3ModelDataSource `__ """ props: PropsDictType = { + "CompressionType": (str, True), + "ModelAccessConfig": (ModelAccessConfig, False), "S3DataType": (str, True), "S3Uri": (str, True), } @@ -1451,11 +1463,11 @@ class S3DataSource(AWSProperty): class ModelDataSource(AWSProperty): """ - `ModelDataSource `__ + `ModelDataSource `__ """ props: PropsDictType = { - "S3DataSource": (S3DataSource, True), + "S3DataSource": (S3ModelDataSource, False), } @@ -1733,6 +1745,7 @@ class ModelPackageContainerDefinition(AWSProperty): "FrameworkVersion": (str, False), "Image": (str, True), "ImageDigest": (str, False), + "ModelDataSource": (ModelDataSource, False), "ModelDataUrl": (str, False), "ModelInput": (ModelInput, False), "NearestModelName": (str, False), @@ -1898,11 +1911,11 @@ class Content(AWSProperty): class SecurityConfig(AWSProperty): """ - `SecurityConfig `__ + `SecurityConfig `__ """ props: PropsDictType = { - "KmsKeyId": (str, False), + "KmsKeyId": (str, True), } @@ -2122,6 +2135,17 @@ class MetadataProperties(AWSProperty): } +class ModelCardProperty(AWSProperty): + """ + `ModelCardProperty `__ + """ + + props: PropsDictType = { + "ModelCardContent": (str, True), + "ModelCardStatus": (str, True), + } + + class Bias(AWSProperty): """ `Bias `__ @@ -2211,6 +2235,17 @@ class SourceAlgorithmSpecification(AWSProperty): } +class S3DataSource(AWSProperty): + """ + `S3DataSource `__ + """ + + props: PropsDictType = { + "S3DataType": (str, True), + "S3Uri": (str, True), + } + + class DataSource(AWSProperty): """ `DataSource `__ @@ -2323,6 +2358,7 @@ class ModelPackage(AWSObject): "LastModifiedTime": (str, False), "MetadataProperties": (MetadataProperties, False), "ModelApprovalStatus": (str, False), + "ModelCard": (ModelCardProperty, False), "ModelMetrics": (ModelMetrics, False), "ModelPackageDescription": (str, False), "ModelPackageGroupName": (str, False), @@ -2330,8 +2366,10 @@ class ModelPackage(AWSObject): "ModelPackageStatusDetails": (ModelPackageStatusDetails, False), "ModelPackageVersion": (integer, False), "SamplePayloadUrl": (str, False), + "SecurityConfig": (SecurityConfig, False), "SkipModelValidation": (str, False), "SourceAlgorithmSpecification": (SourceAlgorithmSpecification, False), + "SourceUri": (str, False), "Tags": (Tags, False), "Task": (str, False), "ValidationSpecification": (ValidationSpecification, False), @@ -2957,16 +2995,6 @@ class HubAccessConfig(AWSProperty): } -class ModelAccessConfig(AWSProperty): - """ - `ModelAccessConfig `__ - """ - - props: PropsDictType = { - "AcceptEula": (boolean, True), - } - - class RSessionAppSettings(AWSProperty): """ `RSessionAppSettings `__ diff --git a/troposphere/securityhub.py b/troposphere/securityhub.py index 7bfaaa45c..c7ba2cae1 100644 --- a/troposphere/securityhub.py +++ b/troposphere/securityhub.py @@ -193,12 +193,12 @@ class AutomationRule(AWSObject): resource_type = "AWS::SecurityHub::AutomationRule" props: PropsDictType = { - "Actions": ([AutomationRulesAction], False), - "Criteria": (AutomationRulesFindingFilters, False), - "Description": (str, False), + "Actions": ([AutomationRulesAction], True), + "Criteria": (AutomationRulesFindingFilters, True), + "Description": (str, True), "IsTerminal": (boolean, False), - "RuleName": (str, False), - "RuleOrder": (integer, False), + "RuleName": (str, True), + "RuleOrder": (integer, True), "RuleStatus": (str, False), "Tags": (dict, False), } diff --git a/troposphere/ses.py b/troposphere/ses.py index 120d9ab07..fd284844d 100644 --- a/troposphere/ses.py +++ b/troposphere/ses.py @@ -57,7 +57,7 @@ class TrackingOptions(AWSProperty): """ props: PropsDictType = { - "CustomRedirectDomain": (str, True), + "CustomRedirectDomain": (str, False), } @@ -887,6 +887,7 @@ class S3Action(AWSProperty): props: PropsDictType = { "BucketName": (str, True), + "IamRoleArn": (str, False), "KmsKeyArn": (str, False), "ObjectKeyPrefix": (str, False), "TopicArn": (str, False), diff --git a/troposphere/systemsmanagersap.py b/troposphere/systemsmanagersap.py index 3ce27088d..b2aa3b043 100644 --- a/troposphere/systemsmanagersap.py +++ b/troposphere/systemsmanagersap.py @@ -32,6 +32,7 @@ class Application(AWSObject): "ApplicationId": (str, True), "ApplicationType": (str, True), "Credentials": ([Credential], False), + "DatabaseArn": (str, False), "Instances": ([str], False), "SapInstanceNumber": (str, False), "Sid": (str, False),