From b5b8ffcfff43947d25da6e3cf7407962056bdd2b Mon Sep 17 00:00:00 2001 From: markpeek <638982+markpeek@users.noreply.github.com> Date: Fri, 17 Jul 2026 14:22:49 +0000 Subject: [PATCH] Updates from spec version 257.0.0 --- troposphere/amazonmq.py | 1 + troposphere/appstream.py | 27 ++++ troposphere/auditmanager.py | 37 ++++++ troposphere/awslambda.py | 2 + troposphere/bedrock.py | 66 +++++++++- troposphere/bedrockagentcore.py | 118 +++++++++++++++++ troposphere/certificatemanager.py | 123 ++++++++++++++++- troposphere/cleanrooms.py | 89 ++++++++++++- troposphere/cloudformation.py | 27 +--- troposphere/cloudfront.py | 1 + troposphere/cloudwatch.py | 5 +- troposphere/codebuild.py | 13 +- troposphere/cognito.py | 68 +++++++++- troposphere/config.py | 66 +++++----- troposphere/connect.py | 182 ++++++++++++++++++++++++-- troposphere/customerprofiles.py | 30 +++++ troposphere/devopsagent.py | 5 +- troposphere/dynamodb.py | 24 ---- troposphere/ec2.py | 89 +++++++++++-- troposphere/ecs.py | 18 ++- troposphere/eks.py | 11 ++ troposphere/elasticloadbalancingv2.py | 3 + troposphere/emrcontainers.py | 2 + troposphere/evs.py | 8 +- troposphere/globalaccelerator.py | 3 + troposphere/glue.py | 23 ++++ troposphere/imagebuilder.py | 3 + troposphere/mediaconnect.py | 59 +++++++++ troposphere/opensearchserverless.py | 27 ++++ troposphere/personalize.py | 15 --- troposphere/quicksight.py | 73 +++++++++++ troposphere/route53resolver.py | 12 ++ troposphere/sagemaker.py | 169 ++++++++++++++++++++++-- troposphere/securityhub.py | 50 +++++++ troposphere/servicecatalog.py | 15 ++- troposphere/vpclattice.py | 1 + 36 files changed, 1301 insertions(+), 164 deletions(-) diff --git a/troposphere/amazonmq.py b/troposphere/amazonmq.py index d181c5e2d..d69a23467 100644 --- a/troposphere/amazonmq.py +++ b/troposphere/amazonmq.py @@ -115,6 +115,7 @@ class Broker(AWSObject): "PubliclyAccessible": (boolean, True), "ResourceShareArns": ([str], False), "SecurityGroups": ([str], False), + "StorageSize": (integer, False), "StorageType": (str, False), "SubnetIds": ([str], False), "Tags": (validate_tags_or_list, False), diff --git a/troposphere/appstream.py b/troposphere/appstream.py index 13a754c95..d8bc9707f 100644 --- a/troposphere/appstream.py +++ b/troposphere/appstream.py @@ -306,6 +306,32 @@ class ImageBuilder(AWSObject): } +class AgentAccessSetting(AWSProperty): + """ + `AgentAccessSetting `__ + """ + + props: PropsDictType = { + "AgentAction": (str, True), + "Permission": (str, True), + } + + +class AgentAccessConfig(AWSProperty): + """ + `AgentAccessConfig `__ + """ + + props: PropsDictType = { + "S3BucketArn": (str, False), + "ScreenImageFormat": (str, True), + "ScreenResolution": (str, True), + "ScreenshotsUploadEnabled": (boolean, False), + "Settings": ([AgentAccessSetting], True), + "UserControlMode": (str, False), + } + + class ApplicationSettings(AWSProperty): """ `ApplicationSettings `__ @@ -382,6 +408,7 @@ class Stack(AWSObject): props: PropsDictType = { "AccessEndpoints": ([AccessEndpoint], False), + "AgentAccessConfig": (AgentAccessConfig, False), "ApplicationSettings": (ApplicationSettings, False), "AttributesToDelete": ([str], False), "ContentRedirection": (ContentRedirection, False), diff --git a/troposphere/auditmanager.py b/troposphere/auditmanager.py index e8f7317a0..1f859d903 100644 --- a/troposphere/auditmanager.py +++ b/troposphere/auditmanager.py @@ -104,3 +104,40 @@ class Assessment(AWSObject): "Status": (str, False), "Tags": (Tags, False), } + + +class ControlSetControl(AWSProperty): + """ + `ControlSetControl `__ + """ + + props: PropsDictType = { + "Id": (str, True), + } + + +class ControlSet(AWSProperty): + """ + `ControlSet `__ + """ + + props: PropsDictType = { + "Controls": ([ControlSetControl], True), + "Name": (str, True), + } + + +class AssessmentFramework(AWSObject): + """ + `AssessmentFramework `__ + """ + + resource_type = "AWS::AuditManager::AssessmentFramework" + + props: PropsDictType = { + "ComplianceType": (str, False), + "ControlSets": ([ControlSet], True), + "Description": (str, False), + "Name": (str, True), + "Tags": (Tags, False), + } diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index 0f74a5187..546e0e047 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -497,6 +497,7 @@ class Code(AWSProperty): "ImageUri": (str, False), "S3Bucket": (str, False), "S3Key": (str, False), + "S3ObjectStorageMode": (str, False), "S3ObjectVersion": (str, False), "SourceKMSKeyArn": (str, False), "ZipFile": (str, False), @@ -523,6 +524,7 @@ class DurableConfig(AWSProperty): props: PropsDictType = { "ExecutionTimeout": (integer, True), + "KMSKeyArn": (str, False), "RetentionPeriodInDays": (integer, False), } diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index cac634ce7..8bece101c 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -2557,7 +2557,7 @@ class ManagedKnowledgeBaseConfiguration(AWSProperty): """ props: PropsDictType = { - "EmbeddingModelArn": (str, True), + "EmbeddingModelArn": (str, False), "EmbeddingModelConfiguration": (EmbeddingModelConfiguration, False), "EmbeddingModelType": (str, False), "ServerSideEncryptionConfiguration": ( @@ -3004,6 +3004,16 @@ class KnowledgeBase(AWSObject): } +class ModelInvocationJob(AWSObject): + """ + `ModelInvocationJob `__ + """ + + resource_type = "AWS::Bedrock::ModelInvocationJob" + + props: PropsDictType = {} + + class PromptAgentResource(AWSProperty): """ `PromptAgentResource `__ @@ -3137,3 +3147,57 @@ class InferenceProfileModel(AWSProperty): props: PropsDictType = { "ModelArn": (str, False), } + + +class ModelInvocationJobS3InputDataConfig(AWSProperty): + """ + `ModelInvocationJobS3InputDataConfig `__ + """ + + props: PropsDictType = { + "S3BucketOwner": (str, False), + "S3Uri": (str, True), + } + + +class ModelInvocationJobInputDataConfig(AWSProperty): + """ + `ModelInvocationJobInputDataConfig `__ + """ + + props: PropsDictType = { + "S3InputDataConfig": (ModelInvocationJobS3InputDataConfig, True), + } + + +class ModelInvocationJobS3OutputDataConfig(AWSProperty): + """ + `ModelInvocationJobS3OutputDataConfig `__ + """ + + props: PropsDictType = { + "S3BucketOwner": (str, False), + "S3EncryptionKeyId": (str, False), + "S3Uri": (str, True), + } + + +class ModelInvocationJobOutputDataConfig(AWSProperty): + """ + `ModelInvocationJobOutputDataConfig `__ + """ + + props: PropsDictType = { + "S3OutputDataConfig": (ModelInvocationJobS3OutputDataConfig, True), + } + + +class VpcConfig(AWSProperty): + """ + `VpcConfig `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "SubnetIds": ([str], True), + } diff --git a/troposphere/bedrockagentcore.py b/troposphere/bedrockagentcore.py index f16064e03..1542f69c6 100644 --- a/troposphere/bedrockagentcore.py +++ b/troposphere/bedrockagentcore.py @@ -167,6 +167,16 @@ class BrowserProfile(AWSObject): } +class CodeInterpreter(AWSObject): + """ + `CodeInterpreter `__ + """ + + resource_type = "AWS::BedrockAgentCore::CodeInterpreter" + + props: PropsDictType = {} + + class CodeInterpreterNetworkConfiguration(AWSProperty): """ `CodeInterpreterNetworkConfiguration `__ @@ -778,6 +788,92 @@ class HttpTargetConfiguration(AWSProperty): } +class InferenceConnectorSource(AWSProperty): + """ + `InferenceConnectorSource `__ + """ + + props: PropsDictType = { + "ConnectorId": (str, True), + } + + +class InferenceConnectorTargetConfiguration(AWSProperty): + """ + `InferenceConnectorTargetConfiguration `__ + """ + + props: PropsDictType = { + "Source": (InferenceConnectorSource, True), + } + + +class ModelEntry(AWSProperty): + """ + `ModelEntry `__ + """ + + props: PropsDictType = { + "Model": (str, True), + } + + +class InferenceOperationConfiguration(AWSProperty): + """ + `InferenceOperationConfiguration `__ + """ + + props: PropsDictType = { + "Models": ([ModelEntry], False), + "Path": (str, True), + "ProviderPath": (str, False), + } + + +class ProviderPrefix(AWSProperty): + """ + `ProviderPrefix `__ + """ + + props: PropsDictType = { + "Separator": (str, False), + "Strip": (boolean, False), + } + + +class ModelMapping(AWSProperty): + """ + `ModelMapping `__ + """ + + props: PropsDictType = { + "ProviderPrefix": (ProviderPrefix, False), + } + + +class InferenceProviderTargetConfiguration(AWSProperty): + """ + `InferenceProviderTargetConfiguration `__ + """ + + props: PropsDictType = { + "Endpoint": (str, True), + "ModelMapping": (ModelMapping, False), + "Operations": ([InferenceOperationConfiguration], False), + } + + +class InferenceTargetConfiguration(AWSProperty): + """ + `InferenceTargetConfiguration `__ + """ + + props: PropsDictType = { + "Connector": (InferenceConnectorTargetConfiguration, False), + "Provider": (InferenceProviderTargetConfiguration, False), + } + + class ApiGatewayToolFilter(AWSProperty): """ `ApiGatewayToolFilter `__ @@ -967,6 +1063,7 @@ class TargetConfiguration(AWSProperty): props: PropsDictType = { "Http": (HttpTargetConfiguration, False), + "Inference": (InferenceTargetConfiguration, False), "Mcp": (McpTargetConfiguration, False), } @@ -2554,6 +2651,16 @@ class RuntimeEndpoint(AWSObject): } +class TokenVault(AWSObject): + """ + `TokenVault `__ + """ + + resource_type = "AWS::BedrockAgentCore::TokenVault" + + props: PropsDictType = {} + + class WorkloadIdentity(AWSObject): """ `WorkloadIdentity `__ @@ -2645,6 +2752,17 @@ class CoinbaseCdpConfigurationOutput(AWSProperty): } +class KmsConfiguration(AWSProperty): + """ + `KmsConfiguration `__ + """ + + props: PropsDictType = { + "KeyType": (str, True), + "KmsKeyArn": (str, False), + } + + class ManagedResourceDetails(AWSProperty): """ `ManagedResourceDetails `__ diff --git a/troposphere/certificatemanager.py b/troposphere/certificatemanager.py index 3dece25e2..574d9915b 100644 --- a/troposphere/certificatemanager.py +++ b/troposphere/certificatemanager.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.certificatemanager import validate_tags_or_list @@ -33,6 +33,127 @@ class Account(AWSObject): } +class DomainScope(AWSProperty): + """ + `DomainScope `__ + """ + + props: PropsDictType = { + "ExactDomain": (str, False), + "Subdomains": (str, False), + "Wildcards": (str, False), + } + + +class DnsPrevalidationOptions(AWSProperty): + """ + `DnsPrevalidationOptions `__ + """ + + props: PropsDictType = { + "DomainScope": (DomainScope, False), + "HostedZoneId": (str, False), + } + + +class PrevalidationOptions(AWSProperty): + """ + `PrevalidationOptions `__ + """ + + props: PropsDictType = { + "DnsPrevalidation": (DnsPrevalidationOptions, True), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class AcmeDomainValidation(AWSObject): + """ + `AcmeDomainValidation `__ + """ + + resource_type = "AWS::CertificateManager::AcmeDomainValidation" + + props: PropsDictType = { + "AcmeEndpointArn": (str, True), + "DomainName": (str, True), + "PrevalidationOptions": (PrevalidationOptions, True), + "Tags": ([TagsItems], False), + } + + +class PublicCertificateAuthority(AWSProperty): + """ + `PublicCertificateAuthority `__ + """ + + props: PropsDictType = { + "AllowedKeyAlgorithms": ([str], False), + } + + +class CertificateAuthority(AWSProperty): + """ + `CertificateAuthority `__ + """ + + props: PropsDictType = { + "PublicCertificateAuthority": (PublicCertificateAuthority, True), + } + + +class AcmeEndpoint(AWSObject): + """ + `AcmeEndpoint `__ + """ + + resource_type = "AWS::CertificateManager::AcmeEndpoint" + + props: PropsDictType = { + "AuthorizationBehavior": (str, True), + "CertificateAuthority": (CertificateAuthority, True), + "CertificateTags": (Tags, False), + "Contact": (str, False), + "Tags": ([TagsItems], False), + } + + +class Expiration(AWSProperty): + """ + `Expiration `__ + """ + + props: PropsDictType = { + "Type": (str, True), + "Value": (integer, True), + } + + +class AcmeExternalAccountBinding(AWSObject): + """ + `AcmeExternalAccountBinding `__ + """ + + resource_type = "AWS::CertificateManager::AcmeExternalAccountBinding" + + props: PropsDictType = { + "AcmeEndpointArn": (str, True), + "Expiration": (Expiration, False), + "RoleArn": (str, True), + "Tags": ([TagsItems], False), + } + + class DomainValidationOption(AWSProperty): """ `DomainValidationOption `__ diff --git a/troposphere/cleanrooms.py b/troposphere/cleanrooms.py index e3146a6e2..d733b258a 100644 --- a/troposphere/cleanrooms.py +++ b/troposphere/cleanrooms.py @@ -362,7 +362,7 @@ class AnalysisRuleAggregation(AWSProperty): class DifferentialPrivacyColumn(AWSProperty): """ - `DifferentialPrivacyColumn `__ + `DifferentialPrivacyColumn `__ """ props: PropsDictType = { @@ -372,7 +372,7 @@ class DifferentialPrivacyColumn(AWSProperty): class DifferentialPrivacy(AWSProperty): """ - `DifferentialPrivacy `__ + `DifferentialPrivacy `__ """ props: PropsDictType = { @@ -687,6 +687,91 @@ class IdNamespaceAssociation(AWSObject): } +class IntermediateTableAnalysisRuleCustom(AWSProperty): + """ + `IntermediateTableAnalysisRuleCustom `__ + """ + + props: PropsDictType = { + "AdditionalAnalyses": (str, False), + "AllowedAnalyses": ([str], True), + "AllowedAnalysisProviders": ([str], False), + "AllowedResultReceivers": ([str], False), + "DifferentialPrivacy": (DifferentialPrivacy, False), + "DisallowedOutputColumns": ([str], False), + } + + +class IntermediateTableAnalysisRulePolicyV1(AWSProperty): + """ + `IntermediateTableAnalysisRulePolicyV1 `__ + """ + + props: PropsDictType = { + "Custom": (IntermediateTableAnalysisRuleCustom, True), + } + + +class IntermediateTableAnalysisRulePolicy(AWSProperty): + """ + `IntermediateTableAnalysisRulePolicy `__ + """ + + props: PropsDictType = { + "V1": (IntermediateTableAnalysisRulePolicyV1, True), + } + + +class IntermediateTableAnalysisRule(AWSProperty): + """ + `IntermediateTableAnalysisRule `__ + """ + + props: PropsDictType = { + "Policy": (IntermediateTableAnalysisRulePolicy, True), + "Type": (str, True), + } + + +class PopulationAnalysisSqlParameters(AWSProperty): + """ + `PopulationAnalysisSqlParameters `__ + """ + + props: PropsDictType = { + "AnalysisTemplateArn": (str, False), + "QueryString": (str, False), + } + + +class PopulationAnalysisConfiguration(AWSProperty): + """ + `PopulationAnalysisConfiguration `__ + """ + + props: PropsDictType = { + "SqlParameters": (PopulationAnalysisSqlParameters, False), + } + + +class IntermediateTable(AWSObject): + """ + `IntermediateTable `__ + """ + + resource_type = "AWS::CleanRooms::IntermediateTable" + + props: PropsDictType = { + "AnalysisRules": ([IntermediateTableAnalysisRule], False), + "Description": (str, False), + "KmsKeyArn": (str, False), + "MembershipIdentifier": (str, True), + "Name": (str, True), + "PopulationAnalysisConfiguration": (PopulationAnalysisConfiguration, True), + "Tags": (Tags, False), + } + + class MembershipJobComputePaymentConfig(AWSProperty): """ `MembershipJobComputePaymentConfig `__ diff --git a/troposphere/cloudformation.py b/troposphere/cloudformation.py index dcf59ed08..353ba13b5 100644 --- a/troposphere/cloudformation.py +++ b/troposphere/cloudformation.py @@ -314,26 +314,16 @@ class ResourceVersion(AWSObject): class Stack(AWSObject): """ - `Stack `__ + `Stack `__ """ resource_type = "AWS::CloudFormation::Stack" props: PropsDictType = { - "Capabilities": ([str], False), - "Description": (str, False), - "DisableRollback": (boolean, False), - "EnableTerminationProtection": (boolean, False), "NotificationARNs": ([str], False), "Parameters": (dict, False), - "RoleARN": (str, False), - "StackName": (str, True), - "StackPolicyBody": (dict, False), - "StackPolicyURL": (str, False), - "StackStatusReason": (str, False), "Tags": (Tags, False), - "TemplateBody": (dict, False), - "TemplateURL": (str, False), + "TemplateURL": (str, True), "TimeoutInMinutes": (integer, False), } @@ -484,16 +474,3 @@ class WaitConditionHandle(AWSObject): resource_type = "AWS::CloudFormation::WaitConditionHandle" props: PropsDictType = {} - - -class Output(AWSProperty): - """ - `Output `__ - """ - - props: PropsDictType = { - "Description": (str, False), - "ExportName": (str, False), - "OutputKey": (str, False), - "OutputValue": (str, False), - } diff --git a/troposphere/cloudfront.py b/troposphere/cloudfront.py index f096a3a15..c3690a992 100644 --- a/troposphere/cloudfront.py +++ b/troposphere/cloudfront.py @@ -1489,6 +1489,7 @@ class VpcOriginEndpointConfig(AWSProperty): "Arn": (str, True), "HTTPPort": (integer, False), "HTTPSPort": (integer, False), + "IpAddressType": (str, False), "Name": (str, True), "OriginProtocolPolicy": (str, False), "OriginSSLProtocols": ([str], False), diff --git a/troposphere/cloudwatch.py b/troposphere/cloudwatch.py index 685b400ab..b710c7ef1 100644 --- a/troposphere/cloudwatch.py +++ b/troposphere/cloudwatch.py @@ -317,7 +317,7 @@ class ScheduleConfiguration(AWSProperty): props: PropsDictType = { "EndTimeOffset": (integer, False), "ScheduleExpression": (str, True), - "StartTimeOffset": (integer, False), + "StartTimeOffset": (integer, True), } @@ -328,10 +328,11 @@ class ScheduledQueryConfiguration(AWSProperty): props: PropsDictType = { "AggregationExpression": (str, True), - "LogGroupIdentifiers": ([str], True), + "LogGroupIdentifiers": ([str], False), "QueryString": (str, True), "ScheduleConfiguration": (ScheduleConfiguration, True), "ScheduledQueryRoleARN": (str, True), + "Tags": (Tags, False), } diff --git a/troposphere/codebuild.py b/troposphere/codebuild.py index 23ba974e3..dc92dead2 100644 --- a/troposphere/codebuild.py +++ b/troposphere/codebuild.py @@ -25,18 +25,6 @@ ) -class Build(AWSObject): - """ - `Build `__ - """ - - resource_type = "AWS::CodeBuild::Build" - - props: PropsDictType = { - "ProjectName": (str, False), - } - - class ComputeConfiguration(AWSProperty): """ `ComputeConfiguration `__ @@ -211,6 +199,7 @@ class Environment(AWSProperty): "DockerServer": (DockerServer, False), "EnvironmentVariables": (validate_environmentvariable_or_list, False), "Fleet": (ProjectFleet, False), + "HostKernel": (str, False), "Image": (str, True), "ImagePullCredentialsType": (validate_image_pull_credentials, False), "PrivilegedMode": (boolean, False), diff --git a/troposphere/cognito.py b/troposphere/cognito.py index f962c7de1..5555b4213 100644 --- a/troposphere/cognito.py +++ b/troposphere/cognito.py @@ -297,7 +297,7 @@ class DeviceConfiguration(AWSProperty): class EmailConfiguration(AWSProperty): """ - `EmailConfiguration `__ + `EmailConfiguration `__ """ props: PropsDictType = { @@ -309,9 +309,30 @@ class EmailConfiguration(AWSProperty): } +class IssuerConfiguration(AWSProperty): + """ + `IssuerConfiguration `__ + """ + + props: PropsDictType = { + "Type": (str, False), + } + + +class KeyConfiguration(AWSProperty): + """ + `KeyConfiguration `__ + """ + + props: PropsDictType = { + "KeyType": (str, False), + "KmsKeyArn": (str, False), + } + + class CustomEmailSender(AWSProperty): """ - `CustomEmailSender `__ + `CustomEmailSender `__ """ props: PropsDictType = { @@ -322,7 +343,7 @@ class CustomEmailSender(AWSProperty): class CustomSMSSender(AWSProperty): """ - `CustomSMSSender `__ + `CustomSMSSender `__ """ props: PropsDictType = { @@ -333,7 +354,7 @@ class CustomSMSSender(AWSProperty): class InboundFederation(AWSProperty): """ - `InboundFederation `__ + `InboundFederation `__ """ props: PropsDictType = { @@ -344,7 +365,7 @@ class InboundFederation(AWSProperty): class PreTokenGenerationConfig(AWSProperty): """ - `PreTokenGenerationConfig `__ + `PreTokenGenerationConfig `__ """ props: PropsDictType = { @@ -355,7 +376,7 @@ class PreTokenGenerationConfig(AWSProperty): class LambdaConfig(AWSProperty): """ - `LambdaConfig `__ + `LambdaConfig `__ """ props: PropsDictType = { @@ -454,7 +475,7 @@ class SchemaAttribute(AWSProperty): class SmsConfiguration(AWSProperty): """ - `SmsConfiguration `__ + `SmsConfiguration `__ """ props: PropsDictType = { @@ -540,6 +561,8 @@ class UserPool(AWSObject): "EmailVerificationMessage": (str, False), "EmailVerificationSubject": (str, False), "EnabledMfas": ([str], False), + "IssuerConfiguration": (IssuerConfiguration, False), + "KeyConfiguration": (KeyConfiguration, False), "LambdaConfig": (LambdaConfig, False), "MfaConfiguration": (str, False), "Policies": (Policies, False), @@ -712,6 +735,37 @@ class UserPoolIdentityProvider(AWSObject): } +class UserPoolRegionalConfigurationAttachment(AWSObject): + """ + `UserPoolRegionalConfigurationAttachment `__ + """ + + resource_type = "AWS::Cognito::UserPoolRegionalConfigurationAttachment" + + props: PropsDictType = { + "EmailConfiguration": (EmailConfiguration, False), + "LambdaConfig": (LambdaConfig, False), + "SmsConfiguration": (SmsConfiguration, False), + "Status": (str, False), + "UserPoolId": (str, True), + "UserPoolTags": (dict, False), + } + + +class UserPoolReplica(AWSObject): + """ + `UserPoolReplica `__ + """ + + resource_type = "AWS::Cognito::UserPoolReplica" + + props: PropsDictType = { + "RegionName": (str, True), + "UserPoolId": (str, True), + "UserPoolTagsAtCreate": (dict, False), + } + + class ResourceServerScopeType(AWSProperty): """ `ResourceServerScopeType `__ diff --git a/troposphere/config.py b/troposphere/config.py index 884815324..03b5b678c 100644 --- a/troposphere/config.py +++ b/troposphere/config.py @@ -267,12 +267,47 @@ class ConformancePack(AWSObject): "ConformancePackName": (str, True), "DeliveryS3Bucket": (str, False), "DeliveryS3KeyPrefix": (str, False), + "Tags": (Tags, False), "TemplateBody": (str, False), "TemplateS3Uri": (str, False), "TemplateSSMDocumentDetails": (TemplateSSMDocumentDetails, False), } +class AzureConnectorConfiguration(AWSProperty): + """ + `AzureConnectorConfiguration `__ + """ + + props: PropsDictType = { + "ClientIdentifier": (str, True), + "TenantIdentifier": (str, True), + } + + +class ConnectorConfiguration(AWSProperty): + """ + `ConnectorConfiguration `__ + """ + + props: PropsDictType = { + "Azure": (AzureConnectorConfiguration, False), + } + + +class Connector(AWSObject): + """ + `Connector `__ + """ + + resource_type = "AWS::Config::Connector" + + props: PropsDictType = { + "ConnectorConfiguration": (ConnectorConfiguration, True), + "Tags": (Tags, False), + } + + class ConfigSnapshotDeliveryProperties(AWSProperty): """ `ConfigSnapshotDeliveryProperties `__ @@ -447,34 +482,3 @@ class StoredQuery(AWSObject): "QueryName": (str, True), "Tags": (Tags, False), } - - -class ResourceValue(AWSProperty): - """ - `ResourceValue `__ - """ - - props: PropsDictType = { - "Value": (str, False), - } - - -class StaticValue(AWSProperty): - """ - `StaticValue `__ - """ - - props: PropsDictType = { - "Values": ([str], False), - } - - -class RemediationParameterValue(AWSProperty): - """ - `RemediationParameterValue `__ - """ - - props: PropsDictType = { - "ResourceValue": (ResourceValue, False), - "StaticValue": (StaticValue, False), - } diff --git a/troposphere/connect.py b/troposphere/connect.py index 183c82c88..30807233b 100644 --- a/troposphere/connect.py +++ b/troposphere/connect.py @@ -130,6 +130,20 @@ class ContactFlowVersion(AWSObject): } +class DataLakeAssociation(AWSObject): + """ + `DataLakeAssociation `__ + """ + + resource_type = "AWS::Connect::DataLakeAssociation" + + props: PropsDictType = { + "DataSetId": (str, True), + "InstanceId": (str, True), + "TargetAccountId": (str, False), + } + + class DataTable(AWSObject): """ `DataTable `__ @@ -336,6 +350,42 @@ class EvaluationFormItemEnablementConfiguration(AWSProperty): } +class EvaluationFormScoreThreshold(AWSProperty): + """ + `EvaluationFormScoreThreshold `__ + """ + + props: PropsDictType = { + "MaxScorePercentage": (double, False), + "MinScorePercentage": (double, False), + "PerformanceCategory": (str, True), + } + + +class QuestionPointsConfiguration(AWSProperty): + """ + `QuestionPointsConfiguration `__ + """ + + props: PropsDictType = { + "IsBonus": (boolean, False), + "MaxPointValue": (integer, False), + "MinPointValue": (integer, False), + } + + +class EvaluationFormQuestionScoringConfiguration(AWSProperty): + """ + `EvaluationFormQuestionScoringConfiguration `__ + """ + + props: PropsDictType = { + "IsExcludedFromScoring": (boolean, False), + "PointsConfiguration": (QuestionPointsConfiguration, False), + "ScoreThresholds": ([EvaluationFormScoreThreshold], False), + } + + class MultiSelectQuestionRuleCategoryAutomation(AWSProperty): """ `MultiSelectQuestionRuleCategoryAutomation `__ @@ -380,13 +430,38 @@ class EvaluationFormMultiSelectQuestionAutomation(AWSProperty): } +class AutomaticFailConfiguration(AWSProperty): + """ + `AutomaticFailConfiguration `__ + """ + + props: PropsDictType = { + "TargetSection": (str, False), + } + + +class QuestionOptionPointsConfiguration(AWSProperty): + """ + `QuestionOptionPointsConfiguration `__ + """ + + props: PropsDictType = { + "IsBonus": (boolean, False), + "PointValue": (integer, True), + } + + class EvaluationFormMultiSelectQuestionOption(AWSProperty): """ `EvaluationFormMultiSelectQuestionOption `__ """ props: PropsDictType = { + "AutomaticFail": (boolean, False), + "AutomaticFailConfiguration": (AutomaticFailConfiguration, False), + "PointsConfiguration": (QuestionOptionPointsConfiguration, False), "RefId": (str, True), + "Score": (integer, False), "Text": (str, True), } @@ -424,16 +499,6 @@ class EvaluationFormNumericQuestionAutomation(AWSProperty): } -class AutomaticFailConfiguration(AWSProperty): - """ - `AutomaticFailConfiguration `__ - """ - - props: PropsDictType = { - "TargetSection": (str, False), - } - - class EvaluationFormNumericQuestionOption(AWSProperty): """ `EvaluationFormNumericQuestionOption `__ @@ -444,6 +509,7 @@ class EvaluationFormNumericQuestionOption(AWSProperty): "AutomaticFailConfiguration": (AutomaticFailConfiguration, False), "MaxValue": (integer, True), "MinValue": (integer, True), + "PointsConfiguration": (QuestionOptionPointsConfiguration, False), "Score": (integer, False), } @@ -503,6 +569,7 @@ class EvaluationFormSingleSelectQuestionOption(AWSProperty): props: PropsDictType = { "AutomaticFail": (boolean, False), "AutomaticFailConfiguration": (AutomaticFailConfiguration, False), + "PointsConfiguration": (QuestionOptionPointsConfiguration, False), "RefId": (str, True), "Score": (integer, False), "Text": (str, True), @@ -566,6 +633,7 @@ class EvaluationFormQuestion(AWSProperty): "QuestionType": (str, True), "QuestionTypeProperties": (EvaluationFormQuestionTypeProperties, False), "RefId": (str, True), + "ScoringConfiguration": (EvaluationFormQuestionScoringConfiguration, False), "Title": (str, True), "Weight": (double, False), } @@ -589,8 +657,10 @@ class EvaluationFormSection(AWSProperty): props: PropsDictType = { "Instructions": (str, False), + "IsExcludedFromScoring": (boolean, False), "Items": ([EvaluationFormItem], False), "RefId": (str, True), + "ScoreThresholds": ([EvaluationFormScoreThreshold], False), "Title": (str, True), "Weight": (double, False), } @@ -665,6 +735,7 @@ class ScoringStrategy(AWSProperty): props: PropsDictType = { "Mode": (str, True), + "ScoreThresholds": ([EvaluationFormScoreThreshold], False), "Status": (str, True), } @@ -1236,6 +1307,41 @@ class RoutingProfile(AWSObject): } +class SlaTargetFieldValue(AWSProperty): + """ + `SlaTargetFieldValue `__ + """ + + props: PropsDictType = { + "StringValue": (str, False), + } + + +class CaseSlaConfiguration(AWSProperty): + """ + `CaseSlaConfiguration `__ + """ + + props: PropsDictType = { + "FieldId": (str, False), + "Name": (str, True), + "TargetFieldValues": ([SlaTargetFieldValue], False), + "TargetSlaMinutes": (double, True), + "Type": (str, True), + } + + +class AssignSlaAction(AWSProperty): + """ + `AssignSlaAction `__ + """ + + props: PropsDictType = { + "CaseSlaConfiguration": (CaseSlaConfiguration, True), + "SlaAssignmentType": (str, True), + } + + class FieldIdentifier(AWSProperty): """ `FieldIdentifier `__ @@ -1300,6 +1406,7 @@ class SendNotificationAction(AWSProperty): "Content": (str, True), "ContentType": (str, True), "DeliveryMethod": (str, True), + "Exclusion": (NotificationRecipientType, False), "Recipient": (NotificationRecipientType, True), "Subject": (str, False), } @@ -1356,6 +1463,7 @@ class Actions(AWSProperty): props: PropsDictType = { "AssignContactCategoryActions": (Tags, False), + "AssignSlaActions": ([AssignSlaAction], False), "CreateCaseActions": ([CreateCaseAction], False), "EndAssociatedTasksActions": (Tags, False), "EventBridgeActions": ([EventBridgeAction], False), @@ -1580,6 +1688,59 @@ class TaskTemplate(AWSObject): } +class ChatEntryPointParameters(AWSProperty): + """ + `ChatEntryPointParameters `__ + """ + + props: PropsDictType = { + "FlowId": (str, False), + } + + +class VoiceCallEntryPointParameters(AWSProperty): + """ + `VoiceCallEntryPointParameters `__ + """ + + props: PropsDictType = { + "DestinationPhoneNumber": (str, False), + "FlowId": (str, False), + "SourcePhoneNumber": (str, False), + } + + +class EntryPoint(AWSProperty): + """ + `EntryPoint `__ + """ + + props: PropsDictType = { + "ChatEntryPointParameters": (ChatEntryPointParameters, False), + "Type": (str, False), + "VoiceCallEntryPointParameters": (VoiceCallEntryPointParameters, False), + } + + +class TestCase(AWSObject): + """ + `TestCase `__ + """ + + resource_type = "AWS::Connect::TestCase" + + props: PropsDictType = { + "Content": (str, True), + "Description": (str, False), + "EntryPoint": (EntryPoint, False), + "InitializationData": (str, False), + "InstanceArn": (str, True), + "Name": (str, True), + "Status": (str, False), + "Tags": (Tags, False), + } + + class TrafficDistributionGroup(AWSObject): """ `TrafficDistributionGroup `__ @@ -1601,6 +1762,7 @@ class AfterContactWorkConfig(AWSProperty): """ props: PropsDictType = { + "AfterContactWorkMode": (str, False), "AfterContactWorkTimeLimit": (integer, False), } diff --git a/troposphere/customerprofiles.py b/troposphere/customerprofiles.py index a1fff14fb..f6e50289f 100644 --- a/troposphere/customerprofiles.py +++ b/troposphere/customerprofiles.py @@ -259,6 +259,36 @@ class Domain(AWSObject): } +class DomainObjectTypeField(AWSProperty): + """ + `DomainObjectTypeField `__ + """ + + props: PropsDictType = { + "ContentType": (str, False), + "FeatureType": (str, False), + "Source": (str, True), + "Target": (str, True), + } + + +class DomainObjectType(AWSObject): + """ + `DomainObjectType `__ + """ + + resource_type = "AWS::CustomerProfiles::DomainObjectType" + + props: PropsDictType = { + "Description": (str, False), + "DomainName": (str, True), + "EncryptionKey": (str, False), + "Fields": (dict, True), + "ObjectTypeName": (str, True), + "Tags": (Tags, False), + } + + class EventStream(AWSObject): """ `EventStream `__ diff --git a/troposphere/devopsagent.py b/troposphere/devopsagent.py index 531e8619a..370a4a4e9 100644 --- a/troposphere/devopsagent.py +++ b/troposphere/devopsagent.py @@ -358,6 +358,7 @@ class ServiceManagedMode(AWSProperty): """ props: PropsDictType = { + "DnsResolution": (str, False), "HostAddress": (str, True), "IpAddressType": (str, False), "Ipv4AddressesPerEni": (integer, False), @@ -547,8 +548,9 @@ class MCPServerSigV4AuthorizationConfig(AWSProperty): props: PropsDictType = { "CustomHeaders": (dict, False), + "McpRoleArn": (str, False), "Region": (str, True), - "RoleArn": (str, True), + "RoleArn": (str, False), "Service": (str, True), } @@ -771,6 +773,7 @@ class RegisteredMCPServerSigV4Details(AWSProperty): "CustomHeaders": (dict, False), "Description": (str, False), "Endpoint": (str, True), + "McpRoleArn": (str, False), "Name": (str, True), "Region": (str, True), "RoleArn": (str, True), diff --git a/troposphere/dynamodb.py b/troposphere/dynamodb.py index a1e45b973..42b3ff2e6 100644 --- a/troposphere/dynamodb.py +++ b/troposphere/dynamodb.py @@ -354,19 +354,6 @@ class GlobalTable(AWSObject): } -class Stream(AWSObject): - """ - `Stream `__ - """ - - resource_type = "AWS::DynamoDB::Stream" - - props: PropsDictType = { - "StreamViewType": (str, False), - "TableName": (str, False), - } - - class OnDemandThroughput(AWSProperty): """ `OnDemandThroughput `__ @@ -495,14 +482,3 @@ class Table(AWSObject): def validate(self): validate_table(self) - - -class KeySchemaItems(AWSProperty): - """ - `KeySchemaItems `__ - """ - - props: PropsDictType = { - "AttributeName": (str, True), - "KeyType": (str, True), - } diff --git a/troposphere/ec2.py b/troposphere/ec2.py index 74bbe6fc5..c7d5b3dd3 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -3225,6 +3225,32 @@ class TransitGatewayPeeringAttachment(AWSObject): } +class TransitGatewayPolicyTable(AWSObject): + """ + `TransitGatewayPolicyTable `__ + """ + + resource_type = "AWS::EC2::TransitGatewayPolicyTable" + + props: PropsDictType = { + "Tags": (Tags, False), + "TransitGatewayId": (str, True), + } + + +class TransitGatewayPolicyTableAssociation(AWSObject): + """ + `TransitGatewayPolicyTableAssociation `__ + """ + + resource_type = "AWS::EC2::TransitGatewayPolicyTableAssociation" + + props: PropsDictType = { + "TransitGatewayAttachmentId": (str, True), + "TransitGatewayPolicyTableId": (str, True), + } + + class TransitGatewayRoute(AWSObject): """ `TransitGatewayRoute `__ @@ -3297,6 +3323,57 @@ class TransitGatewayVpcAttachment(AWSObject): } +class VpcEncryptionControlExclusion(AWSProperty): + """ + `VpcEncryptionControlExclusion `__ + """ + + props: PropsDictType = { + "State": (str, False), + "StateMessage": (str, False), + } + + +class VpcEncryptionControlExclusions(AWSProperty): + """ + `VpcEncryptionControlExclusions `__ + """ + + props: PropsDictType = { + "EgressOnlyInternetGateway": (VpcEncryptionControlExclusion, False), + "ElasticFileSystem": (VpcEncryptionControlExclusion, False), + "InternetGateway": (VpcEncryptionControlExclusion, False), + "Lambda": (VpcEncryptionControlExclusion, False), + "NatGateway": (VpcEncryptionControlExclusion, False), + "VirtualPrivateGateway": (VpcEncryptionControlExclusion, False), + "VpcLattice": (VpcEncryptionControlExclusion, False), + "VpcPeering": (VpcEncryptionControlExclusion, False), + } + + +class VpcEncryptionControl(AWSProperty): + """ + `VpcEncryptionControl `__ + """ + + props: PropsDictType = { + "EgressOnlyInternetGatewayExclusion": (str, False), + "ElasticFileSystemExclusion": (str, False), + "InternetGatewayExclusion": (str, False), + "LambdaExclusion": (str, False), + "Mode": (str, False), + "NatGatewayExclusion": (str, False), + "ResourceExclusions": (VpcEncryptionControlExclusions, False), + "State": (str, False), + "StateMessage": (str, False), + "VirtualPrivateGatewayExclusion": (str, False), + "VpcEncryptionControlId": (str, False), + "VpcId": (str, False), + "VpcLatticeExclusion": (str, False), + "VpcPeeringExclusion": (str, False), + } + + class VPC(AWSObject): """ `VPC `__ @@ -3312,6 +3389,7 @@ class VPC(AWSObject): "Ipv4IpamPoolId": (str, False), "Ipv4NetmaskLength": (integer, False), "Tags": (validate_tags_or_list, False), + "VpcEncryptionControl": (VpcEncryptionControl, False), } @@ -4243,14 +4321,3 @@ class VolumeProperty(AWSProperty): "Device": (str, True), "VolumeId": (str, True), } - - -class VpcEncryptionControlExclusion(AWSProperty): - """ - `VpcEncryptionControlExclusion `__ - """ - - props: PropsDictType = { - "State": (str, False), - "StateMessage": (str, False), - } diff --git a/troposphere/ecs.py b/troposphere/ecs.py index cdb03e78c..a0e7b9f2f 100644 --- a/troposphere/ecs.py +++ b/troposphere/ecs.py @@ -891,15 +891,16 @@ class ExpressGatewayService(AWSObject): props: PropsDictType = { "Cluster": (str, False), "Cpu": (str, False), - "ExecutionRoleArn": (str, True), + "ExecutionRoleArn": (str, False), "HealthCheckPath": (str, False), "InfrastructureRoleArn": (str, True), "Memory": (str, False), "NetworkConfiguration": (ExpressGatewayServiceNetworkConfiguration, False), - "PrimaryContainer": (ExpressGatewayContainer, True), + "PrimaryContainer": (ExpressGatewayContainer, False), "ScalingTarget": (ExpressGatewayScalingTarget, False), "ServiceName": (str, False), "Tags": (Tags, False), + "TaskDefinitionArn": (str, False), "TaskRoleArn": (str, False), } @@ -941,6 +942,17 @@ class DeploymentAlarms(AWSProperty): } +class ThresholdConfiguration(AWSProperty): + """ + `ThresholdConfiguration `__ + """ + + props: PropsDictType = { + "Type": (str, True), + "Value": (integer, True), + } + + class DeploymentCircuitBreaker(AWSProperty): """ `DeploymentCircuitBreaker `__ @@ -948,7 +960,9 @@ class DeploymentCircuitBreaker(AWSProperty): props: PropsDictType = { "Enable": (boolean, True), + "ResetOnHealthyTask": (boolean, False), "Rollback": (boolean, True), + "ThresholdConfiguration": (ThresholdConfiguration, False), } diff --git a/troposphere/eks.py b/troposphere/eks.py index 03202ab58..d7debda4a 100644 --- a/troposphere/eks.py +++ b/troposphere/eks.py @@ -376,6 +376,16 @@ class ResourcesVpcConfig(AWSProperty): } +class RollbackConfig(AWSProperty): + """ + `RollbackConfig `__ + """ + + props: PropsDictType = { + "TimeoutMinutes": (integer, False), + } + + class BlockStorage(AWSProperty): """ `BlockStorage `__ @@ -438,6 +448,7 @@ class Cluster(AWSObject): "RemoteNetworkConfig": (RemoteNetworkConfig, False), "ResourcesVpcConfig": (ResourcesVpcConfig, True), "RoleArn": (str, True), + "RollbackConfig": (RollbackConfig, False), "StorageConfig": (StorageConfig, False), "Tags": (Tags, False), "UpgradePolicy": (UpgradePolicy, False), diff --git a/troposphere/elasticloadbalancingv2.py b/troposphere/elasticloadbalancingv2.py index c3ad5e8c8..742959223 100644 --- a/troposphere/elasticloadbalancingv2.py +++ b/troposphere/elasticloadbalancingv2.py @@ -226,6 +226,7 @@ class Listener(AWSObject): "Port": (validate_network_port, False), "Protocol": (str, False), "SslPolicy": (str, False), + "Tags": (Tags, False), } @@ -313,6 +314,7 @@ class SourceIpConfig(AWSProperty): """ props: PropsDictType = { + "IpAddressType": (str, False), "Values": ([str], False), } @@ -419,6 +421,7 @@ class ListenerRule(AWSObject): "Conditions": ([Condition], True), "ListenerArn": (str, False), "Priority": (integer, True), + "Tags": (Tags, False), "Transforms": ([Transform], False), } diff --git a/troposphere/emrcontainers.py b/troposphere/emrcontainers.py index 6aa71be72..116befb59 100644 --- a/troposphere/emrcontainers.py +++ b/troposphere/emrcontainers.py @@ -90,6 +90,7 @@ class Endpoint(AWSObject): "ExecutionRoleArn": (str, True), "Name": (str, False), "ReleaseLabel": (str, True), + "SessionIdleTimeoutInMinutes": (integer, False), "Tags": (Tags, False), "Type": (str, True), "VirtualClusterId": (str, True), @@ -299,6 +300,7 @@ class VirtualCluster(AWSObject): "ContainerProvider": (ContainerProvider, True), "Name": (str, True), "SecurityConfigurationId": (str, False), + "SessionEnabled": (boolean, False), "Tags": (Tags, False), } diff --git a/troposphere/evs.py b/troposphere/evs.py index 0bf5a8b23..518f1b68b 100644 --- a/troposphere/evs.py +++ b/troposphere/evs.py @@ -112,18 +112,18 @@ class Environment(AWSObject): resource_type = "AWS::EVS::Environment" props: PropsDictType = { - "ConnectivityInfo": (ConnectivityInfo, True), + "ConnectivityInfo": (ConnectivityInfo, False), "EnvironmentName": (str, False), "Hosts": ([HostInfoForCreate], False), "InitialVlans": (InitialVlans, False), "KmsKeyId": (str, False), - "LicenseInfo": (LicenseInfo, True), + "LicenseInfo": (LicenseInfo, False), "ServiceAccessSecurityGroups": (ServiceAccessSecurityGroups, False), "ServiceAccessSubnetId": (str, True), - "SiteId": (str, True), + "SiteId": (str, False), "Tags": (Tags, False), "TermsAccepted": (boolean, True), - "VcfHostnames": (VcfHostnames, True), + "VcfHostnames": (VcfHostnames, False), "VcfVersion": (str, True), "VpcId": (str, True), } diff --git a/troposphere/globalaccelerator.py b/troposphere/globalaccelerator.py index 8fdc943ee..12456d2f6 100644 --- a/troposphere/globalaccelerator.py +++ b/troposphere/globalaccelerator.py @@ -25,6 +25,9 @@ class Accelerator(AWSObject): props: PropsDictType = { "Enabled": (boolean, False), + "FlowLogsEnabled": (boolean, False), + "FlowLogsS3Bucket": (str, False), + "FlowLogsS3Prefix": (str, False), "IpAddressType": (accelerator_ipaddresstype, False), "IpAddresses": ([str], False), "Name": (str, True), diff --git a/troposphere/glue.py b/troposphere/glue.py index ec0155ae8..ba4c72f95 100644 --- a/troposphere/glue.py +++ b/troposphere/glue.py @@ -1383,6 +1383,28 @@ class Table(AWSObject): } +class IcebergCompactionConfiguration(AWSProperty): + """ + `IcebergCompactionConfiguration `__ + """ + + props: PropsDictType = { + "DeleteFileThreshold": (integer, False), + "MinInputFiles": (integer, False), + "Strategy": (str, False), + } + + +class CompactionConfiguration(AWSProperty): + """ + `CompactionConfiguration `__ + """ + + props: PropsDictType = { + "IcebergConfiguration": (IcebergCompactionConfiguration, False), + } + + class IcebergConfiguration(AWSProperty): """ `IcebergConfiguration `__ @@ -1442,6 +1464,7 @@ class TableOptimizerConfiguration(AWSProperty): """ props: PropsDictType = { + "CompactionConfiguration": (CompactionConfiguration, False), "Enabled": (boolean, True), "OrphanFileDeletionConfiguration": (OrphanFileDeletionConfiguration, False), "RetentionConfiguration": (RetentionConfiguration, False), diff --git a/troposphere/imagebuilder.py b/troposphere/imagebuilder.py index 6b7b05932..52a6ea444 100644 --- a/troposphere/imagebuilder.py +++ b/troposphere/imagebuilder.py @@ -416,6 +416,7 @@ class Schedule(AWSProperty): False, ), "ScheduleExpression": (str, False), + "Timezone": (str, False), } @@ -434,6 +435,7 @@ class ImagePipeline(AWSObject): "ExecutionRole": (str, False), "ImageRecipeArn": (str, False), "ImageScanningConfiguration": (ImageScanningConfiguration, False), + "ImageTags": (dict, False), "ImageTestsConfiguration": (ImageTestsConfiguration, False), "InfrastructureConfigurationArn": (str, True), "LoggingConfiguration": (PipelineLoggingConfiguration, False), @@ -487,6 +489,7 @@ class ImageRecipe(AWSObject): props: PropsDictType = { "AdditionalInstanceConfiguration": (AdditionalInstanceConfiguration, False), "AmiTags": (dict, False), + "AmiWatermarks": ([str], False), "BlockDeviceMappings": ([InstanceBlockDeviceMapping], False), "Components": ([ComponentConfiguration], False), "Description": (str, False), diff --git a/troposphere/mediaconnect.py b/troposphere/mediaconnect.py index 3133070ed..d4d100c2e 100644 --- a/troposphere/mediaconnect.py +++ b/troposphere/mediaconnect.py @@ -703,6 +703,61 @@ class MaintenanceConfiguration(AWSProperty): } +class BlackFramesConfiguration(AWSProperty): + """ + `BlackFramesConfiguration `__ + """ + + props: PropsDictType = { + "State": (str, True), + "ThresholdSeconds": (integer, True), + } + + +class FrozenFramesConfiguration(AWSProperty): + """ + `FrozenFramesConfiguration `__ + """ + + props: PropsDictType = { + "State": (str, True), + "ThresholdSeconds": (integer, True), + } + + +class SilentAudioConfiguration(AWSProperty): + """ + `SilentAudioConfiguration `__ + """ + + props: PropsDictType = { + "State": (str, True), + "ThresholdSeconds": (integer, True), + } + + +class ContentQualityAnalysisFeatureConfiguration(AWSProperty): + """ + `ContentQualityAnalysisFeatureConfiguration `__ + """ + + props: PropsDictType = { + "BlackFrames": (BlackFramesConfiguration, False), + "FrozenFrames": (FrozenFramesConfiguration, False), + "SilentAudio": (SilentAudioConfiguration, False), + } + + +class RouterContentQualityAnalysisConfiguration(AWSProperty): + """ + `RouterContentQualityAnalysisConfiguration `__ + """ + + props: PropsDictType = { + "ContentLevel": (ContentQualityAnalysisFeatureConfiguration, True), + } + + class RistRouterInputConfiguration(AWSProperty): """ `RistRouterInputConfiguration `__ @@ -934,6 +989,10 @@ class RouterInput(AWSObject): props: PropsDictType = { "AvailabilityZone": (str, False), "Configuration": (RouterInputConfiguration, True), + "ContentQualityAnalysisConfiguration": ( + RouterContentQualityAnalysisConfiguration, + False, + ), "MaintenanceConfiguration": (MaintenanceConfiguration, False), "MaximumBitrate": (integer, True), "Name": (str, True), diff --git a/troposphere/opensearchserverless.py b/troposphere/opensearchserverless.py index 62496b187..af71c714a 100644 --- a/troposphere/opensearchserverless.py +++ b/troposphere/opensearchserverless.py @@ -110,6 +110,29 @@ class CollectionIndex(AWSObject): } +class AnalyzerItems(AWSProperty): + """ + `AnalyzerItems `__ + """ + + props: PropsDictType = { + "CharFilter": ([str], False), + "Filter": ([str], False), + "Tokenizer": (str, False), + "Type": (str, False), + } + + +class Analysis(AWSProperty): + """ + `Analysis `__ + """ + + props: PropsDictType = { + "Analyzer": (dict, False), + } + + class IndexProperty(AWSProperty): """ `IndexProperty `__ @@ -128,6 +151,7 @@ class IndexSettings(AWSProperty): """ props: PropsDictType = { + "Analysis": (Analysis, False), "Index": (IndexProperty, False), } @@ -162,10 +186,13 @@ class PropertyMapping(AWSProperty): """ props: PropsDictType = { + "Analyzer": (str, False), + "CompressionLevel": (str, False), "Dimension": (integer, False), "Index": (boolean, False), "Method": (Method, False), "Properties": (dict, False), + "SpaceType": (str, False), "Type": (str, True), "Value": (str, False), } diff --git a/troposphere/personalize.py b/troposphere/personalize.py index 94047b749..08e0c13b5 100644 --- a/troposphere/personalize.py +++ b/troposphere/personalize.py @@ -20,21 +20,6 @@ class DataSource(AWSProperty): } -class DataDeletionJob(AWSObject): - """ - `DataDeletionJob `__ - """ - - resource_type = "AWS::Personalize::DataDeletionJob" - - props: PropsDictType = { - "DataSource": (DataSource, False), - "DatasetGroupArn": (str, False), - "JobName": (str, False), - "RoleArn": (str, False), - } - - class DatasetImportJob(AWSProperty): """ `DatasetImportJob `__ diff --git a/troposphere/quicksight.py b/troposphere/quicksight.py index f661a8b8e..dcfdd92d0 100644 --- a/troposphere/quicksight.py +++ b/troposphere/quicksight.py @@ -9146,6 +9146,33 @@ class DataSource(AWSObject): } +class Permission(AWSProperty): + """ + `Permission `__ + """ + + props: PropsDictType = { + "Actions": ([str], True), + "Principal": (str, True), + } + + +class Flow(AWSObject): + """ + `Flow `__ + """ + + resource_type = "AWS::QuickSight::Flow" + + props: PropsDictType = { + "AwsAccountId": (str, True), + "Description": (str, False), + "FlowDefinition": (dict, True), + "Name": (str, True), + "Permissions": ([Permission], False), + } + + class Folder(AWSObject): """ `Folder `__ @@ -9165,6 +9192,41 @@ class Folder(AWSObject): } +class IdentityProviderVpcConnectionProperties(AWSProperty): + """ + `IdentityProviderVpcConnectionProperties `__ + """ + + props: PropsDictType = { + "VpcConnectionArn": (str, True), + } + + +class OAuthClientApplication(AWSObject): + """ + `OAuthClientApplication `__ + """ + + resource_type = "AWS::QuickSight::OAuthClientApplication" + + props: PropsDictType = { + "ClientId": (str, False), + "ClientSecret": (str, False), + "DataSourceType": (str, False), + "IdentityProviderVpcConnectionProperties": ( + IdentityProviderVpcConnectionProperties, + False, + ), + "Name": (str, True), + "OAuthAuthorizationEndpointUrl": (str, False), + "OAuthClientApplicationId": (str, True), + "OAuthClientAuthenticationType": (str, True), + "OAuthScopes": (str, False), + "OAuthTokenEndpointUrl": (str, True), + "Tags": (Tags, False), + } + + class RefreshOnDay(AWSProperty): """ `RefreshOnDay `__ @@ -9949,6 +10011,17 @@ class NetworkInterface(AWSProperty): } +class StepAliasMapping(AWSProperty): + """ + `StepAliasMapping `__ + """ + + props: PropsDictType = { + "StepAlias": (str, True), + "StepId": (str, True), + } + + class TemplateError(AWSProperty): """ `TemplateError `__ diff --git a/troposphere/route53resolver.py b/troposphere/route53resolver.py index c2db0838c..948caab29 100644 --- a/troposphere/route53resolver.py +++ b/troposphere/route53resolver.py @@ -46,6 +46,16 @@ class FirewallAdvancedThreatCategoryConfig(AWSProperty): } +class PartnerThreatProtectionConfig(AWSProperty): + """ + `PartnerThreatProtectionConfig `__ + """ + + props: PropsDictType = { + "Partner": (str, True), + } + + class FirewallRuleType(AWSProperty): """ `FirewallRuleType `__ @@ -57,6 +67,7 @@ class FirewallRuleType(AWSProperty): False, ), "FirewallAdvancedThreatCategory": (FirewallAdvancedThreatCategoryConfig, False), + "PartnerThreatProtection": (PartnerThreatProtectionConfig, False), } @@ -79,6 +90,7 @@ class FirewallRule(AWSProperty): "FirewallThreatProtectionId": (str, False), "Priority": (integer, True), "Qtype": (str, False), + "Status": (str, False), } diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index 19a70e66b..9479ba015 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -1408,7 +1408,6 @@ class Endpoint(AWSObject): props: PropsDictType = { "DeploymentConfig": (DeploymentConfig, False), "EndpointConfigName": (str, True), - "EndpointName": (str, False), "ExcludeRetainedVariantProperties": ([VariantProperty], False), "RetainAllVariantProperties": (boolean, False), "RetainDeploymentConfig": (boolean, False), @@ -1681,6 +1680,74 @@ class EndpointConfig(AWSObject): } +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class Experiment(AWSObject): + """ + `Experiment `__ + """ + + resource_type = "AWS::SageMaker::Experiment" + + props: PropsDictType = { + "Description": (str, False), + "DisplayName": (str, False), + "ExperimentName": (str, True), + "Tags": ([TagsItems], False), + } + + +class MetadataProperties(AWSProperty): + """ + `MetadataProperties `__ + """ + + props: PropsDictType = { + "CommitId": (str, False), + "GeneratedBy": (str, False), + "ProjectId": (str, False), + "Repository": (str, False), + } + + +class Status(AWSProperty): + """ + `Status `__ + """ + + props: PropsDictType = { + "Message": (str, False), + "PrimaryStatus": (str, False), + } + + +class ExperimentTrialComponent(AWSObject): + """ + `ExperimentTrialComponent `__ + """ + + resource_type = "AWS::SageMaker::ExperimentTrialComponent" + + props: PropsDictType = { + "DisplayName": (str, False), + "EndTime": (str, False), + "MetadataProperties": (MetadataProperties, False), + "StartTime": (str, False), + "Status": (Status, False), + "Tags": ([TagsItems], False), + "TrialComponentName": (str, True), + } + + class FeatureDefinition(AWSProperty): """ `FeatureDefinition `__ @@ -2784,19 +2851,6 @@ class DriftCheckBaselines(AWSProperty): } -class MetadataProperties(AWSProperty): - """ - `MetadataProperties `__ - """ - - props: PropsDictType = { - "CommitId": (str, False), - "GeneratedBy": (str, False), - "ProjectId": (str, False), - "Repository": (str, False), - } - - class ModelCardProperty(AWSProperty): """ `ModelCardProperty `__ @@ -3245,6 +3299,21 @@ class MonitoringSchedule(AWSObject): } +class MonitoringScheduleAlert(AWSObject): + """ + `MonitoringScheduleAlert `__ + """ + + resource_type = "AWS::SageMaker::MonitoringScheduleAlert" + + props: PropsDictType = { + "DatapointsToAlert": (integer, True), + "EvaluationPeriod": (integer, True), + "MonitoringAlertName": (str, True), + "MonitoringScheduleName": (str, True), + } + + class InstanceMetadataServiceConfiguration(AWSProperty): """ `InstanceMetadataServiceConfiguration `__ @@ -3838,6 +3907,58 @@ class StudioLifecycleConfig(AWSObject): } +class TrialComponentArtifact(AWSProperty): + """ + `TrialComponentArtifact `__ + """ + + props: PropsDictType = { + "MediaType": (str, False), + "Value": (str, True), + } + + +class TrialComponentParameterValue(AWSProperty): + """ + `TrialComponentParameterValue `__ + """ + + props: PropsDictType = { + "NumberValue": (double, False), + "StringValue": (str, False), + } + + +class TrialComponentStatus(AWSProperty): + """ + `TrialComponentStatus `__ + """ + + props: PropsDictType = { + "Message": (str, False), + "PrimaryStatus": (str, False), + } + + +class TrialComponent(AWSObject): + """ + `TrialComponent `__ + """ + + resource_type = "AWS::SageMaker::TrialComponent" + + props: PropsDictType = { + "DisplayName": (str, False), + "InputArtifacts": (dict, False), + "MetadataProperties": (MetadataProperties, False), + "OutputArtifacts": (dict, False), + "Parameters": (dict, False), + "Status": (TrialComponentStatus, False), + "Tags": ([TagsItems], False), + "TrialComponentName": (str, True), + } + + class UserProfile(AWSObject): """ `UserProfile `__ @@ -3980,6 +4101,26 @@ class ModelCardExportArtifacts(AWSProperty): } +class ModelDashboardIndicatorAction(AWSProperty): + """ + `ModelDashboardIndicatorAction `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + } + + +class MonitoringAlertActions(AWSProperty): + """ + `MonitoringAlertActions `__ + """ + + props: PropsDictType = { + "ModelDashboardIndicator": (ModelDashboardIndicatorAction, False), + } + + class RSessionAppSettings(AWSProperty): """ `RSessionAppSettings `__ diff --git a/troposphere/securityhub.py b/troposphere/securityhub.py index 8c71d9276..e2c142eb4 100644 --- a/troposphere/securityhub.py +++ b/troposphere/securityhub.py @@ -459,6 +459,29 @@ class ConfigurationPolicy(AWSObject): } +class AzureScopeConfiguration(AWSProperty): + """ + `AzureScopeConfiguration `__ + """ + + props: PropsDictType = { + "ScopeType": (str, True), + "ScopeValues": ([str], False), + } + + +class AzureProviderConfiguration(AWSProperty): + """ + `AzureProviderConfiguration `__ + """ + + props: PropsDictType = { + "AWSConfigConnectorArn": (str, True), + "AzureRegions": ([str], True), + "ScopeConfiguration": (AzureScopeConfiguration, True), + } + + class JiraCloudProviderConfiguration(AWSProperty): """ `JiraCloudProviderConfiguration `__ @@ -486,11 +509,27 @@ class Provider(AWSProperty): """ props: PropsDictType = { + "Azure": (AzureProviderConfiguration, False), "JiraCloud": (JiraCloudProviderConfiguration, False), "ServiceNow": (ServiceNowProviderConfiguration, False), } +class Connector(AWSObject): + """ + `Connector `__ + """ + + resource_type = "AWS::SecurityHub::Connector" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Provider": (Provider, True), + "Tags": (dict, False), + } + + class ConnectorV2(AWSObject): """ `ConnectorV2 `__ @@ -769,3 +808,14 @@ class Standard(AWSObject): "DisabledStandardsControls": ([StandardsControl], False), "StandardsArn": (str, True), } + + +class HealthIssue(AWSProperty): + """ + `HealthIssue `__ + """ + + props: PropsDictType = { + "Code": (str, True), + "Message": (str, True), + } diff --git a/troposphere/servicecatalog.py b/troposphere/servicecatalog.py index 3866ce3f9..afd9771b0 100644 --- a/troposphere/servicecatalog.py +++ b/troposphere/servicecatalog.py @@ -24,6 +24,17 @@ class AcceptedPortfolioShare(AWSObject): } +class Info(AWSProperty): + """ + `Info `__ + """ + + props: PropsDictType = { + "ImportFromPhysicalId": (str, False), + "LoadTemplateFromURL": (str, False), + } + + class ProvisioningArtifactProperties(AWSProperty): """ `ProvisioningArtifactProperties `__ @@ -32,7 +43,7 @@ class ProvisioningArtifactProperties(AWSProperty): props: PropsDictType = { "Description": (str, False), "DisableTemplateValidation": (boolean, False), - "Info": (dict, True), + "Info": (Info, True), "Name": (str, False), "Type": (str, False), } @@ -53,7 +64,7 @@ class CodeStarParameters(AWSProperty): class ConnectionParameters(AWSProperty): """ - `ConnectionParameters `__ + `ConnectionParameters `__ """ props: PropsDictType = { diff --git a/troposphere/vpclattice.py b/troposphere/vpclattice.py index 57b8a7b7d..ce9fd2f88 100644 --- a/troposphere/vpclattice.py +++ b/troposphere/vpclattice.py @@ -309,6 +309,7 @@ class Service(AWSObject): "CertificateArn": (str, False), "CustomDomainName": (str, False), "DnsEntry": (DnsEntry, False), + "IdleTimeoutSeconds": (integer, False), "Name": (str, False), "Tags": (Tags, False), }