From dbb8ed003c3ddaa7e279ba823ec1f78e6060e13e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 15:36:59 -0800 Subject: [PATCH] Updates from spec version 188.0.0 (#2278) --- troposphere/accessanalyzer.py | 22 + troposphere/amazonmq.py | 3 +- troposphere/apigateway.py | 47 + troposphere/appconfig.py | 2 + troposphere/applicationautoscaling.py | 164 ++++ troposphere/applicationinsights.py | 1 + troposphere/applicationsignals.py | 11 + troposphere/appsync.py | 154 ++- troposphere/autoscaling.py | 93 ++ troposphere/awslambda.py | 24 +- troposphere/backup.py | 21 +- troposphere/batch.py | 104 +- troposphere/bedrock.py | 238 ++++- troposphere/cassandra.py | 26 + troposphere/chatbot.py | 55 +- troposphere/cleanrooms.py | 55 +- troposphere/cloudformation.py | 120 +++ troposphere/cloudfront.py | 58 +- troposphere/cloudtrail.py | 51 + troposphere/codebuild.py | 65 +- troposphere/codepipeline.py | 14 + troposphere/cognito.py | 48 +- troposphere/connect.py | 67 ++ troposphere/customerprofiles.py | 186 ++++ troposphere/databrew.py | 1 + troposphere/datasync.py | 1 + troposphere/datazone.py | 13 +- troposphere/deadline.py | 23 + troposphere/dms.py | 203 ++-- troposphere/docdb.py | 19 +- troposphere/dynamodb.py | 37 +- troposphere/ec2.py | 248 ++++- troposphere/ecs.py | 21 +- troposphere/efs.py | 3 + troposphere/eks.py | 88 ++ troposphere/elasticache.py | 1 + troposphere/elasticloadbalancingv2.py | 14 + troposphere/emrserverless.py | 12 + troposphere/events.py | 33 + troposphere/firehose.py | 103 +- troposphere/fis.py | 58 ++ troposphere/fsx.py | 13 + troposphere/gamelift.py | 296 +++--- troposphere/glue.py | 2 +- troposphere/imagebuilder.py | 16 +- troposphere/inspectorv2.py | 2 +- troposphere/iot.py | 88 ++ troposphere/iotfleetwise.py | 100 ++ troposphere/iotsitewise.py | 12 + troposphere/ivs.py | 17 + troposphere/logs.py | 417 +++++++- troposphere/m2.py | 17 +- troposphere/mediaconnect.py | 11 + troposphere/mediaconvert.py | 1 + troposphere/medialive.py | 284 +++++- troposphere/mediapackagev2.py | 16 +- troposphere/memorydb.py | 23 + troposphere/networkmanager.py | 20 + troposphere/nimblestudio.py | 139 --- troposphere/opensearchserverless.py | 16 + troposphere/opensearchservice.py | 91 ++ troposphere/qbusiness.py | 153 ++- troposphere/quicksight.py | 1275 +++++++++++++++++++------ troposphere/rds.py | 35 +- troposphere/redshift.py | 17 + troposphere/redshiftserverless.py | 13 + troposphere/refactorspaces.py | 4 +- troposphere/resourcegroups.py | 15 + troposphere/route53resolver.py | 7 +- troposphere/s3express.py | 39 +- troposphere/sagemaker.py | 98 +- troposphere/servicediscovery.py | 1 + troposphere/ses.py | 27 + troposphere/synthetics.py | 2 + troposphere/vpclattice.py | 87 ++ troposphere/wisdom.py | 781 ++++++++++++++- troposphere/workspaces.py | 1 - troposphere/workspacesweb.py | 70 ++ 78 files changed, 5942 insertions(+), 771 deletions(-) diff --git a/troposphere/accessanalyzer.py b/troposphere/accessanalyzer.py index e19919bde..46be9ea1f 100644 --- a/troposphere/accessanalyzer.py +++ b/troposphere/accessanalyzer.py @@ -10,12 +10,34 @@ from .validators import boolean, integer +class AnalysisRuleCriteria(AWSProperty): + """ + `AnalysisRuleCriteria `__ + """ + + props: PropsDictType = { + "AccountIds": ([str], False), + "ResourceTags": (dict, False), + } + + +class AnalysisRule(AWSProperty): + """ + `AnalysisRule `__ + """ + + props: PropsDictType = { + "Exclusions": ([AnalysisRuleCriteria], False), + } + + class UnusedAccessConfiguration(AWSProperty): """ `UnusedAccessConfiguration `__ """ props: PropsDictType = { + "AnalysisRule": (AnalysisRule, False), "UnusedAccessAge": (integer, False), } diff --git a/troposphere/amazonmq.py b/troposphere/amazonmq.py index d0f6c421f..e7f43adcc 100644 --- a/troposphere/amazonmq.py +++ b/troposphere/amazonmq.py @@ -84,6 +84,7 @@ class User(AWSProperty): props: PropsDictType = { "ConsoleAccess": (boolean, False), "Groups": ([str], False), + "JolokiaApiAccess": (str, False), "Password": (str, True), "ReplicationUser": (boolean, False), "Username": (str, True), @@ -130,7 +131,7 @@ class Configuration(AWSObject): props: PropsDictType = { "AuthenticationStrategy": (str, False), - "Data": (str, True), + "Data": (str, False), "Description": (str, False), "EngineType": (str, True), "EngineVersion": (str, False), diff --git a/troposphere/apigateway.py b/troposphere/apigateway.py index da4da4a1b..4f1b57285 100644 --- a/troposphere/apigateway.py +++ b/troposphere/apigateway.py @@ -97,6 +97,21 @@ class BasePathMapping(AWSObject): } +class BasePathMappingV2(AWSObject): + """ + `BasePathMappingV2 `__ + """ + + resource_type = "AWS::ApiGateway::BasePathMappingV2" + + props: PropsDictType = { + "BasePath": (str, False), + "DomainNameArn": (str, True), + "RestApiId": (str, True), + "Stage": (str, False), + } + + class ClientCertificate(AWSObject): """ `ClientCertificate `__ @@ -279,6 +294,38 @@ class DomainName(AWSObject): } +class DomainNameAccessAssociation(AWSObject): + """ + `DomainNameAccessAssociation `__ + """ + + resource_type = "AWS::ApiGateway::DomainNameAccessAssociation" + + props: PropsDictType = { + "AccessAssociationSource": (str, True), + "AccessAssociationSourceType": (str, True), + "DomainNameArn": (str, True), + "Tags": (Tags, False), + } + + +class DomainNameV2(AWSObject): + """ + `DomainNameV2 `__ + """ + + resource_type = "AWS::ApiGateway::DomainNameV2" + + props: PropsDictType = { + "CertificateArn": (str, False), + "DomainName": (str, False), + "EndpointConfiguration": (EndpointConfiguration, False), + "Policy": (dict, False), + "SecurityPolicy": (str, False), + "Tags": (Tags, False), + } + + class GatewayResponse(AWSObject): """ `GatewayResponse `__ diff --git a/troposphere/appconfig.py b/troposphere/appconfig.py index 2f25becf4..68bbd78ef 100644 --- a/troposphere/appconfig.py +++ b/troposphere/appconfig.py @@ -49,6 +49,7 @@ class ConfigurationProfile(AWSObject): props: PropsDictType = { "ApplicationId": (str, True), + "DeletionProtectionCheck": (str, False), "Description": (str, False), "KmsKeyIdentifier": (str, False), "LocationUri": (str, True), @@ -131,6 +132,7 @@ class Environment(AWSObject): props: PropsDictType = { "ApplicationId": (str, True), + "DeletionProtectionCheck": (str, False), "Description": (str, False), "Monitors": ([Monitor], False), "Name": (str, True), diff --git a/troposphere/applicationautoscaling.py b/troposphere/applicationautoscaling.py index 47eec43b0..b99268d0d 100644 --- a/troposphere/applicationautoscaling.py +++ b/troposphere/applicationautoscaling.py @@ -67,6 +67,166 @@ class ScalableTarget(AWSObject): } +class PredictiveScalingMetricDimension(AWSProperty): + """ + `PredictiveScalingMetricDimension `__ + """ + + props: PropsDictType = { + "Name": (str, False), + "Value": (str, False), + } + + +class PredictiveScalingMetric(AWSProperty): + """ + `PredictiveScalingMetric `__ + """ + + props: PropsDictType = { + "Dimensions": ([PredictiveScalingMetricDimension], False), + "MetricName": (str, False), + "Namespace": (str, False), + } + + +class PredictiveScalingMetricStat(AWSProperty): + """ + `PredictiveScalingMetricStat `__ + """ + + props: PropsDictType = { + "Metric": (PredictiveScalingMetric, False), + "Stat": (str, False), + "Unit": (str, False), + } + + +class PredictiveScalingMetricDataQuery(AWSProperty): + """ + `PredictiveScalingMetricDataQuery `__ + """ + + props: PropsDictType = { + "Expression": (str, False), + "Id": (str, False), + "Label": (str, False), + "MetricStat": (PredictiveScalingMetricStat, False), + "ReturnData": (boolean, False), + } + + +class PredictiveScalingCustomizedCapacityMetric(AWSProperty): + """ + `PredictiveScalingCustomizedCapacityMetric `__ + """ + + props: PropsDictType = { + "MetricDataQueries": ([PredictiveScalingMetricDataQuery], True), + } + + +class PredictiveScalingCustomizedLoadMetric(AWSProperty): + """ + `PredictiveScalingCustomizedLoadMetric `__ + """ + + props: PropsDictType = { + "MetricDataQueries": ([PredictiveScalingMetricDataQuery], True), + } + + +class PredictiveScalingCustomizedScalingMetric(AWSProperty): + """ + `PredictiveScalingCustomizedScalingMetric `__ + """ + + props: PropsDictType = { + "MetricDataQueries": ([PredictiveScalingMetricDataQuery], True), + } + + +class PredictiveScalingPredefinedLoadMetric(AWSProperty): + """ + `PredictiveScalingPredefinedLoadMetric `__ + """ + + props: PropsDictType = { + "PredefinedMetricType": (str, True), + "ResourceLabel": (str, False), + } + + +class PredictiveScalingPredefinedMetricPair(AWSProperty): + """ + `PredictiveScalingPredefinedMetricPair `__ + """ + + props: PropsDictType = { + "PredefinedMetricType": (str, True), + "ResourceLabel": (str, False), + } + + +class PredictiveScalingPredefinedScalingMetric(AWSProperty): + """ + `PredictiveScalingPredefinedScalingMetric `__ + """ + + props: PropsDictType = { + "PredefinedMetricType": (str, True), + "ResourceLabel": (str, False), + } + + +class PredictiveScalingMetricSpecification(AWSProperty): + """ + `PredictiveScalingMetricSpecification `__ + """ + + props: PropsDictType = { + "CustomizedCapacityMetricSpecification": ( + PredictiveScalingCustomizedCapacityMetric, + False, + ), + "CustomizedLoadMetricSpecification": ( + PredictiveScalingCustomizedLoadMetric, + False, + ), + "CustomizedScalingMetricSpecification": ( + PredictiveScalingCustomizedScalingMetric, + False, + ), + "PredefinedLoadMetricSpecification": ( + PredictiveScalingPredefinedLoadMetric, + False, + ), + "PredefinedMetricPairSpecification": ( + PredictiveScalingPredefinedMetricPair, + False, + ), + "PredefinedScalingMetricSpecification": ( + PredictiveScalingPredefinedScalingMetric, + False, + ), + "TargetValue": (double, True), + } + + +class PredictiveScalingPolicyConfiguration(AWSProperty): + """ + `PredictiveScalingPolicyConfiguration `__ + """ + + props: PropsDictType = { + "MaxCapacityBreachBehavior": (str, False), + "MaxCapacityBuffer": (integer, False), + "MetricSpecifications": ([PredictiveScalingMetricSpecification], True), + "Mode": (str, False), + "SchedulingBufferTime": (integer, False), + } + + class StepAdjustment(AWSProperty): """ `StepAdjustment `__ @@ -204,6 +364,10 @@ class ScalingPolicy(AWSObject): props: PropsDictType = { "PolicyName": (str, True), "PolicyType": (str, True), + "PredictiveScalingPolicyConfiguration": ( + PredictiveScalingPolicyConfiguration, + False, + ), "ResourceId": (str, False), "ScalableDimension": (str, False), "ScalingTargetId": (str, False), diff --git a/troposphere/applicationinsights.py b/troposphere/applicationinsights.py index db3b4ad27..04c5774fc 100644 --- a/troposphere/applicationinsights.py +++ b/troposphere/applicationinsights.py @@ -249,5 +249,6 @@ class Application(AWSObject): "OpsCenterEnabled": (boolean, False), "OpsItemSNSTopicArn": (str, False), "ResourceGroupName": (str, True), + "SNSNotificationArn": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/applicationsignals.py b/troposphere/applicationsignals.py index ab495df89..15202451d 100644 --- a/troposphere/applicationsignals.py +++ b/troposphere/applicationsignals.py @@ -10,6 +10,16 @@ from .validators import boolean, double, integer +class BurnRateConfiguration(AWSProperty): + """ + `BurnRateConfiguration `__ + """ + + props: PropsDictType = { + "LookBackWindowMinutes": (integer, True), + } + + class CalendarInterval(AWSProperty): """ `CalendarInterval `__ @@ -178,6 +188,7 @@ class ServiceLevelObjective(AWSObject): resource_type = "AWS::ApplicationSignals::ServiceLevelObjective" props: PropsDictType = { + "BurnRateConfigurations": ([BurnRateConfiguration], False), "Description": (str, False), "Goal": (Goal, False), "Name": (str, True), diff --git a/troposphere/appsync.py b/troposphere/appsync.py index b292a75c3..95eff2312 100644 --- a/troposphere/appsync.py +++ b/troposphere/appsync.py @@ -11,6 +11,106 @@ from .validators.appsync import resolver_kind_validator +class AuthMode(AWSProperty): + """ + `AuthMode `__ + """ + + props: PropsDictType = { + "AuthType": (str, False), + } + + +class CognitoConfig(AWSProperty): + """ + `CognitoConfig `__ + """ + + props: PropsDictType = { + "AppIdClientRegex": (str, False), + "AwsRegion": (str, True), + "UserPoolId": (str, True), + } + + +class LambdaAuthorizerConfig(AWSProperty): + """ + `LambdaAuthorizerConfig `__ + """ + + props: PropsDictType = { + "AuthorizerResultTtlInSeconds": (double, False), + "AuthorizerUri": (str, False), + "IdentityValidationExpression": (str, False), + } + + +class OpenIDConnectConfig(AWSProperty): + """ + `OpenIDConnectConfig `__ + """ + + props: PropsDictType = { + "AuthTTL": (double, False), + "ClientId": (str, False), + "IatTTL": (double, False), + "Issuer": (str, False), + } + + +class AuthProvider(AWSProperty): + """ + `AuthProvider `__ + """ + + props: PropsDictType = { + "AuthType": (str, True), + "CognitoConfig": (CognitoConfig, False), + "LambdaAuthorizerConfig": (LambdaAuthorizerConfig, False), + "OpenIDConnectConfig": (OpenIDConnectConfig, False), + } + + +class EventLogConfig(AWSProperty): + """ + `EventLogConfig `__ + """ + + props: PropsDictType = { + "CloudWatchLogsRoleArn": (str, True), + "LogLevel": (str, True), + } + + +class EventConfig(AWSProperty): + """ + `EventConfig `__ + """ + + props: PropsDictType = { + "AuthProviders": ([AuthProvider], True), + "ConnectionAuthModes": ([AuthMode], True), + "DefaultPublishAuthModes": ([AuthMode], True), + "DefaultSubscribeAuthModes": ([AuthMode], True), + "LogConfig": (EventLogConfig, False), + } + + +class Api(AWSObject): + """ + `Api `__ + """ + + resource_type = "AWS::AppSync::Api" + + props: PropsDictType = { + "EventConfig": (EventConfig, False), + "Name": (str, True), + "OwnerContact": (str, False), + "Tags": (Tags, False), + } + + class ApiCache(AWSObject): """ `ApiCache `__ @@ -44,6 +144,24 @@ class ApiKey(AWSObject): } +class ChannelNamespace(AWSObject): + """ + `ChannelNamespace `__ + """ + + resource_type = "AWS::AppSync::ChannelNamespace" + + props: PropsDictType = { + "ApiId": (str, True), + "CodeHandlers": (str, False), + "CodeS3Location": (str, False), + "Name": (str, True), + "PublishAuthModes": ([AuthMode], False), + "SubscribeAuthModes": ([AuthMode], False), + "Tags": (Tags, False), + } + + class DeltaSyncConfig(AWSProperty): """ `DeltaSyncConfig `__ @@ -291,31 +409,6 @@ class CognitoUserPoolConfig(AWSProperty): } -class LambdaAuthorizerConfig(AWSProperty): - """ - `LambdaAuthorizerConfig `__ - """ - - props: PropsDictType = { - "AuthorizerResultTtlInSeconds": (double, False), - "AuthorizerUri": (str, False), - "IdentityValidationExpression": (str, False), - } - - -class OpenIDConnectConfig(AWSProperty): - """ - `OpenIDConnectConfig `__ - """ - - props: PropsDictType = { - "AuthTTL": (double, False), - "ClientId": (str, False), - "IatTTL": (double, False), - "Issuer": (str, False), - } - - class AdditionalAuthenticationProvider(AWSProperty): """ `AdditionalAuthenticationProvider `__ @@ -484,3 +577,14 @@ class SourceApiAssociation(AWSObject): "SourceApiAssociationConfig": (SourceApiAssociationConfig, False), "SourceApiIdentifier": (str, False), } + + +class DnsMap(AWSProperty): + """ + `DnsMap `__ + """ + + props: PropsDictType = { + "Http": (str, False), + "Realtime": (str, False), + } diff --git a/troposphere/autoscaling.py b/troposphere/autoscaling.py index 693e9c71a..1cb4c67ea 100644 --- a/troposphere/autoscaling.py +++ b/troposphere/autoscaling.py @@ -31,6 +31,49 @@ ) +class AvailabilityZoneDistribution(AWSProperty): + """ + `AvailabilityZoneDistribution `__ + """ + + props: PropsDictType = { + "CapacityDistributionStrategy": (str, False), + } + + +class AvailabilityZoneImpairmentPolicy(AWSProperty): + """ + `AvailabilityZoneImpairmentPolicy `__ + """ + + props: PropsDictType = { + "ImpairedZoneHealthCheckBehavior": (str, True), + "ZonalShiftEnabled": (boolean, True), + } + + +class CapacityReservationTarget(AWSProperty): + """ + `CapacityReservationTarget `__ + """ + + props: PropsDictType = { + "CapacityReservationIds": ([str], False), + "CapacityReservationResourceGroupArns": ([str], False), + } + + +class CapacityReservationSpecification(AWSProperty): + """ + `CapacityReservationSpecification `__ + """ + + props: PropsDictType = { + "CapacityReservationPreference": (str, True), + "CapacityReservationTarget": (CapacityReservationTarget, False), + } + + class InstanceMaintenancePolicy(AWSProperty): """ `InstanceMaintenancePolicy `__ @@ -132,6 +175,36 @@ class BaselineEbsBandwidthMbpsRequest(AWSProperty): } +class PerformanceFactorReferenceRequest(AWSProperty): + """ + `PerformanceFactorReferenceRequest `__ + """ + + props: PropsDictType = { + "InstanceFamily": (str, False), + } + + +class CpuPerformanceFactorRequest(AWSProperty): + """ + `CpuPerformanceFactorRequest `__ + """ + + props: PropsDictType = { + "References": ([PerformanceFactorReferenceRequest], False), + } + + +class BaselinePerformanceFactorsRequest(AWSProperty): + """ + `BaselinePerformanceFactorsRequest `__ + """ + + props: PropsDictType = { + "Cpu": (CpuPerformanceFactorRequest, False), + } + + class MemoryGiBPerVCpuRequest(AWSProperty): """ `MemoryGiBPerVCpuRequest `__ @@ -212,6 +285,7 @@ class InstanceRequirements(AWSProperty): "AllowedInstanceTypes": ([str], False), "BareMetal": (str, False), "BaselineEbsBandwidthMbps": (BaselineEbsBandwidthMbpsRequest, False), + "BaselinePerformanceFactors": (BaselinePerformanceFactorsRequest, False), "BurstablePerformance": (str, False), "CpuManufacturers": ([str], False), "ExcludedInstanceTypes": ([str], False), @@ -277,6 +351,17 @@ class NotificationConfigurations(AWSProperty): } +class TrafficSourceIdentifier(AWSProperty): + """ + `TrafficSourceIdentifier `__ + """ + + props: PropsDictType = { + "Identifier": (str, True), + "Type": (str, True), + } + + class AutoScalingGroup(AWSObject): """ `AutoScalingGroup `__ @@ -286,8 +371,11 @@ class AutoScalingGroup(AWSObject): props: PropsDictType = { "AutoScalingGroupName": (str, False), + "AvailabilityZoneDistribution": (AvailabilityZoneDistribution, False), + "AvailabilityZoneImpairmentPolicy": (AvailabilityZoneImpairmentPolicy, False), "AvailabilityZones": ([str], False), "CapacityRebalance": (boolean, False), + "CapacityReservationSpecification": (CapacityReservationSpecification, False), "Context": (str, False), "Cooldown": (str, False), "DefaultInstanceWarmup": (integer, False), @@ -310,9 +398,11 @@ class AutoScalingGroup(AWSObject): "NotificationConfigurations": ([NotificationConfigurations], False), "PlacementGroup": (str, False), "ServiceLinkedRoleARN": (str, False), + "SkipZonalShiftValidation": (boolean, False), "Tags": (validate_tags_or_list, False), "TargetGroupARNs": ([str], False), "TerminationPolicies": ([str], False), + "TrafficSources": ([TrafficSourceIdentifier], False), "VPCZoneIdentifier": ([str], False), } @@ -589,6 +679,7 @@ class TargetTrackingMetricStat(AWSProperty): props: PropsDictType = { "Metric": (Metric, True), + "Period": (integer, False), "Stat": (str, True), "Unit": (str, False), } @@ -604,6 +695,7 @@ class TargetTrackingMetricDataQuery(AWSProperty): "Id": (str, True), "Label": (str, False), "MetricStat": (TargetTrackingMetricStat, False), + "Period": (integer, False), "ReturnData": (boolean, False), } @@ -618,6 +710,7 @@ class CustomizedMetricSpecification(AWSProperty): "MetricName": (str, False), "Metrics": ([TargetTrackingMetricDataQuery], False), "Namespace": (str, False), + "Period": (integer, False), "Statistic": (str, False), "Unit": (str, False), } diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index 1695a8f28..53fbf32a9 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -191,6 +191,27 @@ class FilterCriteria(AWSProperty): } +class MetricsConfig(AWSProperty): + """ + `MetricsConfig `__ + """ + + props: PropsDictType = { + "Metrics": ([str], False), + } + + +class ProvisionedPollerConfig(AWSProperty): + """ + `ProvisionedPollerConfig `__ + """ + + props: PropsDictType = { + "MaximumPollers": (integer, False), + "MinimumPollers": (integer, False), + } + + class ScalingConfig(AWSProperty): """ `ScalingConfig `__ @@ -267,7 +288,9 @@ class EventSourceMapping(AWSObject): "MaximumBatchingWindowInSeconds": (integer, False), "MaximumRecordAgeInSeconds": (integer, False), "MaximumRetryAttempts": (integer, False), + "MetricsConfig": (MetricsConfig, False), "ParallelizationFactor": (integer, False), + "ProvisionedPollerConfig": (ProvisionedPollerConfig, False), "Queues": ([str], False), "ScalingConfig": (ScalingConfig, False), "SelfManagedEventSource": (SelfManagedEventSource, False), @@ -564,7 +587,6 @@ class Version(AWSObject): "CodeSha256": (str, False), "Description": (str, False), "FunctionName": (str, True), - "Policy": (dict, False), "ProvisionedConcurrencyConfig": (ProvisionedConcurrencyConfiguration, False), "RuntimePolicy": (RuntimePolicy, False), } diff --git a/troposphere/backup.py b/troposphere/backup.py index 8ead00996..ff2f61d82 100644 --- a/troposphere/backup.py +++ b/troposphere/backup.py @@ -174,7 +174,7 @@ class LockConfigurationType(AWSProperty): class NotificationObjectType(AWSProperty): """ - `NotificationObjectType `__ + `NotificationObjectType `__ """ props: PropsDictType = { @@ -250,6 +250,25 @@ class Framework(AWSObject): } +class LogicallyAirGappedBackupVault(AWSObject): + """ + `LogicallyAirGappedBackupVault `__ + """ + + resource_type = "AWS::Backup::LogicallyAirGappedBackupVault" + + props: PropsDictType = { + "AccessPolicy": (dict, False), + "BackupVaultName": (str, True), + "BackupVaultTags": (dict, False), + "MaxRetentionDays": (integer, True), + "MinRetentionDays": (integer, True), + "Notifications": (NotificationObjectType, False), + "VaultState": (str, False), + "VaultType": (str, False), + } + + class ReportDeliveryChannel(AWSProperty): """ `ReportDeliveryChannel `__ diff --git a/troposphere/batch.py b/troposphere/batch.py index 7885f76bf..00e04b486 100644 --- a/troposphere/batch.py +++ b/troposphere/batch.py @@ -28,6 +28,19 @@ class Ec2ConfigurationObject(AWSProperty): } +class LaunchTemplateSpecificationOverride(AWSProperty): + """ + `LaunchTemplateSpecificationOverride `__ + """ + + props: PropsDictType = { + "LaunchTemplateId": (str, False), + "LaunchTemplateName": (str, False), + "TargetInstanceTypes": ([str], False), + "Version": (str, False), + } + + class LaunchTemplateSpecification(AWSProperty): """ `LaunchTemplateSpecification `__ @@ -36,6 +49,7 @@ class LaunchTemplateSpecification(AWSProperty): props: PropsDictType = { "LaunchTemplateId": (str, False), "LaunchTemplateName": (str, False), + "Overrides": ([LaunchTemplateSpecificationOverride], False), "Version": (str, False), } @@ -127,7 +141,7 @@ class Environment(AWSProperty): class EphemeralStorage(AWSProperty): """ - `EphemeralStorage `__ + `EphemeralStorage `__ """ props: PropsDictType = { @@ -137,7 +151,7 @@ class EphemeralStorage(AWSProperty): class FargatePlatformConfiguration(AWSProperty): """ - `FargatePlatformConfiguration `__ + `FargatePlatformConfiguration `__ """ props: PropsDictType = { @@ -171,7 +185,7 @@ class Tmpfs(AWSProperty): class LinuxParameters(AWSProperty): """ - `LinuxParameters `__ + `LinuxParameters `__ """ props: PropsDictType = { @@ -197,7 +211,7 @@ class Secret(AWSProperty): class LogConfiguration(AWSProperty): """ - `LogConfiguration `__ + `LogConfiguration `__ """ props: PropsDictType = { @@ -209,7 +223,7 @@ class LogConfiguration(AWSProperty): class MountPoints(AWSProperty): """ - `MountPoints `__ + `MountPoints `__ """ props: PropsDictType = { @@ -221,7 +235,7 @@ class MountPoints(AWSProperty): class NetworkConfiguration(AWSProperty): """ - `NetworkConfiguration `__ + `NetworkConfiguration `__ """ props: PropsDictType = { @@ -231,7 +245,7 @@ class NetworkConfiguration(AWSProperty): class RepositoryCredentials(AWSProperty): """ - `RepositoryCredentials `__ + `RepositoryCredentials `__ """ props: PropsDictType = { @@ -252,7 +266,7 @@ class ResourceRequirement(AWSProperty): class RuntimePlatform(AWSProperty): """ - `RuntimePlatform `__ + `RuntimePlatform `__ """ props: PropsDictType = { @@ -275,7 +289,7 @@ class Ulimit(AWSProperty): class AuthorizationConfig(AWSProperty): """ - `AuthorizationConfig `__ + `AuthorizationConfig `__ """ props: PropsDictType = { @@ -300,7 +314,7 @@ class EfsVolumeConfiguration(AWSProperty): class VolumesHost(AWSProperty): """ - `VolumesHost `__ + `VolumesHost `__ """ props: PropsDictType = { @@ -310,7 +324,7 @@ class VolumesHost(AWSProperty): class Volumes(AWSProperty): """ - `Volumes `__ + `Volumes `__ """ props: PropsDictType = { @@ -332,7 +346,6 @@ class ContainerProperties(AWSProperty): "ExecutionRoleArn": (str, False), "FargatePlatformConfiguration": (FargatePlatformConfiguration, False), "Image": (str, True), - "InstanceType": (str, False), "JobRoleArn": (str, False), "LinuxParameters": (LinuxParameters, False), "LogConfiguration": (LogConfiguration, False), @@ -535,13 +548,13 @@ class ImagePullSecret(AWSProperty): """ props: PropsDictType = { - "Name": (str, True), + "Name": (str, False), } class Metadata(AWSProperty): """ - `Metadata `__ + `Metadata `__ """ props: PropsDictType = { @@ -551,7 +564,7 @@ class Metadata(AWSProperty): class PodProperties(AWSProperty): """ - `PodProperties `__ + `PodProperties `__ """ props: PropsDictType = { @@ -577,14 +590,69 @@ class EksProperties(AWSProperty): } +class MultiNodeContainerProperties(AWSProperty): + """ + `MultiNodeContainerProperties `__ + """ + + props: PropsDictType = { + "Command": ([str], False), + "Environment": ([Environment], False), + "EphemeralStorage": (EphemeralStorage, False), + "ExecutionRoleArn": (str, False), + "Image": (str, True), + "InstanceType": (str, False), + "JobRoleArn": (str, False), + "LinuxParameters": (LinuxParameters, False), + "LogConfiguration": (LogConfiguration, False), + "Memory": (integer, False), + "MountPoints": ([MountPoints], False), + "Privileged": (boolean, False), + "ReadonlyRootFilesystem": (boolean, False), + "RepositoryCredentials": (RepositoryCredentials, False), + "ResourceRequirements": ([ResourceRequirement], False), + "RuntimePlatform": (RuntimePlatform, False), + "Secrets": ([Secret], False), + "Ulimits": ([Ulimit], False), + "User": (str, False), + "Vcpus": (integer, False), + "Volumes": ([Volumes], False), + } + + +class MultiNodeEcsTaskProperties(AWSProperty): + """ + `MultiNodeEcsTaskProperties `__ + """ + + props: PropsDictType = { + "Containers": ([TaskContainerProperties], False), + "ExecutionRoleArn": (str, False), + "IpcMode": (str, False), + "PidMode": (str, False), + "TaskRoleArn": (str, False), + "Volumes": ([Volumes], False), + } + + +class MultiNodeEcsProperties(AWSProperty): + """ + `MultiNodeEcsProperties `__ + """ + + props: PropsDictType = { + "TaskProperties": ([MultiNodeEcsTaskProperties], True), + } + + class NodeRangeProperty(AWSProperty): """ `NodeRangeProperty `__ """ props: PropsDictType = { - "Container": (ContainerProperties, False), - "EcsProperties": (EcsProperties, False), + "Container": (MultiNodeContainerProperties, False), + "EcsProperties": (MultiNodeEcsProperties, False), "EksProperties": (EksProperties, False), "InstanceTypes": ([str], False), "TargetNodes": (str, True), @@ -629,7 +697,7 @@ class RetryStrategy(AWSProperty): class Timeout(AWSProperty): """ - `Timeout `__ + `Timeout `__ """ props: PropsDictType = { diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index 54053a990..fbad7de0d 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -64,6 +64,7 @@ class Function(AWSProperty): "Description": (str, False), "Name": (str, True), "Parameters": (dict, False), + "RequireConfirmation": (str, False), } @@ -108,7 +109,7 @@ class AgentKnowledgeBase(AWSProperty): class GuardrailConfiguration(AWSProperty): """ - `GuardrailConfiguration `__ + `GuardrailConfiguration `__ """ props: PropsDictType = { @@ -209,6 +210,31 @@ class AgentAlias(AWSObject): } +class InferenceProfileModelSource(AWSProperty): + """ + `InferenceProfileModelSource `__ + """ + + props: PropsDictType = { + "CopyFrom": (str, True), + } + + +class ApplicationInferenceProfile(AWSObject): + """ + `ApplicationInferenceProfile `__ + """ + + resource_type = "AWS::Bedrock::ApplicationInferenceProfile" + + props: PropsDictType = { + "Description": (str, False), + "InferenceProfileName": (str, True), + "ModelSource": (InferenceProfileModelSource, False), + "Tags": (Tags, False), + } + + class PatternObjectFilter(AWSProperty): """ `PatternObjectFilter `__ @@ -505,13 +531,11 @@ class ChunkingConfiguration(AWSProperty): class S3Location(AWSProperty): """ - `S3Location `__ + `S3Location `__ """ props: PropsDictType = { - "Bucket": (str, True), - "Key": (str, True), - "Version": (str, False), + "URI": (str, True), } @@ -567,6 +591,16 @@ class CustomTransformationConfiguration(AWSProperty): } +class BedrockDataAutomationConfiguration(AWSProperty): + """ + `BedrockDataAutomationConfiguration `__ + """ + + props: PropsDictType = { + "ParsingModality": (str, False), + } + + class ParsingPrompt(AWSProperty): """ `ParsingPrompt `__ @@ -584,6 +618,7 @@ class BedrockFoundationModelConfiguration(AWSProperty): props: PropsDictType = { "ModelArn": (str, True), + "ParsingModality": (str, False), "ParsingPrompt": (ParsingPrompt, False), } @@ -594,6 +629,10 @@ class ParsingConfiguration(AWSProperty): """ props: PropsDictType = { + "BedrockDataAutomationConfiguration": ( + BedrockDataAutomationConfiguration, + False, + ), "BedrockFoundationModelConfiguration": ( BedrockFoundationModelConfiguration, False, @@ -715,6 +754,7 @@ class KnowledgeBaseFlowNodeConfiguration(AWSProperty): """ props: PropsDictType = { + "GuardrailConfiguration": (GuardrailConfiguration, False), "KnowledgeBaseId": (str, True), "ModelId": (str, False), } @@ -750,7 +790,6 @@ class PromptModelInferenceConfiguration(AWSProperty): "MaxTokens": (double, False), "StopSequences": ([str], False), "Temperature": (double, False), - "TopK": (double, False), "TopP": (double, False), } @@ -765,6 +804,27 @@ class PromptInferenceConfiguration(AWSProperty): } +class ContentBlock(AWSProperty): + """ + `ContentBlock `__ + """ + + props: PropsDictType = { + "Text": (str, True), + } + + +class Message(AWSProperty): + """ + `Message `__ + """ + + props: PropsDictType = { + "Content": ([ContentBlock], True), + "Role": (str, True), + } + + class PromptInputVariable(AWSProperty): """ `PromptInputVariable `__ @@ -775,6 +835,94 @@ class PromptInputVariable(AWSProperty): } +class SystemContentBlock(AWSProperty): + """ + `SystemContentBlock `__ + """ + + props: PropsDictType = { + "Text": (str, True), + } + + +class ToolInputSchema(AWSProperty): + """ + `ToolInputSchema `__ + """ + + props: PropsDictType = { + "Json": (dict, True), + } + + +class ToolSpecification(AWSProperty): + """ + `ToolSpecification `__ + """ + + props: PropsDictType = { + "Description": (str, False), + "InputSchema": (ToolInputSchema, True), + "Name": (str, True), + } + + +class Tool(AWSProperty): + """ + `Tool `__ + """ + + props: PropsDictType = { + "ToolSpec": (ToolSpecification, True), + } + + +class SpecificToolChoice(AWSProperty): + """ + `SpecificToolChoice `__ + """ + + props: PropsDictType = { + "Name": (str, True), + } + + +class ToolChoice(AWSProperty): + """ + `ToolChoice `__ + """ + + props: PropsDictType = { + "Any": (dict, False), + "Auto": (dict, False), + "Tool": (SpecificToolChoice, False), + } + + +class ToolConfiguration(AWSProperty): + """ + `ToolConfiguration `__ + """ + + props: PropsDictType = { + "ToolChoice": (ToolChoice, False), + "Tools": ([Tool], True), + } + + +class ChatPromptTemplateConfiguration(AWSProperty): + """ + `ChatPromptTemplateConfiguration `__ + """ + + props: PropsDictType = { + "InputVariables": ([PromptInputVariable], False), + "Messages": ([Message], True), + "System": ([SystemContentBlock], False), + "ToolConfiguration": (ToolConfiguration, False), + } + + class TextPromptTemplateConfiguration(AWSProperty): """ `TextPromptTemplateConfiguration `__ @@ -788,11 +936,12 @@ class TextPromptTemplateConfiguration(AWSProperty): class PromptTemplateConfiguration(AWSProperty): """ - `PromptTemplateConfiguration `__ + `PromptTemplateConfiguration `__ """ props: PropsDictType = { - "Text": (TextPromptTemplateConfiguration, True), + "Chat": (ChatPromptTemplateConfiguration, False), + "Text": (TextPromptTemplateConfiguration, False), } @@ -836,6 +985,7 @@ class PromptFlowNodeConfiguration(AWSProperty): """ props: PropsDictType = { + "GuardrailConfiguration": (GuardrailConfiguration, False), "SourceConfiguration": (PromptFlowNodeSourceConfiguration, True), } @@ -1196,6 +1346,16 @@ class GuardrailVersion(AWSObject): } +class KendraKnowledgeBaseConfiguration(AWSProperty): + """ + `KendraKnowledgeBaseConfiguration `__ + """ + + props: PropsDictType = { + "KendraIndexArn": (str, True), + } + + class BedrockEmbeddingModelConfiguration(AWSProperty): """ `BedrockEmbeddingModelConfiguration `__ @@ -1219,6 +1379,27 @@ class EmbeddingModelConfiguration(AWSProperty): } +class SupplementalDataStorageLocation(AWSProperty): + """ + `SupplementalDataStorageLocation `__ + """ + + props: PropsDictType = { + "S3Location": (S3Location, False), + "SupplementalDataStorageLocationType": (str, True), + } + + +class SupplementalDataStorageConfiguration(AWSProperty): + """ + `SupplementalDataStorageConfiguration `__ + """ + + props: PropsDictType = { + "SupplementalDataStorageLocations": ([SupplementalDataStorageLocation], True), + } + + class VectorKnowledgeBaseConfiguration(AWSProperty): """ `VectorKnowledgeBaseConfiguration `__ @@ -1227,6 +1408,10 @@ class VectorKnowledgeBaseConfiguration(AWSProperty): props: PropsDictType = { "EmbeddingModelArn": (str, True), "EmbeddingModelConfiguration": (EmbeddingModelConfiguration, False), + "SupplementalDataStorageConfiguration": ( + SupplementalDataStorageConfiguration, + False, + ), } @@ -1236,8 +1421,9 @@ class KnowledgeBaseConfiguration(AWSProperty): """ props: PropsDictType = { + "KendraKnowledgeBaseConfiguration": (KendraKnowledgeBaseConfiguration, False), "Type": (str, True), - "VectorKnowledgeBaseConfiguration": (VectorKnowledgeBaseConfiguration, True), + "VectorKnowledgeBaseConfiguration": (VectorKnowledgeBaseConfiguration, False), } @@ -1370,7 +1556,7 @@ class KnowledgeBase(AWSObject): "KnowledgeBaseConfiguration": (KnowledgeBaseConfiguration, True), "Name": (str, True), "RoleArn": (str, True), - "StorageConfiguration": (StorageConfiguration, True), + "StorageConfiguration": (StorageConfiguration, False), "Tags": (dict, False), } @@ -1384,7 +1570,7 @@ class PromptVariant(AWSProperty): "InferenceConfiguration": (PromptInferenceConfiguration, False), "ModelId": (str, False), "Name": (str, True), - "TemplateConfiguration": (PromptTemplateConfiguration, False), + "TemplateConfiguration": (PromptTemplateConfiguration, True), "TemplateType": (str, True), } @@ -1442,6 +1628,36 @@ class FlowValidation(AWSProperty): } +class InferenceProfileModel(AWSProperty): + """ + `InferenceProfileModel `__ + """ + + props: PropsDictType = { + "ModelArn": (str, False), + } + + +class PromptAgentResource(AWSProperty): + """ + `PromptAgentResource `__ + """ + + props: PropsDictType = { + "AgentIdentifier": (str, True), + } + + +class PromptGenAiResource(AWSProperty): + """ + `PromptGenAiResource `__ + """ + + props: PropsDictType = { + "Agent": (PromptAgentResource, True), + } + + class TextS3Location(AWSProperty): """ `TextS3Location `__ diff --git a/troposphere/cassandra.py b/troposphere/cassandra.py index b30b38318..e616bfada 100644 --- a/troposphere/cassandra.py +++ b/troposphere/cassandra.py @@ -33,6 +33,7 @@ class Keyspace(AWSObject): resource_type = "AWS::Cassandra::Keyspace" props: PropsDictType = { + "ClientSideTimestampsEnabled": (boolean, False), "KeyspaceName": (str, False), "ReplicationSpecification": (ReplicationSpecification, False), "Tags": (Tags, False), @@ -178,3 +179,28 @@ class Table(AWSObject): "TableName": (str, False), "Tags": (Tags, False), } + + +class Field(AWSProperty): + """ + `Field `__ + """ + + props: PropsDictType = { + "FieldName": (str, True), + "FieldType": (str, True), + } + + +class Type(AWSObject): + """ + `Type `__ + """ + + resource_type = "AWS::Cassandra::Type" + + props: PropsDictType = { + "Fields": ([Field], True), + "KeyspaceName": (str, True), + "TypeName": (str, True), + } diff --git a/troposphere/chatbot.py b/troposphere/chatbot.py index bb7bd128e..3c4844f0c 100644 --- a/troposphere/chatbot.py +++ b/troposphere/chatbot.py @@ -6,11 +6,62 @@ # *** Do not modify - this file is autogenerated *** -from . import AWSObject, PropsDictType, Tags +from . import AWSObject, AWSProperty, PropsDictType, Tags from .validators import boolean from .validators.chatbot import validate_logginglevel +class CustomActionAttachmentCriteria(AWSProperty): + """ + `CustomActionAttachmentCriteria `__ + """ + + props: PropsDictType = { + "Operator": (str, True), + "Value": (str, False), + "VariableName": (str, True), + } + + +class CustomActionAttachment(AWSProperty): + """ + `CustomActionAttachment `__ + """ + + props: PropsDictType = { + "ButtonText": (str, False), + "Criteria": ([CustomActionAttachmentCriteria], False), + "NotificationType": (str, False), + "Variables": (dict, False), + } + + +class CustomActionDefinition(AWSProperty): + """ + `CustomActionDefinition `__ + """ + + props: PropsDictType = { + "CommandText": (str, True), + } + + +class CustomAction(AWSObject): + """ + `CustomAction `__ + """ + + resource_type = "AWS::Chatbot::CustomAction" + + props: PropsDictType = { + "ActionName": (str, True), + "AliasName": (str, False), + "Attachments": ([CustomActionAttachment], False), + "Definition": (CustomActionDefinition, True), + "Tags": (Tags, False), + } + + class MicrosoftTeamsChannelConfiguration(AWSObject): """ `MicrosoftTeamsChannelConfiguration `__ @@ -20,6 +71,7 @@ class MicrosoftTeamsChannelConfiguration(AWSObject): props: PropsDictType = { "ConfigurationName": (str, True), + "CustomizationResourceArns": ([str], False), "GuardrailPolicies": ([str], False), "IamRoleArn": (str, True), "LoggingLevel": (str, False), @@ -41,6 +93,7 @@ class SlackChannelConfiguration(AWSObject): props: PropsDictType = { "ConfigurationName": (str, True), + "CustomizationResourceArns": ([str], False), "GuardrailPolicies": ([str], False), "IamRoleArn": (str, True), "LoggingLevel": (validate_logginglevel, False), diff --git a/troposphere/cleanrooms.py b/troposphere/cleanrooms.py index c75f51363..2e3396002 100644 --- a/troposphere/cleanrooms.py +++ b/troposphere/cleanrooms.py @@ -104,6 +104,7 @@ class Collaboration(AWSObject): resource_type = "AWS::CleanRooms::Collaboration" props: PropsDictType = { + "AnalyticsEngine": (str, False), "CreatorDisplayName": (str, True), "CreatorMemberAbilities": ([str], True), "CreatorPaymentConfiguration": (PaymentConfiguration, False), @@ -236,6 +237,19 @@ class AnalysisRule(AWSProperty): } +class AthenaTableReference(AWSProperty): + """ + `AthenaTableReference `__ + """ + + props: PropsDictType = { + "DatabaseName": (str, True), + "OutputLocation": (str, False), + "TableName": (str, True), + "WorkGroup": (str, True), + } + + class GlueTableReference(AWSProperty): """ `GlueTableReference `__ @@ -247,13 +261,51 @@ class GlueTableReference(AWSProperty): } +class SnowflakeTableSchemaV1(AWSProperty): + """ + `SnowflakeTableSchemaV1 `__ + """ + + props: PropsDictType = { + "ColumnName": (str, True), + "ColumnType": (str, True), + } + + +class SnowflakeTableSchema(AWSProperty): + """ + `SnowflakeTableSchema `__ + """ + + props: PropsDictType = { + "V1": ([SnowflakeTableSchemaV1], True), + } + + +class SnowflakeTableReference(AWSProperty): + """ + `SnowflakeTableReference `__ + """ + + props: PropsDictType = { + "AccountIdentifier": (str, True), + "DatabaseName": (str, True), + "SchemaName": (str, True), + "SecretArn": (str, True), + "TableName": (str, True), + "TableSchema": (SnowflakeTableSchema, True), + } + + class TableReference(AWSProperty): """ `TableReference `__ """ props: PropsDictType = { - "Glue": (GlueTableReference, True), + "Athena": (AthenaTableReference, False), + "Glue": (GlueTableReference, False), + "Snowflake": (SnowflakeTableReference, False), } @@ -457,6 +509,7 @@ class ProtectedQueryS3OutputConfiguration(AWSProperty): "Bucket": (str, True), "KeyPrefix": (str, False), "ResultFormat": (str, True), + "SingleFileOutput": (boolean, False), } diff --git a/troposphere/cloudformation.py b/troposphere/cloudformation.py index ea1a72211..0046f8f30 100644 --- a/troposphere/cloudformation.py +++ b/troposphere/cloudformation.py @@ -36,6 +36,107 @@ class CustomResource(AWSObject): } +class S3Location(AWSProperty): + """ + `S3Location `__ + """ + + props: PropsDictType = { + "Uri": (str, True), + "VersionId": (str, False), + } + + +class Options(AWSProperty): + """ + `Options `__ + """ + + props: PropsDictType = { + "InputParams": (S3Location, False), + } + + +class StackNames(AWSProperty): + """ + `StackNames `__ + """ + + props: PropsDictType = { + "Exclude": ([str], False), + "Include": ([str], False), + } + + +class StackRoles(AWSProperty): + """ + `StackRoles `__ + """ + + props: PropsDictType = { + "Exclude": ([str], False), + "Include": ([str], False), + } + + +class StackFilters(AWSProperty): + """ + `StackFilters `__ + """ + + props: PropsDictType = { + "FilteringCriteria": (str, True), + "StackNames": (StackNames, False), + "StackRoles": (StackRoles, False), + } + + +class HookTarget(AWSProperty): + """ + `HookTarget `__ + """ + + props: PropsDictType = { + "Action": (str, True), + "InvocationPoint": (str, True), + "TargetName": (str, True), + } + + +class TargetFilters(AWSProperty): + """ + `TargetFilters `__ + """ + + props: PropsDictType = { + "Actions": ([str], False), + "InvocationPoints": ([str], False), + "TargetNames": ([str], False), + "Targets": ([HookTarget], False), + } + + +class GuardHook(AWSObject): + """ + `GuardHook `__ + """ + + resource_type = "AWS::CloudFormation::GuardHook" + + props: PropsDictType = { + "Alias": (str, True), + "ExecutionRole": (str, True), + "FailureMode": (str, True), + "HookStatus": (str, True), + "LogBucket": (str, False), + "Options": (Options, False), + "RuleLocation": (S3Location, True), + "StackFilters": (StackFilters, False), + "TargetFilters": (TargetFilters, False), + "TargetOperations": ([str], True), + } + + class HookDefaultVersion(AWSObject): """ `HookDefaultVersion `__ @@ -91,6 +192,25 @@ class HookVersion(AWSObject): } +class LambdaHook(AWSObject): + """ + `LambdaHook `__ + """ + + resource_type = "AWS::CloudFormation::LambdaHook" + + props: PropsDictType = { + "Alias": (str, True), + "ExecutionRole": (str, True), + "FailureMode": (str, True), + "HookStatus": (str, True), + "LambdaFunction": (str, True), + "StackFilters": (StackFilters, False), + "TargetFilters": (TargetFilters, False), + "TargetOperations": ([str], True), + } + + class Macro(AWSObject): """ `Macro `__ diff --git a/troposphere/cloudfront.py b/troposphere/cloudfront.py index 5940dfe9d..07b793d43 100644 --- a/troposphere/cloudfront.py +++ b/troposphere/cloudfront.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, double, integer from .validators.cloudfront import ( cloudfront_access_control_allow_methods, @@ -28,6 +28,20 @@ ) +class AnycastIpList(AWSObject): + """ + `AnycastIpList `__ + """ + + resource_type = "AWS::CloudFront::AnycastIpList" + + props: PropsDictType = { + "IpCount": (integer, True), + "Name": (str, True), + "Tags": (Tags, False), + } + + class CacheCookiesConfig(AWSProperty): """ `CacheCookiesConfig `__ @@ -259,6 +273,16 @@ class FunctionAssociation(AWSProperty): } +class GrpcConfig(AWSProperty): + """ + `GrpcConfig `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, True), + } + + class LambdaFunctionAssociation(AWSProperty): """ `LambdaFunctionAssociation `__ @@ -285,6 +309,7 @@ class CacheBehavior(AWSProperty): "FieldLevelEncryptionId": (str, False), "ForwardedValues": (ForwardedValues, False), "FunctionAssociations": ([FunctionAssociation], False), + "GrpcConfig": (GrpcConfig, False), "LambdaFunctionAssociations": ([LambdaFunctionAssociation], False), "MaxTTL": (double, False), "MinTTL": (double, False), @@ -327,6 +352,7 @@ class DefaultCacheBehavior(AWSProperty): "FieldLevelEncryptionId": (str, False), "ForwardedValues": (ForwardedValues, False), "FunctionAssociations": ([FunctionAssociation], False), + "GrpcConfig": (GrpcConfig, False), "LambdaFunctionAssociations": ([LambdaFunctionAssociation], False), "MaxTTL": (double, False), "MinTTL": (double, False), @@ -372,7 +398,7 @@ class Logging(AWSProperty): """ props: PropsDictType = { - "Bucket": (str, True), + "Bucket": (str, False), "IncludeCookies": (boolean, False), "Prefix": (str, False), } @@ -495,6 +521,7 @@ class OriginGroup(AWSProperty): "FailoverCriteria": (OriginGroupFailoverCriteria, True), "Id": (str, True), "Members": (OriginGroupMembers, True), + "SelectionCriteria": (str, False), } @@ -551,6 +578,7 @@ class DistributionConfig(AWSProperty): props: PropsDictType = { "Aliases": ([str], False), + "AnycastIpListId": (str, False), "CNAMEs": ([str], False), "CacheBehaviors": ([CacheBehavior], False), "Comment": (str, False), @@ -1146,3 +1174,29 @@ class StreamingDistribution(AWSObject): "StreamingDistributionConfig": (StreamingDistributionConfig, True), "Tags": (validate_tags_or_list, False), } + + +class AnycastIpListProperty(AWSProperty): + """ + `AnycastIpListProperty `__ + """ + + props: PropsDictType = { + "AnycastIps": ([str], True), + "Arn": (str, True), + "Id": (str, True), + "IpCount": (integer, True), + "LastModifiedTime": (str, True), + "Name": (str, True), + "Status": (str, True), + } + + +class Tags(AWSProperty): + """ + `Tags `__ + """ + + props: PropsDictType = { + "Items": (Tags, False), + } diff --git a/troposphere/cloudtrail.py b/troposphere/cloudtrail.py index 09fa8a21d..7c5cc45ae 100644 --- a/troposphere/cloudtrail.py +++ b/troposphere/cloudtrail.py @@ -36,6 +36,57 @@ class Channel(AWSObject): } +class Frequency(AWSProperty): + """ + `Frequency `__ + """ + + props: PropsDictType = { + "Unit": (str, True), + "Value": (integer, True), + } + + +class RefreshSchedule(AWSProperty): + """ + `RefreshSchedule `__ + """ + + props: PropsDictType = { + "Frequency": (Frequency, False), + "Status": (str, False), + "TimeOfDay": (str, False), + } + + +class Widget(AWSProperty): + """ + `Widget `__ + """ + + props: PropsDictType = { + "QueryParameters": ([str], False), + "QueryStatement": (str, True), + "ViewProperties": (dict, False), + } + + +class Dashboard(AWSObject): + """ + `Dashboard `__ + """ + + resource_type = "AWS::CloudTrail::Dashboard" + + props: PropsDictType = { + "Name": (str, False), + "RefreshSchedule": (RefreshSchedule, False), + "Tags": (Tags, False), + "TerminationProtectionEnabled": (boolean, False), + "Widgets": ([Widget], False), + } + + class AdvancedFieldSelector(AWSProperty): """ `AdvancedFieldSelector `__ diff --git a/troposphere/codebuild.py b/troposphere/codebuild.py index fdd452762..e157e797a 100644 --- a/troposphere/codebuild.py +++ b/troposphere/codebuild.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer from .validators.codebuild import ( validate_artifacts, validate_credentials_provider, @@ -25,6 +25,65 @@ ) +class ComputeConfiguration(AWSProperty): + """ + `ComputeConfiguration `__ + """ + + props: PropsDictType = { + "disk": (integer, False), + "machineType": (str, False), + "memory": (integer, False), + "vCpu": (integer, False), + } + + +class FleetProxyRule(AWSProperty): + """ + `FleetProxyRule `__ + """ + + props: PropsDictType = { + "Effect": (str, False), + "Entities": ([str], False), + "Type": (str, False), + } + + +class ProxyConfiguration(AWSProperty): + """ + `ProxyConfiguration `__ + """ + + props: PropsDictType = { + "DefaultBehavior": (str, False), + "OrderedProxyRules": ([FleetProxyRule], False), + } + + +class TargetTrackingScalingConfiguration(AWSProperty): + """ + `TargetTrackingScalingConfiguration `__ + """ + + props: PropsDictType = { + "MetricType": (str, False), + "TargetValue": (double, False), + } + + +class ScalingConfigurationInput(AWSProperty): + """ + `ScalingConfigurationInput `__ + """ + + props: PropsDictType = { + "MaxCapacity": (integer, False), + "ScalingType": (str, False), + "TargetTrackingScalingConfigs": ([TargetTrackingScalingConfiguration], False), + } + + class VpcConfig(AWSProperty): """ `VpcConfig `__ @@ -46,13 +105,16 @@ class Fleet(AWSObject): props: PropsDictType = { "BaseCapacity": (integer, False), + "ComputeConfiguration": (ComputeConfiguration, False), "ComputeType": (str, False), "EnvironmentType": (str, False), + "FleetProxyConfiguration": (ProxyConfiguration, False), "FleetServiceRole": (str, False), "FleetVpcConfig": (VpcConfig, False), "ImageId": (str, False), "Name": (str, False), "OverflowBehavior": (str, False), + "ScalingConfiguration": (ScalingConfigurationInput, False), "Tags": (Tags, False), } @@ -327,6 +389,7 @@ class Project(AWSObject): props: PropsDictType = { "Artifacts": (Artifacts, True), + "AutoRetryLimit": (integer, False), "BadgeEnabled": (boolean, False), "BuildBatchConfig": (ProjectBuildBatchConfig, False), "Cache": (ProjectCache, False), diff --git a/troposphere/codepipeline.py b/troposphere/codepipeline.py index f27572dc6..63c2f8b10 100644 --- a/troposphere/codepipeline.py +++ b/troposphere/codepipeline.py @@ -223,6 +223,7 @@ class OutputArtifacts(AWSProperty): """ props: PropsDictType = { + "Files": ([str], False), "Name": (str, True), } @@ -234,11 +235,13 @@ class Actions(AWSProperty): props: PropsDictType = { "ActionTypeId": (ActionTypeId, True), + "Commands": ([str], False), "Configuration": (dict, False), "InputArtifacts": ([InputArtifacts], False), "Name": (str, True), "Namespace": (str, False), "OutputArtifacts": ([OutputArtifacts], False), + "OutputVariables": ([str], False), "Region": (str, False), "RoleArn": (str, False), "RunOrder": (integer, False), @@ -306,6 +309,16 @@ class Blockers(AWSProperty): } +class RetryConfiguration(AWSProperty): + """ + `RetryConfiguration `__ + """ + + props: PropsDictType = { + "RetryMode": (str, False), + } + + class FailureConditions(AWSProperty): """ `FailureConditions `__ @@ -314,6 +327,7 @@ class FailureConditions(AWSProperty): props: PropsDictType = { "Conditions": ([Condition], False), "Result": (str, False), + "RetryConfiguration": (RetryConfiguration, False), } diff --git a/troposphere/cognito.py b/troposphere/cognito.py index 39575cd67..6053b5210 100644 --- a/troposphere/cognito.py +++ b/troposphere/cognito.py @@ -191,6 +191,37 @@ class LogDeliveryConfiguration(AWSObject): } +class AssetType(AWSProperty): + """ + `AssetType `__ + """ + + props: PropsDictType = { + "Bytes": (str, False), + "Category": (str, True), + "ColorMode": (str, True), + "Extension": (str, True), + "ResourceId": (str, False), + } + + +class ManagedLoginBranding(AWSObject): + """ + `ManagedLoginBranding `__ + """ + + resource_type = "AWS::Cognito::ManagedLoginBranding" + + props: PropsDictType = { + "Assets": ([AssetType], False), + "ClientId": (str, False), + "ReturnMergedResources": (boolean, False), + "Settings": (dict, False), + "UseCognitoProvidedValues": (boolean, False), + "UserPoolId": (str, True), + } + + class RecoveryOption(AWSProperty): """ `RecoveryOption `__ @@ -333,6 +364,16 @@ class PasswordPolicy(AWSProperty): } +class SignInPolicy(AWSProperty): + """ + `SignInPolicy `__ + """ + + props: PropsDictType = { + "AllowedFirstAuthFactors": ([str], False), + } + + class Policies(AWSProperty): """ `Policies `__ @@ -340,6 +381,7 @@ class Policies(AWSProperty): props: PropsDictType = { "PasswordPolicy": (PasswordPolicy, False), + "SignInPolicy": (SignInPolicy, False), } @@ -480,9 +522,12 @@ class UserPool(AWSObject): "UserPoolAddOns": (UserPoolAddOns, False), "UserPoolName": (str, False), "UserPoolTags": (dict, False), + "UserPoolTier": (str, False), "UsernameAttributes": ([str], False), "UsernameConfiguration": (UsernameConfiguration, False), "VerificationMessageTemplate": (VerificationMessageTemplate, False), + "WebAuthnRelyingPartyID": (str, False), + "WebAuthnUserVerification": (str, False), } @@ -565,6 +610,7 @@ class UserPoolDomain(AWSObject): props: PropsDictType = { "CustomDomainConfig": (CustomDomainConfigType, False), "Domain": (str, True), + "ManagedLoginVersion": (integer, False), "UserPoolId": (str, True), } @@ -595,7 +641,7 @@ class UserPoolIdentityProvider(AWSObject): props: PropsDictType = { "AttributeMapping": (dict, False), "IdpIdentifiers": ([str], False), - "ProviderDetails": (dict, False), + "ProviderDetails": (dict, True), "ProviderName": (str, True), "ProviderType": (str, True), "UserPoolId": (str, True), diff --git a/troposphere/connect.py b/troposphere/connect.py index 8538407cb..2f8f7487d 100644 --- a/troposphere/connect.py +++ b/troposphere/connect.py @@ -77,6 +77,22 @@ class ContactFlowModule(AWSObject): } +class EmailAddress(AWSObject): + """ + `EmailAddress `__ + """ + + resource_type = "AWS::Connect::EmailAddress" + + props: PropsDictType = { + "Description": (str, False), + "DisplayName": (str, False), + "EmailAddress": (str, True), + "InstanceArn": (str, True), + "Tags": (Tags, False), + } + + class HoursOfOperationTimeSlice(AWSProperty): """ `HoursOfOperationTimeSlice `__ @@ -100,6 +116,44 @@ class HoursOfOperationConfig(AWSProperty): } +class OverrideTimeSlice(AWSProperty): + """ + `OverrideTimeSlice `__ + """ + + props: PropsDictType = { + "Hours": (integer, True), + "Minutes": (integer, True), + } + + +class HoursOfOperationOverrideConfig(AWSProperty): + """ + `HoursOfOperationOverrideConfig `__ + """ + + props: PropsDictType = { + "Day": (str, True), + "EndTime": (OverrideTimeSlice, True), + "StartTime": (OverrideTimeSlice, True), + } + + +class HoursOfOperationOverride(AWSProperty): + """ + `HoursOfOperationOverride `__ + """ + + props: PropsDictType = { + "EffectiveFrom": (str, True), + "EffectiveTill": (str, True), + "HoursOfOperationOverrideId": (str, False), + "OverrideConfig": ([HoursOfOperationOverrideConfig], True), + "OverrideDescription": (str, False), + "OverrideName": (str, True), + } + + class HoursOfOperation(AWSObject): """ `HoursOfOperation `__ @@ -110,6 +164,7 @@ class HoursOfOperation(AWSObject): props: PropsDictType = { "Config": ([HoursOfOperationConfig], True), "Description": (str, False), + "HoursOfOperationOverrides": ([HoursOfOperationOverride], False), "InstanceArn": (str, True), "Name": (str, True), "Tags": (Tags, False), @@ -306,6 +361,16 @@ class OutboundCallerConfig(AWSProperty): } +class OutboundEmailConfig(AWSProperty): + """ + `OutboundEmailConfig `__ + """ + + props: PropsDictType = { + "OutboundEmailAddressId": (str, False), + } + + class Queue(AWSObject): """ `Queue `__ @@ -320,6 +385,7 @@ class Queue(AWSObject): "MaxContacts": (integer, False), "Name": (str, True), "OutboundCallerConfig": (OutboundCallerConfig, False), + "OutboundEmailConfig": (OutboundEmailConfig, False), "QuickConnectArns": ([str], False), "Status": (str, False), "Tags": (Tags, False), @@ -724,6 +790,7 @@ class TaskTemplate(AWSObject): "Fields": ([Field], False), "InstanceArn": (str, True), "Name": (str, False), + "SelfAssignContactFlowArn": (str, False), "Status": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/customerprofiles.py b/troposphere/customerprofiles.py index 38d283432..53a6fcb55 100644 --- a/troposphere/customerprofiles.py +++ b/troposphere/customerprofiles.py @@ -437,6 +437,7 @@ class Integration(AWSObject): props: PropsDictType = { "DomainName": (str, True), + "EventTriggerNames": ([str], False), "FlowDefinition": (FlowDefinition, False), "ObjectTypeName": (str, False), "ObjectTypeNames": ([ObjectTypeMapping], False), @@ -512,6 +513,191 @@ class ObjectType(AWSObject): } +class RangeOverride(AWSProperty): + """ + `RangeOverride `__ + """ + + props: PropsDictType = { + "End": (integer, False), + "Start": (integer, True), + "Unit": (str, True), + } + + +class ConditionOverrides(AWSProperty): + """ + `ConditionOverrides `__ + """ + + props: PropsDictType = { + "Range": (RangeOverride, False), + } + + +class CalculatedAttributeDimension(AWSProperty): + """ + `CalculatedAttributeDimension `__ + """ + + props: PropsDictType = { + "ConditionOverrides": (ConditionOverrides, False), + "DimensionType": (str, True), + "Values": ([str], True), + } + + +class ProfileDimension(AWSProperty): + """ + `ProfileDimension `__ + """ + + props: PropsDictType = { + "DimensionType": (str, True), + "Values": ([str], True), + } + + +class AddressDimension(AWSProperty): + """ + `AddressDimension `__ + """ + + props: PropsDictType = { + "City": (ProfileDimension, False), + "Country": (ProfileDimension, False), + "County": (ProfileDimension, False), + "PostalCode": (ProfileDimension, False), + "Province": (ProfileDimension, False), + "State": (ProfileDimension, False), + } + + +class AttributeDimension(AWSProperty): + """ + `AttributeDimension `__ + """ + + props: PropsDictType = { + "DimensionType": (str, True), + "Values": ([str], True), + } + + +class DateDimension(AWSProperty): + """ + `DateDimension `__ + """ + + props: PropsDictType = { + "DimensionType": (str, True), + "Values": ([str], True), + } + + +class ExtraLengthValueProfileDimension(AWSProperty): + """ + `ExtraLengthValueProfileDimension `__ + """ + + props: PropsDictType = { + "DimensionType": (str, True), + "Values": ([str], True), + } + + +class ProfileAttributes(AWSProperty): + """ + `ProfileAttributes `__ + """ + + props: PropsDictType = { + "AccountNumber": (ProfileDimension, False), + "AdditionalInformation": (ExtraLengthValueProfileDimension, False), + "Address": (AddressDimension, False), + "Attributes": (dict, False), + "BillingAddress": (AddressDimension, False), + "BirthDate": (DateDimension, False), + "BusinessEmailAddress": (ProfileDimension, False), + "BusinessName": (ProfileDimension, False), + "BusinessPhoneNumber": (ProfileDimension, False), + "EmailAddress": (ProfileDimension, False), + "FirstName": (ProfileDimension, False), + "GenderString": (ProfileDimension, False), + "HomePhoneNumber": (ProfileDimension, False), + "LastName": (ProfileDimension, False), + "MailingAddress": (AddressDimension, False), + "MiddleName": (ProfileDimension, False), + "MobilePhoneNumber": (ProfileDimension, False), + "PartyTypeString": (ProfileDimension, False), + "PersonalEmailAddress": (ProfileDimension, False), + "PhoneNumber": (ProfileDimension, False), + "ShippingAddress": (AddressDimension, False), + } + + +class Dimension(AWSProperty): + """ + `Dimension `__ + """ + + props: PropsDictType = { + "CalculatedAttributes": (dict, False), + "ProfileAttributes": (ProfileAttributes, False), + } + + +class SourceSegment(AWSProperty): + """ + `SourceSegment `__ + """ + + props: PropsDictType = { + "SegmentDefinitionName": (str, False), + } + + +class Group(AWSProperty): + """ + `Group `__ + """ + + props: PropsDictType = { + "Dimensions": ([Dimension], False), + "SourceSegments": ([SourceSegment], False), + "SourceType": (str, False), + "Type": (str, False), + } + + +class SegmentGroup(AWSProperty): + """ + `SegmentGroup `__ + """ + + props: PropsDictType = { + "Groups": ([Group], False), + "Include": (str, False), + } + + +class SegmentDefinition(AWSObject): + """ + `SegmentDefinition `__ + """ + + resource_type = "AWS::CustomerProfiles::SegmentDefinition" + + props: PropsDictType = { + "Description": (str, False), + "DisplayName": (str, True), + "DomainName": (str, True), + "SegmentDefinitionName": (str, True), + "SegmentGroups": (SegmentGroup, True), + "Tags": (Tags, False), + } + + class DestinationDetails(AWSProperty): """ `DestinationDetails `__ diff --git a/troposphere/databrew.py b/troposphere/databrew.py index 1cc63a8f3..d136c14b1 100644 --- a/troposphere/databrew.py +++ b/troposphere/databrew.py @@ -186,6 +186,7 @@ class Dataset(AWSObject): "Input": (Input, True), "Name": (str, True), "PathOptions": (PathOptions, False), + "Source": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/datasync.py b/troposphere/datasync.py index 212e48f91..960e8eec8 100644 --- a/troposphere/datasync.py +++ b/troposphere/datasync.py @@ -580,6 +580,7 @@ class Task(AWSObject): "Schedule": (TaskSchedule, False), "SourceLocationArn": (str, True), "Tags": (Tags, False), + "TaskMode": (str, False), "TaskReportConfig": (TaskReportConfig, False), } diff --git a/troposphere/datazone.py b/troposphere/datazone.py index 4241c4862..d0985978e 100644 --- a/troposphere/datazone.py +++ b/troposphere/datazone.py @@ -99,6 +99,16 @@ class RedshiftRunConfigurationInput(AWSProperty): } +class SageMakerRunConfigurationInput(AWSProperty): + """ + `SageMakerRunConfigurationInput `__ + """ + + props: PropsDictType = { + "TrackingAssets": (dict, True), + } + + class DataSourceConfigurationInput(AWSProperty): """ `DataSourceConfigurationInput `__ @@ -107,6 +117,7 @@ class DataSourceConfigurationInput(AWSProperty): props: PropsDictType = { "GlueRunConfiguration": (GlueRunConfigurationInput, False), "RedshiftRunConfiguration": (RedshiftRunConfigurationInput, False), + "SageMakerRunConfiguration": (SageMakerRunConfigurationInput, False), } @@ -379,7 +390,7 @@ class SubscriptionTarget(AWSObject): "AuthorizedPrincipals": ([str], True), "DomainIdentifier": (str, True), "EnvironmentIdentifier": (str, True), - "ManageAccessRole": (str, True), + "ManageAccessRole": (str, False), "Name": (str, True), "Provider": (str, False), "SubscriptionTargetConfig": ([SubscriptionTargetForm], True), diff --git a/troposphere/deadline.py b/troposphere/deadline.py index 5c4a3a352..87d33d209 100644 --- a/troposphere/deadline.py +++ b/troposphere/deadline.py @@ -122,6 +122,28 @@ class CustomerManagedFleetConfiguration(AWSProperty): } +class AcceleratorSelection(AWSProperty): + """ + `AcceleratorSelection `__ + """ + + props: PropsDictType = { + "Name": (str, True), + "Runtime": (str, False), + } + + +class AcceleratorCapabilities(AWSProperty): + """ + `AcceleratorCapabilities `__ + """ + + props: PropsDictType = { + "Count": (AcceleratorCountRange, False), + "Selections": ([AcceleratorSelection], True), + } + + class Ec2EbsVolume(AWSProperty): """ `Ec2EbsVolume `__ @@ -140,6 +162,7 @@ class ServiceManagedEc2InstanceCapabilities(AWSProperty): """ props: PropsDictType = { + "AcceleratorCapabilities": (AcceleratorCapabilities, False), "AllowedInstanceTypes": ([str], False), "CpuArchitectureType": (str, True), "CustomAmounts": ([FleetAmountCapability], False), diff --git a/troposphere/dms.py b/troposphere/dms.py index b4a01c554..b6e3a8d76 100644 --- a/troposphere/dms.py +++ b/troposphere/dms.py @@ -28,6 +28,77 @@ class Certificate(AWSObject): } +class DataMigrationSettings(AWSProperty): + """ + `DataMigrationSettings `__ + """ + + props: PropsDictType = { + "CloudwatchLogsEnabled": (boolean, False), + "NumberOfJobs": (integer, False), + "SelectionRules": (str, False), + } + + +class SourceDataSettings(AWSProperty): + """ + `SourceDataSettings `__ + """ + + props: PropsDictType = { + "CDCStartPosition": (str, False), + "CDCStartTime": (str, False), + "CDCStopTime": (str, False), + "SlotName": (str, False), + } + + +class DataMigration(AWSObject): + """ + `DataMigration `__ + """ + + resource_type = "AWS::DMS::DataMigration" + + props: PropsDictType = { + "DataMigrationIdentifier": (str, False), + "DataMigrationName": (str, False), + "DataMigrationSettings": (DataMigrationSettings, False), + "DataMigrationType": (str, True), + "MigrationProjectIdentifier": (str, True), + "ServiceAccessRoleArn": (str, True), + "SourceDataSettings": ([SourceDataSettings], False), + "Tags": (Tags, False), + } + + +class DocDbSettings(AWSProperty): + """ + `DocDbSettings `__ + """ + + props: PropsDictType = { + "DocsToInvestigate": (integer, False), + "ExtractDocId": (boolean, False), + "NestingLevel": (str, False), + "SecretsManagerAccessRoleArn": (str, False), + "SecretsManagerSecretId": (str, False), + } + + +class MariaDbSettings(AWSProperty): + """ + `MariaDbSettings `__ + """ + + props: PropsDictType = { + "CertificateArn": (str, False), + "Port": (integer, True), + "ServerName": (str, True), + "SslMode": (str, True), + } + + class MicrosoftSqlServerSettings(AWSProperty): """ `MicrosoftSqlServerSettings `__ @@ -54,6 +125,28 @@ class MicrosoftSqlServerSettings(AWSProperty): } +class MongoDbSettings(AWSProperty): + """ + `MongoDbSettings `__ + """ + + props: PropsDictType = { + "AuthMechanism": (str, False), + "AuthSource": (str, False), + "AuthType": (str, False), + "DatabaseName": (str, False), + "DocsToInvestigate": (str, False), + "ExtractDocId": (str, False), + "NestingLevel": (str, False), + "Password": (str, False), + "Port": (validate_network_port, False), + "SecretsManagerAccessRoleArn": (str, False), + "SecretsManagerSecretId": (str, False), + "ServerName": (str, False), + "Username": (str, False), + } + + class MySqlSettings(AWSProperty): """ `MySqlSettings `__ @@ -141,16 +234,55 @@ class PostgreSqlSettings(AWSProperty): } +class RedshiftSettings(AWSProperty): + """ + `RedshiftSettings `__ + """ + + props: PropsDictType = { + "AcceptAnyDate": (boolean, False), + "AfterConnectScript": (str, False), + "BucketFolder": (str, False), + "BucketName": (str, False), + "CaseSensitiveNames": (boolean, False), + "CompUpdate": (boolean, False), + "ConnectionTimeout": (integer, False), + "DateFormat": (str, False), + "EmptyAsNull": (boolean, False), + "EncryptionMode": (str, False), + "ExplicitIds": (boolean, False), + "FileTransferUploadStreams": (integer, False), + "LoadTimeout": (integer, False), + "MapBooleanAsBoolean": (boolean, False), + "MaxFileSize": (integer, False), + "RemoveQuotes": (boolean, False), + "ReplaceChars": (str, False), + "ReplaceInvalidChars": (str, False), + "SecretsManagerAccessRoleArn": (str, False), + "SecretsManagerSecretId": (str, False), + "ServerSideEncryptionKmsKeyId": (str, False), + "ServiceAccessRoleArn": (str, False), + "TimeFormat": (str, False), + "TrimBlanks": (boolean, False), + "TruncateColumns": (boolean, False), + "WriteBufferSize": (integer, False), + } + + class Settings(AWSProperty): """ `Settings `__ """ props: PropsDictType = { + "DocDbSettings": (DocDbSettings, False), + "MariaDbSettings": (MariaDbSettings, False), "MicrosoftSqlServerSettings": (MicrosoftSqlServerSettings, False), + "MongoDbSettings": (MongoDbSettings, False), "MySqlSettings": (MySqlSettings, False), "OracleSettings": (OracleSettings, False), "PostgreSqlSettings": (PostgreSqlSettings, False), + "RedshiftSettings": (RedshiftSettings, False), } @@ -172,20 +304,6 @@ class DataProvider(AWSObject): } -class DocDbSettings(AWSProperty): - """ - `DocDbSettings `__ - """ - - props: PropsDictType = { - "DocsToInvestigate": (integer, False), - "ExtractDocId": (boolean, False), - "NestingLevel": (str, False), - "SecretsManagerAccessRoleArn": (str, False), - "SecretsManagerSecretId": (str, False), - } - - class DynamoDbSettings(AWSProperty): """ `DynamoDbSettings `__ @@ -295,28 +413,6 @@ class KinesisSettings(AWSProperty): } -class MongoDbSettings(AWSProperty): - """ - `MongoDbSettings `__ - """ - - props: PropsDictType = { - "AuthMechanism": (str, False), - "AuthSource": (str, False), - "AuthType": (str, False), - "DatabaseName": (str, False), - "DocsToInvestigate": (str, False), - "ExtractDocId": (str, False), - "NestingLevel": (str, False), - "Password": (str, False), - "Port": (validate_network_port, False), - "SecretsManagerAccessRoleArn": (str, False), - "SecretsManagerSecretId": (str, False), - "ServerName": (str, False), - "Username": (str, False), - } - - class NeptuneSettings(AWSProperty): """ `NeptuneSettings `__ @@ -349,41 +445,6 @@ class RedisSettings(AWSProperty): } -class RedshiftSettings(AWSProperty): - """ - `RedshiftSettings `__ - """ - - props: PropsDictType = { - "AcceptAnyDate": (boolean, False), - "AfterConnectScript": (str, False), - "BucketFolder": (str, False), - "BucketName": (str, False), - "CaseSensitiveNames": (boolean, False), - "CompUpdate": (boolean, False), - "ConnectionTimeout": (integer, False), - "DateFormat": (str, False), - "EmptyAsNull": (boolean, False), - "EncryptionMode": (str, False), - "ExplicitIds": (boolean, False), - "FileTransferUploadStreams": (integer, False), - "LoadTimeout": (integer, False), - "MapBooleanAsBoolean": (boolean, False), - "MaxFileSize": (integer, False), - "RemoveQuotes": (boolean, False), - "ReplaceChars": (str, False), - "ReplaceInvalidChars": (str, False), - "SecretsManagerAccessRoleArn": (str, False), - "SecretsManagerSecretId": (str, False), - "ServerSideEncryptionKmsKeyId": (str, False), - "ServiceAccessRoleArn": (str, False), - "TimeFormat": (str, False), - "TrimBlanks": (boolean, False), - "TruncateColumns": (boolean, False), - "WriteBufferSize": (integer, False), - } - - class S3Settings(AWSProperty): """ `S3Settings `__ diff --git a/troposphere/docdb.py b/troposphere/docdb.py index 1a05eb231..90c737bda 100644 --- a/troposphere/docdb.py +++ b/troposphere/docdb.py @@ -6,8 +6,19 @@ # *** Do not modify - this file is autogenerated *** -from . import AWSObject, PropsDictType, Tags -from .validators import boolean, integer +from . import AWSObject, AWSProperty, PropsDictType, Tags +from .validators import boolean, double, integer + + +class ServerlessV2ScalingConfiguration(AWSProperty): + """ + `ServerlessV2ScalingConfiguration `__ + """ + + props: PropsDictType = { + "MaxCapacity": (double, True), + "MinCapacity": (double, True), + } class DBCluster(AWSObject): @@ -28,13 +39,17 @@ class DBCluster(AWSObject): "EnableCloudwatchLogsExports": ([str], False), "EngineVersion": (str, False), "KmsKeyId": (str, False), + "ManageMasterUserPassword": (boolean, False), "MasterUserPassword": (str, False), + "MasterUserSecretKmsKeyId": (str, False), "MasterUsername": (str, False), "Port": (integer, False), "PreferredBackupWindow": (str, False), "PreferredMaintenanceWindow": (str, False), "RestoreToTime": (str, False), "RestoreType": (str, False), + "RotateMasterUserPassword": (boolean, False), + "ServerlessV2ScalingConfiguration": (ServerlessV2ScalingConfiguration, False), "SnapshotIdentifier": (str, False), "SourceDBClusterIdentifier": (str, False), "StorageEncrypted": (boolean, False), diff --git a/troposphere/dynamodb.py b/troposphere/dynamodb.py index cb6b37129..7cf3d2551 100644 --- a/troposphere/dynamodb.py +++ b/troposphere/dynamodb.py @@ -51,6 +51,17 @@ class Projection(AWSProperty): } +class WarmThroughput(AWSProperty): + """ + `WarmThroughput `__ + """ + + props: PropsDictType = { + "ReadUnitsPerSecond": (integer, False), + "WriteUnitsPerSecond": (integer, False), + } + + class WriteOnDemandThroughputSettings(AWSProperty): """ `WriteOnDemandThroughputSettings `__ @@ -109,6 +120,7 @@ class GlobalTableGlobalSecondaryIndex(AWSProperty): "IndexName": (str, True), "KeySchema": ([KeySchema], True), "Projection": (Projection, True), + "WarmThroughput": (WarmThroughput, False), "WriteOnDemandThroughputSettings": (WriteOnDemandThroughputSettings, False), "WriteProvisionedThroughputSettings": ( WriteProvisionedThroughputSettings, @@ -140,34 +152,35 @@ class LocalSecondaryIndex(AWSProperty): } -class ContributorInsightsSpecification(AWSProperty): +class PointInTimeRecoverySpecification(AWSProperty): """ - `ContributorInsightsSpecification `__ + `PointInTimeRecoverySpecification `__ """ props: PropsDictType = { - "Enabled": (boolean, True), + "PointInTimeRecoveryEnabled": (boolean, False), + "RecoveryPeriodInDays": (integer, False), } -class KinesisStreamSpecification(AWSProperty): +class ContributorInsightsSpecification(AWSProperty): """ - `KinesisStreamSpecification `__ + `ContributorInsightsSpecification `__ """ props: PropsDictType = { - "ApproximateCreationDateTimePrecision": (str, False), - "StreamArn": (str, True), + "Enabled": (boolean, True), } -class PointInTimeRecoverySpecification(AWSProperty): +class KinesisStreamSpecification(AWSProperty): """ - `PointInTimeRecoverySpecification `__ + `KinesisStreamSpecification `__ """ props: PropsDictType = { - "PointInTimeRecoveryEnabled": (boolean, False), + "ApproximateCreationDateTimePrecision": (str, False), + "StreamArn": (str, True), } @@ -292,11 +305,13 @@ class GlobalTable(AWSObject): "GlobalSecondaryIndexes": ([GlobalTableGlobalSecondaryIndex], False), "KeySchema": ([KeySchema], True), "LocalSecondaryIndexes": ([LocalSecondaryIndex], False), + "PointInTimeRecoverySpecification": (PointInTimeRecoverySpecification, False), "Replicas": ([ReplicaSpecification], True), "SSESpecification": (GlobalTableSSESpecification, False), "StreamSpecification": (StreamSpecification, False), "TableName": (str, False), "TimeToLiveSpecification": (TimeToLiveSpecification, False), + "WarmThroughput": (WarmThroughput, False), "WriteOnDemandThroughputSettings": (WriteOnDemandThroughputSettings, False), "WriteProvisionedThroughputSettings": ( WriteProvisionedThroughputSettings, @@ -339,6 +354,7 @@ class GlobalSecondaryIndex(AWSProperty): "OnDemandThroughput": (OnDemandThroughput, False), "Projection": (Projection, True), "ProvisionedThroughput": (ProvisionedThroughput, False), + "WarmThroughput": (WarmThroughput, False), } @@ -427,6 +443,7 @@ class Table(AWSObject): "TableName": (str, False), "Tags": (Tags, False), "TimeToLiveSpecification": (TimeToLiveSpecification, False), + "WarmThroughput": (WarmThroughput, False), } def validate(self): diff --git a/troposphere/ec2.py b/troposphere/ec2.py index b6af235a4..7025729dc 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -70,6 +70,7 @@ class CapacityReservation(AWSObject): "PlacementGroupArn": (str, False), "TagSpecifications": ([TagSpecifications], False), "Tenancy": (str, False), + "UnusedReservationBillingOwnerId": (str, False), } @@ -340,6 +341,36 @@ class BaselineEbsBandwidthMbpsRequest(AWSProperty): } +class PerformanceFactorReferenceRequest(AWSProperty): + """ + `PerformanceFactorReferenceRequest `__ + """ + + props: PropsDictType = { + "InstanceFamily": (str, False), + } + + +class CpuPerformanceFactorRequest(AWSProperty): + """ + `CpuPerformanceFactorRequest `__ + """ + + props: PropsDictType = { + "References": ([PerformanceFactorReferenceRequest], False), + } + + +class BaselinePerformanceFactorsRequest(AWSProperty): + """ + `BaselinePerformanceFactorsRequest `__ + """ + + props: PropsDictType = { + "Cpu": (CpuPerformanceFactorRequest, False), + } + + class MemoryGiBPerVCpuRequest(AWSProperty): """ `MemoryGiBPerVCpuRequest `__ @@ -420,6 +451,7 @@ class InstanceRequirementsRequest(AWSProperty): "AllowedInstanceTypes": ([str], False), "BareMetal": (str, False), "BaselineEbsBandwidthMbps": (BaselineEbsBandwidthMbpsRequest, False), + "BaselinePerformanceFactors": (BaselinePerformanceFactorsRequest, False), "BurstablePerformance": (str, False), "CpuManufacturers": ([str], False), "ExcludedInstanceTypes": ([str], False), @@ -605,8 +637,10 @@ class EIP(AWSObject): resource_type = "AWS::EC2::EIP" props: PropsDictType = { + "Address": (str, False), "Domain": (str, False), "InstanceId": (str, False), + "IpamPoolId": (str, False), "NetworkBorderGroup": (str, False), "PublicIpv4Pool": (str, False), "Tags": (Tags, False), @@ -1246,6 +1280,36 @@ class BaselineEbsBandwidthMbps(AWSProperty): } +class Reference(AWSProperty): + """ + `Reference `__ + """ + + props: PropsDictType = { + "InstanceFamily": (str, False), + } + + +class Cpu(AWSProperty): + """ + `Cpu `__ + """ + + props: PropsDictType = { + "References": ([Reference], False), + } + + +class BaselinePerformanceFactors(AWSProperty): + """ + `BaselinePerformanceFactors `__ + """ + + props: PropsDictType = { + "Cpu": (Cpu, False), + } + + class MemoryGiBPerVCpu(AWSProperty): """ `MemoryGiBPerVCpu `__ @@ -1326,6 +1390,7 @@ class InstanceRequirements(AWSProperty): "AllowedInstanceTypes": ([str], False), "BareMetal": (str, False), "BaselineEbsBandwidthMbps": (BaselineEbsBandwidthMbps, False), + "BaselinePerformanceFactors": (BaselinePerformanceFactors, False), "BurstablePerformance": (str, False), "CpuManufacturers": ([str], False), "ExcludedInstanceTypes": ([str], False), @@ -1540,6 +1605,7 @@ class LaunchTemplateData(AWSProperty): "MetadataOptions": (MetadataOptions, False), "Monitoring": (Monitoring, False), "NetworkInterfaces": ([NetworkInterfaces], False), + "NetworkPerformanceOptions": (dict, False), "Placement": (Placement, False), "PrivateDnsNameOptions": (PrivateDnsNameOptions, False), "RamDiskId": (str, False), @@ -2068,6 +2134,19 @@ def validate(self): validate_security_group_ingress(self) +class SecurityGroupVpcAssociation(AWSObject): + """ + `SecurityGroupVpcAssociation `__ + """ + + resource_type = "AWS::EC2::SecurityGroupVpcAssociation" + + props: PropsDictType = { + "GroupId": (str, True), + "VpcId": (str, True), + } + + class SnapshotBlockPublicAccess(AWSObject): """ `SnapshotBlockPublicAccess `__ @@ -2745,6 +2824,33 @@ class VPC(AWSObject): } +class VPCBlockPublicAccessExclusion(AWSObject): + """ + `VPCBlockPublicAccessExclusion `__ + """ + + resource_type = "AWS::EC2::VPCBlockPublicAccessExclusion" + + props: PropsDictType = { + "InternetGatewayExclusionMode": (str, True), + "SubnetId": (str, False), + "Tags": (Tags, False), + "VpcId": (str, False), + } + + +class VPCBlockPublicAccessOptions(AWSObject): + """ + `VPCBlockPublicAccessOptions `__ + """ + + resource_type = "AWS::EC2::VPCBlockPublicAccessOptions" + + props: PropsDictType = { + "InternetGatewayBlockMode": (str, True), + } + + class VPCCidrBlock(AWSObject): """ `VPCCidrBlock `__ @@ -2758,6 +2864,7 @@ class VPCCidrBlock(AWSObject): "Ipv4IpamPoolId": (str, False), "Ipv4NetmaskLength": (integer, False), "Ipv6CidrBlock": (str, False), + "Ipv6CidrBlockNetworkBorderGroup": (str, False), "Ipv6IpamPoolId": (str, False), "Ipv6NetmaskLength": (integer, False), "Ipv6Pool": (str, False), @@ -2778,6 +2885,17 @@ class VPCDHCPOptionsAssociation(AWSObject): } +class DnsOptionsSpecification(AWSProperty): + """ + `DnsOptionsSpecification `__ + """ + + props: PropsDictType = { + "DnsRecordIpType": (str, False), + "PrivateDnsOnlyForInboundResolverEndpoint": (str, False), + } + + class VPCEndpoint(AWSObject): """ `VPCEndpoint `__ @@ -2786,12 +2904,17 @@ class VPCEndpoint(AWSObject): resource_type = "AWS::EC2::VPCEndpoint" props: PropsDictType = { + "DnsOptions": (DnsOptionsSpecification, False), + "IpAddressType": (str, False), "PolicyDocument": (policytypes, False), "PrivateDnsEnabled": (boolean, False), + "ResourceConfigurationArn": (str, False), "RouteTableIds": ([str], False), "SecurityGroupIds": ([str], False), - "ServiceName": (str, True), + "ServiceName": (str, False), + "ServiceNetworkArn": (str, False), "SubnetIds": ([str], False), + "Tags": (Tags, False), "VpcEndpointType": (vpc_endpoint_type, False), "VpcId": (str, True), } @@ -2825,6 +2948,7 @@ class VPCEndpointService(AWSObject): "GatewayLoadBalancerArns": ([str], False), "NetworkLoadBalancerArns": ([str], False), "PayerResponsibility": (str, False), + "Tags": (Tags, False), } @@ -2872,14 +2996,136 @@ class VPCPeeringConnection(AWSObject): } +class IKEVersionsRequestListValue(AWSProperty): + """ + `IKEVersionsRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (str, False), + } + + +class Phase1DHGroupNumbersRequestListValue(AWSProperty): + """ + `Phase1DHGroupNumbersRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (integer, False), + } + + +class Phase1EncryptionAlgorithmsRequestListValue(AWSProperty): + """ + `Phase1EncryptionAlgorithmsRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (str, False), + } + + +class Phase1IntegrityAlgorithmsRequestListValue(AWSProperty): + """ + `Phase1IntegrityAlgorithmsRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (str, False), + } + + +class Phase2DHGroupNumbersRequestListValue(AWSProperty): + """ + `Phase2DHGroupNumbersRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (integer, False), + } + + +class Phase2EncryptionAlgorithmsRequestListValue(AWSProperty): + """ + `Phase2EncryptionAlgorithmsRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (str, False), + } + + +class Phase2IntegrityAlgorithmsRequestListValue(AWSProperty): + """ + `Phase2IntegrityAlgorithmsRequestListValue `__ + """ + + props: PropsDictType = { + "Value": (str, False), + } + + +class CloudwatchLogOptionsSpecification(AWSProperty): + """ + `CloudwatchLogOptionsSpecification `__ + """ + + props: PropsDictType = { + "LogEnabled": (boolean, False), + "LogGroupArn": (str, False), + "LogOutputFormat": (str, False), + } + + +class VpnTunnelLogOptionsSpecification(AWSProperty): + """ + `VpnTunnelLogOptionsSpecification `__ + """ + + props: PropsDictType = { + "CloudwatchLogOptions": (CloudwatchLogOptionsSpecification, False), + } + + class VpnTunnelOptionsSpecification(AWSProperty): """ `VpnTunnelOptionsSpecification `__ """ props: PropsDictType = { + "DPDTimeoutAction": (str, False), + "DPDTimeoutSeconds": (integer, False), + "EnableTunnelLifecycleControl": (boolean, False), + "IKEVersions": ([IKEVersionsRequestListValue], False), + "LogOptions": (VpnTunnelLogOptionsSpecification, False), + "Phase1DHGroupNumbers": ([Phase1DHGroupNumbersRequestListValue], False), + "Phase1EncryptionAlgorithms": ( + [Phase1EncryptionAlgorithmsRequestListValue], + False, + ), + "Phase1IntegrityAlgorithms": ( + [Phase1IntegrityAlgorithmsRequestListValue], + False, + ), + "Phase1LifetimeSeconds": (integer, False), + "Phase2DHGroupNumbers": ([Phase2DHGroupNumbersRequestListValue], False), + "Phase2EncryptionAlgorithms": ( + [Phase2EncryptionAlgorithmsRequestListValue], + False, + ), + "Phase2IntegrityAlgorithms": ( + [Phase2IntegrityAlgorithmsRequestListValue], + False, + ), + "Phase2LifetimeSeconds": (integer, False), "PreSharedKey": (vpn_pre_shared_key, False), + "RekeyFuzzPercentage": (integer, False), + "RekeyMarginTimeSeconds": (integer, False), + "ReplayWindowSize": (integer, False), + "StartupAction": (str, False), "TunnelInsideCidr": (vpn_tunnel_inside_cidr, False), + "TunnelInsideIpv6Cidr": (str, False), } diff --git a/troposphere/ecs.py b/troposphere/ecs.py index 360412090..43b78c104 100644 --- a/troposphere/ecs.py +++ b/troposphere/ecs.py @@ -65,7 +65,7 @@ class CapacityProvider(AWSObject): resource_type = "AWS::ECS::CapacityProvider" props: PropsDictType = { - "AutoScalingGroupProvider": (AutoScalingGroupProvider, True), + "AutoScalingGroupProvider": (AutoScalingGroupProvider, False), "Name": (str, False), "Tags": (Tags, False), } @@ -73,7 +73,7 @@ class CapacityProvider(AWSObject): class CapacityProviderStrategyItem(AWSProperty): """ - `CapacityProviderStrategyItem `__ + `CapacityProviderStrategyItem `__ """ props: PropsDictType = { @@ -463,6 +463,18 @@ class ServiceVolumeConfiguration(AWSProperty): } +class VpcLatticeConfiguration(AWSProperty): + """ + `VpcLatticeConfiguration `__ + """ + + props: PropsDictType = { + "PortName": (str, True), + "RoleArn": (str, True), + "TargetGroupArn": (str, True), + } + + class Service(AWSObject): """ `Service `__ @@ -471,6 +483,7 @@ class Service(AWSObject): resource_type = "AWS::ECS::Service" props: PropsDictType = { + "AvailabilityZoneRebalancing": (str, False), "CapacityProviderStrategy": ([CapacityProviderStrategyItem], False), "Cluster": (str, False), "DeploymentConfiguration": (DeploymentConfiguration, False), @@ -494,6 +507,7 @@ class Service(AWSObject): "Tags": (Tags, False), "TaskDefinition": (str, False), "VolumeConfigurations": ([ServiceVolumeConfiguration], False), + "VpcLatticeConfigurations": ([VpcLatticeConfiguration], False), } @@ -756,6 +770,7 @@ class ContainerDefinition(AWSProperty): "SystemControls": ([SystemControl], False), "Ulimits": ([Ulimit], False), "User": (str, False), + "VersionConsistency": (str, False), "VolumesFrom": ([VolumesFrom], False), "WorkingDirectory": (str, False), } @@ -908,6 +923,7 @@ class TaskDefinition(AWSObject): props: PropsDictType = { "ContainerDefinitions": ([ContainerDefinition], False), "Cpu": (str, False), + "EnableFaultInjection": (boolean, False), "EphemeralStorage": (EphemeralStorage, False), "ExecutionRoleArn": (str, False), "Family": (str, False), @@ -945,6 +961,7 @@ class TaskSet(AWSObject): resource_type = "AWS::ECS::TaskSet" props: PropsDictType = { + "CapacityProviderStrategy": ([CapacityProviderStrategyItem], False), "Cluster": (str, True), "ExternalId": (str, False), "LaunchType": (str, False), diff --git a/troposphere/efs.py b/troposphere/efs.py index 4e5130af0..4d61575ad 100644 --- a/troposphere/efs.py +++ b/troposphere/efs.py @@ -114,6 +114,9 @@ class ReplicationDestination(AWSProperty): "FileSystemId": (str, False), "KmsKeyId": (str, False), "Region": (str, False), + "RoleArn": (str, False), + "Status": (str, False), + "StatusMessage": (str, False), } diff --git a/troposphere/eks.py b/troposphere/eks.py index 1a41c5caa..94983f1a7 100644 --- a/troposphere/eks.py +++ b/troposphere/eks.py @@ -99,6 +99,18 @@ class AccessConfig(AWSProperty): } +class ComputeConfig(AWSProperty): + """ + `ComputeConfig `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + "NodePools": ([str], False), + "NodeRoleArn": (str, False), + } + + class Provider(AWSProperty): """ `Provider `__ @@ -120,12 +132,23 @@ class EncryptionConfig(AWSProperty): } +class ElasticLoadBalancing(AWSProperty): + """ + `ElasticLoadBalancing `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + } + + class KubernetesNetworkConfig(AWSProperty): """ `KubernetesNetworkConfig `__ """ props: PropsDictType = { + "ElasticLoadBalancing": (ElasticLoadBalancing, False), "IpFamily": (str, False), "ServiceIpv4Cidr": (str, False), "ServiceIpv6Cidr": (str, False), @@ -187,6 +210,37 @@ class OutpostConfig(AWSProperty): } +class RemoteNodeNetwork(AWSProperty): + """ + `RemoteNodeNetwork `__ + """ + + props: PropsDictType = { + "Cidrs": ([str], True), + } + + +class RemotePodNetwork(AWSProperty): + """ + `RemotePodNetwork `__ + """ + + props: PropsDictType = { + "Cidrs": ([str], True), + } + + +class RemoteNetworkConfig(AWSProperty): + """ + `RemoteNetworkConfig `__ + """ + + props: PropsDictType = { + "RemoteNodeNetworks": ([RemoteNodeNetwork], True), + "RemotePodNetworks": ([RemotePodNetwork], False), + } + + class ResourcesVpcConfig(AWSProperty): """ `ResourcesVpcConfig `__ @@ -201,6 +255,26 @@ class ResourcesVpcConfig(AWSProperty): } +class BlockStorage(AWSProperty): + """ + `BlockStorage `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + } + + +class StorageConfig(AWSProperty): + """ + `StorageConfig `__ + """ + + props: PropsDictType = { + "BlockStorage": (BlockStorage, False), + } + + class UpgradePolicy(AWSProperty): """ `UpgradePolicy `__ @@ -231,13 +305,16 @@ class Cluster(AWSObject): props: PropsDictType = { "AccessConfig": (AccessConfig, False), "BootstrapSelfManagedAddons": (boolean, False), + "ComputeConfig": (ComputeConfig, False), "EncryptionConfig": ([EncryptionConfig], False), "KubernetesNetworkConfig": (KubernetesNetworkConfig, False), "Logging": (Logging, False), "Name": (str, False), "OutpostConfig": (OutpostConfig, False), + "RemoteNetworkConfig": (RemoteNetworkConfig, False), "ResourcesVpcConfig": (ResourcesVpcConfig, True), "RoleArn": (str, True), + "StorageConfig": (StorageConfig, False), "Tags": (Tags, False), "UpgradePolicy": (UpgradePolicy, False), "Version": (str, False), @@ -339,6 +416,16 @@ class LaunchTemplateSpecification(AWSProperty): } +class NodeRepairConfig(AWSProperty): + """ + `NodeRepairConfig `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + } + + class RemoteAccess(AWSProperty): """ `RemoteAccess `__ @@ -401,6 +488,7 @@ class Nodegroup(AWSObject): "InstanceTypes": ([str], False), "Labels": (dict, False), "LaunchTemplate": (LaunchTemplateSpecification, False), + "NodeRepairConfig": (NodeRepairConfig, False), "NodeRole": (str, True), "NodegroupName": (str, False), "ReleaseVersion": (str, False), diff --git a/troposphere/elasticache.py b/troposphere/elasticache.py index c6365796e..ae8205c2e 100644 --- a/troposphere/elasticache.py +++ b/troposphere/elasticache.py @@ -145,6 +145,7 @@ class GlobalReplicationGroup(AWSObject): "AutomaticFailoverEnabled": (boolean, False), "CacheNodeType": (str, False), "CacheParameterGroupName": (str, False), + "Engine": (str, False), "EngineVersion": (str, False), "GlobalNodeGroupCount": (integer, False), "GlobalReplicationGroupDescription": (str, False), diff --git a/troposphere/elasticloadbalancingv2.py b/troposphere/elasticloadbalancingv2.py index 421b95475..a6bd65df8 100644 --- a/troposphere/elasticloadbalancingv2.py +++ b/troposphere/elasticloadbalancingv2.py @@ -177,6 +177,7 @@ class MutualAuthentication(AWSProperty): """ props: PropsDictType = { + "AdvertiseTrustStoreCaNames": (str, False), "IgnoreClientCertificateExpiry": (boolean, False), "Mode": (str, False), "TrustStoreArn": (str, False), @@ -369,6 +370,16 @@ class LoadBalancerAttributes(AWSProperty): } +class MinimumLoadBalancerCapacity(AWSProperty): + """ + `MinimumLoadBalancerCapacity `__ + """ + + props: PropsDictType = { + "CapacityUnits": (integer, True), + } + + class SubnetMapping(AWSProperty): """ `SubnetMapping `__ @@ -378,6 +389,7 @@ class SubnetMapping(AWSProperty): "AllocationId": (str, False), "IPv6Address": (str, False), "PrivateIPv4Address": (str, False), + "SourceNatIpv6Prefix": (str, False), "SubnetId": (str, True), } @@ -390,9 +402,11 @@ class LoadBalancer(AWSObject): resource_type = "AWS::ElasticLoadBalancingV2::LoadBalancer" props: PropsDictType = { + "EnablePrefixForIpv6SourceNat": (str, False), "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": (str, False), "IpAddressType": (str, False), "LoadBalancerAttributes": ([LoadBalancerAttributes], False), + "MinimumLoadBalancerCapacity": (MinimumLoadBalancerCapacity, False), "Name": (validate_elb_name, False), "Scheme": (str, False), "SecurityGroups": ([str], False), diff --git a/troposphere/emrserverless.py b/troposphere/emrserverless.py index 74f5fb226..e2fac955e 100644 --- a/troposphere/emrserverless.py +++ b/troposphere/emrserverless.py @@ -183,6 +183,17 @@ class NetworkConfiguration(AWSProperty): } +class SchedulerConfiguration(AWSProperty): + """ + `SchedulerConfiguration `__ + """ + + props: PropsDictType = { + "MaxConcurrentRuns": (integer, False), + "QueueTimeoutMinutes": (integer, False), + } + + class WorkerTypeSpecificationInput(AWSProperty): """ `WorkerTypeSpecificationInput `__ @@ -213,6 +224,7 @@ class Application(AWSObject): "NetworkConfiguration": (NetworkConfiguration, False), "ReleaseLabel": (str, True), "RuntimeConfiguration": ([ConfigurationObject], False), + "SchedulerConfiguration": (SchedulerConfiguration, False), "Tags": (Tags, False), "Type": (str, True), "WorkerTypeSpecifications": (dict, False), diff --git a/troposphere/events.py b/troposphere/events.py index fa2a438c5..04c24c64b 100644 --- a/troposphere/events.py +++ b/troposphere/events.py @@ -89,6 +89,27 @@ class ConnectionHttpParameters(AWSProperty): } +class ResourceParameters(AWSProperty): + """ + `ResourceParameters `__ + """ + + props: PropsDictType = { + "ResourceAssociationArn": (str, False), + "ResourceConfigurationArn": (str, True), + } + + +class ConnectivityParameters(AWSProperty): + """ + `ConnectivityParameters `__ + """ + + props: PropsDictType = { + "ResourceParameters": (ResourceParameters, True), + } + + class ClientParameters(AWSProperty): """ `ClientParameters `__ @@ -121,11 +142,22 @@ class AuthParameters(AWSProperty): props: PropsDictType = { "ApiKeyAuthParameters": (ApiKeyAuthParameters, False), "BasicAuthParameters": (BasicAuthParameters, False), + "ConnectivityParameters": (ConnectivityParameters, False), "InvocationHttpParameters": (ConnectionHttpParameters, False), "OAuthParameters": (OAuthParameters, False), } +class InvocationConnectivityParameters(AWSProperty): + """ + `InvocationConnectivityParameters `__ + """ + + props: PropsDictType = { + "ResourceParameters": (ResourceParameters, True), + } + + class Connection(AWSObject): """ `Connection `__ @@ -137,6 +169,7 @@ class Connection(AWSObject): "AuthParameters": (AuthParameters, False), "AuthorizationType": (str, False), "Description": (str, False), + "InvocationConnectivityParameters": (InvocationConnectivityParameters, False), "Name": (str, False), } diff --git a/troposphere/firehose.py b/troposphere/firehose.py index 8c9ebb3f1..7880f20db 100644 --- a/troposphere/firehose.py +++ b/troposphere/firehose.py @@ -217,6 +217,96 @@ class AmazonopensearchserviceDestinationConfiguration(AWSProperty): } +class DatabaseColumns(AWSProperty): + """ + `DatabaseColumns `__ + """ + + props: PropsDictType = { + "Exclude": ([str], False), + "Include": ([str], False), + } + + +class SecretsManagerConfiguration(AWSProperty): + """ + `SecretsManagerConfiguration `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, True), + "RoleARN": (str, False), + "SecretARN": (str, False), + } + + +class DatabaseSourceAuthenticationConfiguration(AWSProperty): + """ + `DatabaseSourceAuthenticationConfiguration `__ + """ + + props: PropsDictType = { + "SecretsManagerConfiguration": (SecretsManagerConfiguration, True), + } + + +class DatabaseSourceVPCConfiguration(AWSProperty): + """ + `DatabaseSourceVPCConfiguration `__ + """ + + props: PropsDictType = { + "VpcEndpointServiceName": (str, True), + } + + +class DatabaseTables(AWSProperty): + """ + `DatabaseTables `__ + """ + + props: PropsDictType = { + "Exclude": ([str], False), + "Include": ([str], False), + } + + +class Databases(AWSProperty): + """ + `Databases `__ + """ + + props: PropsDictType = { + "Exclude": ([str], False), + "Include": ([str], False), + } + + +class DatabaseSourceConfiguration(AWSProperty): + """ + `DatabaseSourceConfiguration `__ + """ + + props: PropsDictType = { + "Columns": (DatabaseColumns, False), + "DatabaseSourceAuthenticationConfiguration": ( + DatabaseSourceAuthenticationConfiguration, + True, + ), + "DatabaseSourceVPCConfiguration": (DatabaseSourceVPCConfiguration, True), + "Databases": (Databases, True), + "Digest": (str, False), + "Endpoint": (str, True), + "Port": (integer, True), + "PublicCertificate": (str, False), + "SSLMode": (str, False), + "SnapshotWatermarkTable": (str, True), + "SurrogateKeys": ([str], False), + "Tables": (DatabaseTables, True), + "Type": (str, True), + } + + class DeliveryStreamEncryptionConfigurationInput(AWSProperty): """ `DeliveryStreamEncryptionConfigurationInput `__ @@ -473,18 +563,6 @@ class HttpEndpointRequestConfiguration(AWSProperty): } -class SecretsManagerConfiguration(AWSProperty): - """ - `SecretsManagerConfiguration `__ - """ - - props: PropsDictType = { - "Enabled": (boolean, True), - "RoleARN": (str, False), - "SecretARN": (str, False), - } - - class HttpEndpointDestinationConfiguration(AWSProperty): """ `HttpEndpointDestinationConfiguration `__ @@ -751,6 +829,7 @@ class DeliveryStream(AWSObject): AmazonopensearchserviceDestinationConfiguration, False, ), + "DatabaseSourceConfiguration": (DatabaseSourceConfiguration, False), "DeliveryStreamEncryptionConfigurationInput": ( DeliveryStreamEncryptionConfigurationInput, False, diff --git a/troposphere/fis.py b/troposphere/fis.py index 65e6a07ec..465fadce0 100644 --- a/troposphere/fis.py +++ b/troposphere/fis.py @@ -35,6 +35,60 @@ class ExperimentTemplateExperimentOptions(AWSProperty): } +class CloudWatchDashboard(AWSProperty): + """ + `CloudWatchDashboard `__ + """ + + props: PropsDictType = { + "DashboardIdentifier": (str, True), + } + + +class DataSources(AWSProperty): + """ + `DataSources `__ + """ + + props: PropsDictType = { + "CloudWatchDashboards": ([CloudWatchDashboard], False), + } + + +class ExperimentReportS3Configuration(AWSProperty): + """ + `ExperimentReportS3Configuration `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + "Prefix": (str, False), + } + + +class Outputs(AWSProperty): + """ + `Outputs `__ + """ + + props: PropsDictType = { + "ExperimentReportS3Configuration": (ExperimentReportS3Configuration, True), + } + + +class ExperimentTemplateExperimentReportConfiguration(AWSProperty): + """ + `ExperimentTemplateExperimentReportConfiguration `__ + """ + + props: PropsDictType = { + "DataSources": (DataSources, False), + "Outputs": (Outputs, True), + "PostExperimentDuration": (str, False), + "PreExperimentDuration": (str, False), + } + + class CloudWatchLogsConfiguration(AWSProperty): """ `CloudWatchLogsConfiguration `__ @@ -116,6 +170,10 @@ class ExperimentTemplate(AWSObject): "Actions": (dict, False), "Description": (str, True), "ExperimentOptions": (ExperimentTemplateExperimentOptions, False), + "ExperimentReportConfiguration": ( + ExperimentTemplateExperimentReportConfiguration, + False, + ), "LogConfiguration": (ExperimentTemplateLogConfiguration, False), "RoleArn": (str, True), "StopConditions": ([ExperimentTemplateStopCondition], True), diff --git a/troposphere/fsx.py b/troposphere/fsx.py index c4c28b51a..7ce53e3f4 100644 --- a/troposphere/fsx.py +++ b/troposphere/fsx.py @@ -89,6 +89,7 @@ class LustreConfiguration(AWSProperty): "DataCompressionType": (str, False), "DeploymentType": (validate_lustreconfiguration_deploymenttype, False), "DriveCacheType": (str, False), + "EfaEnabled": (boolean, False), "ExportPath": (str, False), "ImportPath": (str, False), "ImportedFileChunkSize": (integer, False), @@ -136,6 +137,17 @@ class OntapConfiguration(AWSProperty): } +class ReadCacheConfiguration(AWSProperty): + """ + `ReadCacheConfiguration `__ + """ + + props: PropsDictType = { + "SizeGiB": (integer, False), + "SizingMode": (str, False), + } + + class ClientConfigurations(AWSProperty): """ `ClientConfigurations `__ @@ -199,6 +211,7 @@ class OpenZFSConfiguration(AWSProperty): "EndpointIpAddressRange": (str, False), "Options": ([str], False), "PreferredSubnetId": (str, False), + "ReadCacheConfiguration": (ReadCacheConfiguration, False), "RootVolumeConfiguration": (RootVolumeConfiguration, False), "RouteTableIds": ([str], False), "ThroughputCapacity": (integer, False), diff --git a/troposphere/gamelift.py b/troposphere/gamelift.py index 9b3985a52..60084bc25 100644 --- a/troposphere/gamelift.py +++ b/troposphere/gamelift.py @@ -65,268 +65,327 @@ class Build(AWSObject): } -class ContainerDependency(AWSProperty): +class ConnectionPortRange(AWSProperty): """ - `ContainerDependency `__ + `ConnectionPortRange `__ """ props: PropsDictType = { - "Condition": (str, True), - "ContainerName": (str, True), + "FromPort": (integer, True), + "ToPort": (integer, True), } -class ContainerEnvironment(AWSProperty): +class DeploymentConfiguration(AWSProperty): """ - `ContainerEnvironment `__ + `DeploymentConfiguration `__ """ props: PropsDictType = { - "Name": (str, True), - "Value": (str, True), + "ImpairmentStrategy": (str, False), + "MinimumHealthyPercentage": (integer, False), + "ProtectionStrategy": (str, False), } -class ContainerHealthCheck(AWSProperty): +class GameSessionCreationLimitPolicy(AWSProperty): """ - `ContainerHealthCheck `__ + `GameSessionCreationLimitPolicy `__ """ props: PropsDictType = { - "Command": ([str], True), - "Interval": (integer, False), - "Retries": (integer, False), - "StartPeriod": (integer, False), - "Timeout": (integer, False), + "NewGameSessionsPerCreator": (integer, False), + "PolicyPeriodInMinutes": (integer, False), } -class MemoryLimits(AWSProperty): +class IpPermission(AWSProperty): """ - `MemoryLimits `__ + `IpPermission `__ """ props: PropsDictType = { - "HardLimit": (integer, False), - "SoftLimit": (integer, False), + "FromPort": (integer, True), + "IpRange": (str, True), + "Protocol": (str, True), + "ToPort": (integer, True), } -class ContainerPortRange(AWSProperty): +class LocationCapacity(AWSProperty): """ - `ContainerPortRange `__ + `LocationCapacity `__ """ props: PropsDictType = { - "FromPort": (integer, True), - "Protocol": (str, True), - "ToPort": (integer, True), + "DesiredEC2Instances": (integer, True), + "MaxSize": (integer, True), + "MinSize": (integer, True), } -class PortConfiguration(AWSProperty): +class LocationConfiguration(AWSProperty): """ - `PortConfiguration `__ + `LocationConfiguration `__ """ props: PropsDictType = { - "ContainerPortRanges": ([ContainerPortRange], True), + "Location": (str, True), + "LocationCapacity": (LocationCapacity, False), + "StoppedActions": ([str], False), } -class ContainerDefinition(AWSProperty): +class LogConfiguration(AWSProperty): """ - `ContainerDefinition `__ + `LogConfiguration `__ """ props: PropsDictType = { - "Command": ([str], False), - "ContainerName": (str, True), - "Cpu": (integer, False), - "DependsOn": ([ContainerDependency], False), - "EntryPoint": ([str], False), - "Environment": ([ContainerEnvironment], False), - "Essential": (boolean, False), - "HealthCheck": (ContainerHealthCheck, False), - "ImageUri": (str, True), - "MemoryLimits": (MemoryLimits, False), - "PortConfiguration": (PortConfiguration, False), - "ResolvedImageDigest": (str, False), - "WorkingDirectory": (str, False), + "LogDestination": (str, False), + "S3BucketName": (str, False), } -class ContainerGroupDefinition(AWSObject): +class TargetConfiguration(AWSProperty): """ - `ContainerGroupDefinition `__ + `TargetConfiguration `__ """ - resource_type = "AWS::GameLift::ContainerGroupDefinition" + props: PropsDictType = { + "TargetValue": (double, True), + } + + +class ScalingPolicy(AWSProperty): + """ + `ScalingPolicy `__ + """ props: PropsDictType = { - "ContainerDefinitions": ([ContainerDefinition], True), + "ComparisonOperator": (str, False), + "EvaluationPeriods": (integer, False), + "Location": (str, False), + "MetricName": (str, True), "Name": (str, True), - "OperatingSystem": (str, True), - "SchedulingStrategy": (str, False), + "PolicyType": (str, False), + "ScalingAdjustment": (integer, False), + "ScalingAdjustmentType": (str, False), + "Status": (str, False), + "TargetConfiguration": (TargetConfiguration, False), + "Threshold": (double, False), + "UpdateStatus": (str, False), + } + + +class ContainerFleet(AWSObject): + """ + `ContainerFleet `__ + """ + + resource_type = "AWS::GameLift::ContainerFleet" + + props: PropsDictType = { + "BillingType": (str, False), + "DeploymentConfiguration": (DeploymentConfiguration, False), + "Description": (str, False), + "FleetRoleArn": (str, True), + "GameServerContainerGroupDefinitionName": (str, False), + "GameServerContainerGroupsPerInstance": (integer, False), + "GameSessionCreationLimitPolicy": (GameSessionCreationLimitPolicy, False), + "InstanceConnectionPortRange": (ConnectionPortRange, False), + "InstanceInboundPermissions": ([IpPermission], False), + "InstanceType": (str, False), + "Locations": ([LocationConfiguration], False), + "LogConfiguration": (LogConfiguration, False), + "MetricGroups": ([str], False), + "NewGameSessionProtectionPolicy": (str, False), + "PerInstanceContainerGroupDefinitionName": (str, False), + "ScalingPolicies": ([ScalingPolicy], False), "Tags": (Tags, False), - "TotalCpuLimit": (integer, True), - "TotalMemoryLimit": (integer, True), } -class AnywhereConfiguration(AWSProperty): +class ContainerDependency(AWSProperty): """ - `AnywhereConfiguration `__ + `ContainerDependency `__ """ props: PropsDictType = { - "Cost": (str, True), + "Condition": (str, True), + "ContainerName": (str, True), } -class CertificateConfiguration(AWSProperty): +class ContainerEnvironment(AWSProperty): """ - `CertificateConfiguration `__ + `ContainerEnvironment `__ """ props: PropsDictType = { - "CertificateType": (str, True), + "Name": (str, True), + "Value": (str, True), } -class ConnectionPortRange(AWSProperty): +class ContainerMountPoint(AWSProperty): + """ + `ContainerMountPoint `__ + """ + + props: PropsDictType = { + "AccessLevel": (str, False), + "ContainerPath": (str, False), + "InstancePath": (str, True), + } + + +class ContainerPortRange(AWSProperty): """ - `ConnectionPortRange `__ + `ContainerPortRange `__ """ props: PropsDictType = { "FromPort": (integer, True), + "Protocol": (str, True), "ToPort": (integer, True), } -class ContainerGroupsPerInstance(AWSProperty): +class PortConfiguration(AWSProperty): """ - `ContainerGroupsPerInstance `__ + `PortConfiguration `__ """ props: PropsDictType = { - "DesiredReplicaContainerGroupsPerInstance": (integer, False), - "MaxReplicaContainerGroupsPerInstance": (integer, False), + "ContainerPortRanges": ([ContainerPortRange], True), } -class ContainerGroupsConfiguration(AWSProperty): +class GameServerContainerDefinition(AWSProperty): """ - `ContainerGroupsConfiguration `__ + `GameServerContainerDefinition `__ """ props: PropsDictType = { - "ConnectionPortRange": (ConnectionPortRange, True), - "ContainerGroupDefinitionNames": ([str], True), - "ContainerGroupsPerInstance": (ContainerGroupsPerInstance, False), + "ContainerName": (str, True), + "DependsOn": ([ContainerDependency], False), + "EnvironmentOverride": ([ContainerEnvironment], False), + "ImageUri": (str, True), + "MountPoints": ([ContainerMountPoint], False), + "PortConfiguration": (PortConfiguration, False), + "ResolvedImageDigest": (str, False), + "ServerSdkVersion": (str, True), } -class IpPermission(AWSProperty): +class ContainerHealthCheck(AWSProperty): """ - `IpPermission `__ + `ContainerHealthCheck `__ """ props: PropsDictType = { - "FromPort": (integer, True), - "IpRange": (str, True), - "Protocol": (str, True), - "ToPort": (integer, True), + "Command": ([str], True), + "Interval": (integer, False), + "Retries": (integer, False), + "StartPeriod": (integer, False), + "Timeout": (integer, False), } -class LocationCapacity(AWSProperty): +class SupportContainerDefinition(AWSProperty): """ - `LocationCapacity `__ + `SupportContainerDefinition `__ """ props: PropsDictType = { - "DesiredEC2Instances": (integer, True), - "MaxSize": (integer, True), - "MinSize": (integer, True), + "ContainerName": (str, True), + "DependsOn": ([ContainerDependency], False), + "EnvironmentOverride": ([ContainerEnvironment], False), + "Essential": (boolean, False), + "HealthCheck": (ContainerHealthCheck, False), + "ImageUri": (str, True), + "MemoryHardLimitMebibytes": (integer, False), + "MountPoints": ([ContainerMountPoint], False), + "PortConfiguration": (PortConfiguration, False), + "ResolvedImageDigest": (str, False), + "Vcpu": (double, False), } -class LocationConfiguration(AWSProperty): +class ContainerGroupDefinition(AWSObject): """ - `LocationConfiguration `__ + `ContainerGroupDefinition `__ """ + resource_type = "AWS::GameLift::ContainerGroupDefinition" + props: PropsDictType = { - "Location": (str, True), - "LocationCapacity": (LocationCapacity, False), + "ContainerGroupType": (str, False), + "GameServerContainerDefinition": (GameServerContainerDefinition, False), + "Name": (str, True), + "OperatingSystem": (str, True), + "SourceVersionNumber": (integer, False), + "SupportContainerDefinitions": ([SupportContainerDefinition], False), + "Tags": (Tags, False), + "TotalMemoryLimitMebibytes": (integer, True), + "TotalVcpuLimit": (double, True), + "VersionDescription": (str, False), } -class ResourceCreationLimitPolicy(AWSProperty): +class AnywhereConfiguration(AWSProperty): """ - `ResourceCreationLimitPolicy `__ + `AnywhereConfiguration `__ """ props: PropsDictType = { - "NewGameSessionsPerCreator": (integer, False), - "PolicyPeriodInMinutes": (integer, False), + "Cost": (str, True), } -class ServerProcess(AWSProperty): +class CertificateConfiguration(AWSProperty): """ - `ServerProcess `__ + `CertificateConfiguration `__ """ props: PropsDictType = { - "ConcurrentExecutions": (integer, True), - "LaunchPath": (str, True), - "Parameters": (str, False), + "CertificateType": (str, True), } -class RuntimeConfiguration(AWSProperty): +class ResourceCreationLimitPolicy(AWSProperty): """ - `RuntimeConfiguration `__ + `ResourceCreationLimitPolicy `__ """ props: PropsDictType = { - "GameSessionActivationTimeoutSeconds": (integer, False), - "MaxConcurrentGameSessionActivations": (integer, False), - "ServerProcesses": ([ServerProcess], False), + "NewGameSessionsPerCreator": (integer, False), + "PolicyPeriodInMinutes": (integer, False), } -class TargetConfiguration(AWSProperty): +class ServerProcess(AWSProperty): """ - `TargetConfiguration `__ + `ServerProcess `__ """ props: PropsDictType = { - "TargetValue": (double, True), + "ConcurrentExecutions": (integer, True), + "LaunchPath": (str, True), + "Parameters": (str, False), } -class ScalingPolicy(AWSProperty): +class RuntimeConfiguration(AWSProperty): """ - `ScalingPolicy `__ + `RuntimeConfiguration `__ """ props: PropsDictType = { - "ComparisonOperator": (str, False), - "EvaluationPeriods": (integer, False), - "Location": (str, False), - "MetricName": (str, True), - "Name": (str, True), - "PolicyType": (str, False), - "ScalingAdjustment": (integer, False), - "ScalingAdjustmentType": (str, False), - "Status": (str, False), - "TargetConfiguration": (TargetConfiguration, False), - "Threshold": (double, False), - "UpdateStatus": (str, False), + "GameSessionActivationTimeoutSeconds": (integer, False), + "MaxConcurrentGameSessionActivations": (integer, False), + "ServerProcesses": ([ServerProcess], False), } @@ -343,7 +402,6 @@ class Fleet(AWSObject): "BuildId": (str, False), "CertificateConfiguration": (CertificateConfiguration, False), "ComputeType": (str, False), - "ContainerGroupsConfiguration": (ContainerGroupsConfiguration, False), "Description": (str, False), "DesiredEC2Instances": (integer, False), "EC2InboundPermissions": ([IpPermission], False), @@ -587,3 +645,13 @@ class Script(AWSObject): "Tags": (Tags, False), "Version": (str, False), } + + +class DeploymentDetails(AWSProperty): + """ + `DeploymentDetails `__ + """ + + props: PropsDictType = { + "LatestDeploymentId": (str, False), + } diff --git a/troposphere/glue.py b/troposphere/glue.py index 1d6828d9a..074c9e45c 100644 --- a/troposphere/glue.py +++ b/troposphere/glue.py @@ -829,7 +829,7 @@ class Schema(AWSObject): "Description": (str, False), "Name": (str, True), "Registry": (RegistryProperty, False), - "SchemaDefinition": (str, True), + "SchemaDefinition": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/imagebuilder.py b/troposphere/imagebuilder.py index 78acd298e..28fc111ba 100644 --- a/troposphere/imagebuilder.py +++ b/troposphere/imagebuilder.py @@ -330,7 +330,7 @@ class Image(AWSObject): "ImageRecipeArn": (str, False), "ImageScanningConfiguration": (ImageScanningConfiguration, False), "ImageTestsConfiguration": (ImageTestsConfiguration, False), - "InfrastructureConfigurationArn": (str, True), + "InfrastructureConfigurationArn": (str, False), "Tags": (dict, False), "Workflows": ([WorkflowConfiguration], False), } @@ -459,6 +459,19 @@ class Logging(AWSProperty): } +class Placement(AWSProperty): + """ + `Placement `__ + """ + + props: PropsDictType = { + "AvailabilityZone": (str, False), + "HostId": (str, False), + "HostResourceGroupArn": (str, False), + "Tenancy": (str, False), + } + + class InfrastructureConfiguration(AWSObject): """ `InfrastructureConfiguration `__ @@ -474,6 +487,7 @@ class InfrastructureConfiguration(AWSObject): "KeyPair": (str, False), "Logging": (Logging, False), "Name": (str, True), + "Placement": (Placement, False), "ResourceTags": (dict, False), "SecurityGroupIds": ([str], False), "SnsTopicArn": (str, False), diff --git a/troposphere/inspectorv2.py b/troposphere/inspectorv2.py index 185c0bcb2..e5141b62e 100644 --- a/troposphere/inspectorv2.py +++ b/troposphere/inspectorv2.py @@ -17,7 +17,7 @@ class CisTargets(AWSProperty): props: PropsDictType = { "AccountIds": ([str], True), - "TargetResourceTags": (dict, False), + "TargetResourceTags": (dict, True), } diff --git a/troposphere/iot.py b/troposphere/iot.py index 5d3085837..756296d03 100644 --- a/troposphere/iot.py +++ b/troposphere/iot.py @@ -203,6 +203,69 @@ class CertificateProvider(AWSObject): } +class CommandParameterValue(AWSProperty): + """ + `CommandParameterValue `__ + """ + + props: PropsDictType = { + "B": (boolean, False), + "BIN": (str, False), + "D": (double, False), + "I": (integer, False), + "L": (str, False), + "S": (str, False), + "UL": (str, False), + } + + +class CommandParameter(AWSProperty): + """ + `CommandParameter `__ + """ + + props: PropsDictType = { + "DefaultValue": (CommandParameterValue, False), + "Description": (str, False), + "Name": (str, True), + "Value": (CommandParameterValue, False), + } + + +class CommandPayload(AWSProperty): + """ + `CommandPayload `__ + """ + + props: PropsDictType = { + "Content": (str, False), + "ContentType": (str, False), + } + + +class Command(AWSObject): + """ + `Command `__ + """ + + resource_type = "AWS::IoT::Command" + + props: PropsDictType = { + "CommandId": (str, True), + "CreatedAt": (str, False), + "Deprecated": (boolean, False), + "Description": (str, False), + "DisplayName": (str, False), + "LastUpdatedAt": (str, False), + "MandatoryParameters": ([CommandParameter], False), + "Namespace": (str, False), + "Payload": (CommandPayload, False), + "PendingDeletion": (boolean, False), + "RoleArn": (str, False), + "Tags": (Tags, False), + } + + class CustomMetric(AWSObject): """ `CustomMetric `__ @@ -261,6 +324,8 @@ class ServerCertificateConfig(AWSProperty): props: PropsDictType = { "EnableOCSPCheck": (boolean, False), + "OcspAuthorizedResponderArn": (str, False), + "OcspLambdaArn": (str, False), } @@ -896,12 +961,35 @@ class ThingPrincipalAttachment(AWSObject): } +class PropagatingAttribute(AWSProperty): + """ + `PropagatingAttribute `__ + """ + + props: PropsDictType = { + "ConnectionAttribute": (str, False), + "ThingAttribute": (str, False), + "UserPropertyKey": (str, True), + } + + +class Mqtt5Configuration(AWSProperty): + """ + `Mqtt5Configuration `__ + """ + + props: PropsDictType = { + "PropagatingAttributes": ([PropagatingAttribute], False), + } + + class ThingTypeProperties(AWSProperty): """ `ThingTypeProperties `__ """ props: PropsDictType = { + "Mqtt5Configuration": (Mqtt5Configuration, False), "SearchableAttributes": ([str], False), "ThingTypeDescription": (str, False), } diff --git a/troposphere/iotfleetwise.py b/troposphere/iotfleetwise.py index ff1920fe1..65ece6a6d 100644 --- a/troposphere/iotfleetwise.py +++ b/troposphere/iotfleetwise.py @@ -91,6 +91,63 @@ class DataDestinationConfig(AWSProperty): } +class StorageMaximumSize(AWSProperty): + """ + `StorageMaximumSize `__ + """ + + props: PropsDictType = { + "Unit": (str, True), + "Value": (integer, True), + } + + +class StorageMinimumTimeToLive(AWSProperty): + """ + `StorageMinimumTimeToLive `__ + """ + + props: PropsDictType = { + "Unit": (str, True), + "Value": (integer, True), + } + + +class DataPartitionStorageOptions(AWSProperty): + """ + `DataPartitionStorageOptions `__ + """ + + props: PropsDictType = { + "MaximumSize": (StorageMaximumSize, True), + "MinimumTimeToLive": (StorageMinimumTimeToLive, True), + "StorageLocation": (str, True), + } + + +class DataPartitionUploadOptions(AWSProperty): + """ + `DataPartitionUploadOptions `__ + """ + + props: PropsDictType = { + "ConditionLanguageVersion": (integer, False), + "Expression": (str, True), + } + + +class DataPartition(AWSProperty): + """ + `DataPartition `__ + """ + + props: PropsDictType = { + "Id": (str, True), + "StorageOptions": (DataPartitionStorageOptions, True), + "UploadOptions": (DataPartitionUploadOptions, False), + } + + class ConditionBasedSignalFetchConfig(AWSProperty): """ `ConditionBasedSignalFetchConfig `__ @@ -142,6 +199,7 @@ class SignalInformation(AWSProperty): """ props: PropsDictType = { + "DataPartitionId": (str, False), "MaxSampleCount": (double, False), "MinimumSamplingIntervalMs": (double, False), "Name": (str, True), @@ -161,6 +219,7 @@ class Campaign(AWSObject): "Compression": (str, False), "DataDestinationConfigs": ([DataDestinationConfig], False), "DataExtraDimensions": ([str], False), + "DataPartitions": ([DataPartition], False), "Description": (str, False), "DiagnosticsMode": (str, False), "ExpiryTime": (str, False), @@ -189,6 +248,16 @@ class CanInterface(AWSProperty): } +class CustomDecodingInterface(AWSProperty): + """ + `CustomDecodingInterface `__ + """ + + props: PropsDictType = { + "Name": (str, True), + } + + class ObdInterface(AWSProperty): """ `ObdInterface `__ @@ -212,6 +281,7 @@ class NetworkInterfacesItems(AWSProperty): props: PropsDictType = { "CanInterface": (CanInterface, False), + "CustomDecodingInterface": (CustomDecodingInterface, False), "InterfaceId": (str, True), "ObdInterface": (ObdInterface, False), "Type": (str, True), @@ -235,6 +305,16 @@ class CanSignal(AWSProperty): } +class CustomDecodingSignal(AWSProperty): + """ + `CustomDecodingSignal `__ + """ + + props: PropsDictType = { + "Id": (str, True), + } + + class ObdSignal(AWSProperty): """ `ObdSignal `__ @@ -260,6 +340,7 @@ class SignalDecodersItems(AWSProperty): props: PropsDictType = { "CanSignal": (CanSignal, False), + "CustomDecodingSignal": (CustomDecodingSignal, False), "FullyQualifiedName": (str, True), "InterfaceId": (str, True), "ObdSignal": (ObdSignal, False), @@ -275,6 +356,7 @@ class DecoderManifest(AWSObject): resource_type = "AWS::IoTFleetWise::DecoderManifest" props: PropsDictType = { + "DefaultForUnmappedSignals": (str, False), "Description": (str, False), "ModelManifestArn": (str, True), "Name": (str, True), @@ -422,6 +504,24 @@ class SignalCatalog(AWSObject): } +class StateTemplate(AWSObject): + """ + `StateTemplate `__ + """ + + resource_type = "AWS::IoTFleetWise::StateTemplate" + + props: PropsDictType = { + "DataExtraDimensions": ([str], False), + "Description": (str, False), + "MetadataExtraDimensions": ([str], False), + "Name": (str, True), + "SignalCatalogArn": (str, True), + "StateTemplateProperties": ([str], True), + "Tags": (Tags, False), + } + + class Vehicle(AWSObject): """ `Vehicle `__ diff --git a/troposphere/iotsitewise.py b/troposphere/iotsitewise.py index 6a41b3e09..0b89657e0 100644 --- a/troposphere/iotsitewise.py +++ b/troposphere/iotsitewise.py @@ -409,6 +409,16 @@ class Alarms(AWSProperty): } +class PortalTypeEntry(AWSProperty): + """ + `PortalTypeEntry `__ + """ + + props: PropsDictType = { + "PortalTools": ([str], True), + } + + class Portal(AWSObject): """ `Portal `__ @@ -423,6 +433,8 @@ class Portal(AWSObject): "PortalContactEmail": (str, True), "PortalDescription": (str, False), "PortalName": (str, True), + "PortalType": (str, False), + "PortalTypeConfiguration": (dict, False), "RoleArn": (str, True), "Tags": (Tags, False), } diff --git a/troposphere/ivs.py b/troposphere/ivs.py index 0c30ab9bf..e6edf4ec2 100644 --- a/troposphere/ivs.py +++ b/troposphere/ivs.py @@ -56,6 +56,23 @@ class EncoderConfiguration(AWSObject): } +class IngestConfiguration(AWSObject): + """ + `IngestConfiguration `__ + """ + + resource_type = "AWS::IVS::IngestConfiguration" + + props: PropsDictType = { + "IngestProtocol": (str, False), + "InsecureIngest": (boolean, False), + "Name": (str, False), + "StageArn": (str, False), + "Tags": (Tags, False), + "UserId": (str, False), + } + + class PlaybackKeyPair(AWSObject): """ `PlaybackKeyPair `__ diff --git a/troposphere/logs.py b/troposphere/logs.py index cf9af93f7..5b07a2b4f 100644 --- a/troposphere/logs.py +++ b/troposphere/logs.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import double +from .validators import boolean, double, integer from .validators.logs import policytypes # noqa: F401 from .validators.logs import ( validate_loggroup_retention_in_days, @@ -41,6 +41,10 @@ class Delivery(AWSObject): props: PropsDictType = { "DeliveryDestinationArn": (str, True), "DeliverySourceName": (str, True), + "FieldDelimiter": (str, False), + "RecordFields": ([str], False), + "S3EnableHiveCompatiblePath": (boolean, False), + "S3SuffixPath": (str, False), "Tags": (Tags, False), } @@ -56,6 +60,7 @@ class DeliveryDestination(AWSObject): "DeliveryDestinationPolicy": (dict, False), "DestinationResourceArn": (str, False), "Name": (str, True), + "OutputFormat": (str, False), "Tags": (Tags, False), } @@ -90,6 +95,44 @@ class Destination(AWSObject): } +class OpenSearchResourceConfig(AWSProperty): + """ + `OpenSearchResourceConfig `__ + """ + + props: PropsDictType = { + "ApplicationARN": (str, False), + "DashboardViewerPrincipals": ([str], True), + "DataSourceRoleArn": (str, True), + "KmsKeyArn": (str, False), + "RetentionDays": (integer, False), + } + + +class ResourceConfig(AWSProperty): + """ + `ResourceConfig `__ + """ + + props: PropsDictType = { + "OpenSearchResourceConfig": (OpenSearchResourceConfig, False), + } + + +class Integration(AWSObject): + """ + `Integration `__ + """ + + resource_type = "AWS::Logs::Integration" + + props: PropsDictType = { + "IntegrationName": (str, True), + "IntegrationType": (str, True), + "ResourceConfig": (ResourceConfig, True), + } + + class LogAnomalyDetector(AWSObject): """ `LogAnomalyDetector `__ @@ -117,6 +160,7 @@ class LogGroup(AWSObject): props: PropsDictType = { "DataProtectionPolicy": (dict, False), + "FieldIndexPolicies": (Tags, False), "KmsKeyId": (str, False), "LogGroupClass": (str, False), "LogGroupName": (str, False), @@ -172,6 +216,7 @@ class MetricFilter(AWSObject): resource_type = "AWS::Logs::MetricFilter" props: PropsDictType = { + "ApplyOnTransformedLogs": (boolean, False), "FilterName": (str, False), "FilterPattern": (str, True), "LogGroupName": (str, True), @@ -189,6 +234,7 @@ class QueryDefinition(AWSObject): props: PropsDictType = { "LogGroupNames": ([str], False), "Name": (str, True), + "QueryLanguage": (str, False), "QueryString": (str, True), } @@ -214,6 +260,7 @@ class SubscriptionFilter(AWSObject): resource_type = "AWS::Logs::SubscriptionFilter" props: PropsDictType = { + "ApplyOnTransformedLogs": (boolean, False), "DestinationArn": (str, True), "Distribution": (str, False), "FilterName": (str, False), @@ -221,3 +268,371 @@ class SubscriptionFilter(AWSObject): "LogGroupName": (str, True), "RoleArn": (str, False), } + + +class AddKeyEntry(AWSProperty): + """ + `AddKeyEntry `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "OverwriteIfExists": (boolean, False), + "Value": (str, True), + } + + +class AddKeys(AWSProperty): + """ + `AddKeys `__ + """ + + props: PropsDictType = { + "Entries": ([AddKeyEntry], True), + } + + +class CopyValueEntry(AWSProperty): + """ + `CopyValueEntry `__ + """ + + props: PropsDictType = { + "OverwriteIfExists": (boolean, False), + "Source": (str, True), + "Target": (str, True), + } + + +class CopyValue(AWSProperty): + """ + `CopyValue `__ + """ + + props: PropsDictType = { + "Entries": ([CopyValueEntry], True), + } + + +class Csv(AWSProperty): + """ + `Csv `__ + """ + + props: PropsDictType = { + "Columns": ([str], False), + "Delimiter": (str, False), + "QuoteCharacter": (str, False), + "Source": (str, False), + } + + +class DateTimeConverter(AWSProperty): + """ + `DateTimeConverter `__ + """ + + props: PropsDictType = { + "Locale": (str, False), + "MatchPatterns": ([str], True), + "Source": (str, True), + "SourceTimezone": (str, False), + "Target": (str, True), + "TargetFormat": (str, False), + "TargetTimezone": (str, False), + } + + +class DeleteKeys(AWSProperty): + """ + `DeleteKeys `__ + """ + + props: PropsDictType = { + "WithKeys": ([str], True), + } + + +class Grok(AWSProperty): + """ + `Grok `__ + """ + + props: PropsDictType = { + "Match": (str, True), + "Source": (str, False), + } + + +class ListToMap(AWSProperty): + """ + `ListToMap `__ + """ + + props: PropsDictType = { + "Flatten": (boolean, False), + "FlattenedElement": (str, False), + "Key": (str, True), + "Source": (str, True), + "Target": (str, False), + "ValueKey": (str, False), + } + + +class LowerCaseString(AWSProperty): + """ + `LowerCaseString `__ + """ + + props: PropsDictType = { + "WithKeys": ([str], True), + } + + +class MoveKeyEntry(AWSProperty): + """ + `MoveKeyEntry `__ + """ + + props: PropsDictType = { + "OverwriteIfExists": (boolean, False), + "Source": (str, True), + "Target": (str, True), + } + + +class MoveKeys(AWSProperty): + """ + `MoveKeys `__ + """ + + props: PropsDictType = { + "Entries": ([MoveKeyEntry], True), + } + + +class ParseCloudfront(AWSProperty): + """ + `ParseCloudfront `__ + """ + + props: PropsDictType = { + "Source": (str, False), + } + + +class ParseJSON(AWSProperty): + """ + `ParseJSON `__ + """ + + props: PropsDictType = { + "Destination": (str, False), + "Source": (str, False), + } + + +class ParseKeyValue(AWSProperty): + """ + `ParseKeyValue `__ + """ + + props: PropsDictType = { + "Destination": (str, False), + "FieldDelimiter": (str, False), + "KeyPrefix": (str, False), + "KeyValueDelimiter": (str, False), + "NonMatchValue": (str, False), + "OverwriteIfExists": (boolean, False), + "Source": (str, False), + } + + +class ParsePostgres(AWSProperty): + """ + `ParsePostgres `__ + """ + + props: PropsDictType = { + "Source": (str, False), + } + + +class ParseRoute53(AWSProperty): + """ + `ParseRoute53 `__ + """ + + props: PropsDictType = { + "Source": (str, False), + } + + +class ParseVPC(AWSProperty): + """ + `ParseVPC `__ + """ + + props: PropsDictType = { + "Source": (str, False), + } + + +class ParseWAF(AWSProperty): + """ + `ParseWAF `__ + """ + + props: PropsDictType = { + "Source": (str, False), + } + + +class RenameKeyEntry(AWSProperty): + """ + `RenameKeyEntry `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "OverwriteIfExists": (boolean, False), + "RenameTo": (str, True), + } + + +class RenameKeys(AWSProperty): + """ + `RenameKeys `__ + """ + + props: PropsDictType = { + "Entries": ([RenameKeyEntry], True), + } + + +class SplitStringEntry(AWSProperty): + """ + `SplitStringEntry `__ + """ + + props: PropsDictType = { + "Delimiter": (str, True), + "Source": (str, True), + } + + +class SplitString(AWSProperty): + """ + `SplitString `__ + """ + + props: PropsDictType = { + "Entries": ([SplitStringEntry], True), + } + + +class SubstituteStringEntry(AWSProperty): + """ + `SubstituteStringEntry `__ + """ + + props: PropsDictType = { + "From": (str, True), + "Source": (str, True), + "To": (str, True), + } + + +class SubstituteString(AWSProperty): + """ + `SubstituteString `__ + """ + + props: PropsDictType = { + "Entries": ([SubstituteStringEntry], True), + } + + +class TrimString(AWSProperty): + """ + `TrimString `__ + """ + + props: PropsDictType = { + "WithKeys": ([str], True), + } + + +class TypeConverterEntry(AWSProperty): + """ + `TypeConverterEntry `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Type": (str, True), + } + + +class TypeConverter(AWSProperty): + """ + `TypeConverter `__ + """ + + props: PropsDictType = { + "Entries": ([TypeConverterEntry], True), + } + + +class UpperCaseString(AWSProperty): + """ + `UpperCaseString `__ + """ + + props: PropsDictType = { + "WithKeys": ([str], True), + } + + +class Processor(AWSProperty): + """ + `Processor `__ + """ + + props: PropsDictType = { + "AddKeys": (AddKeys, False), + "CopyValue": (CopyValue, False), + "Csv": (Csv, False), + "DateTimeConverter": (DateTimeConverter, False), + "DeleteKeys": (DeleteKeys, False), + "Grok": (Grok, False), + "ListToMap": (ListToMap, False), + "LowerCaseString": (LowerCaseString, False), + "MoveKeys": (MoveKeys, False), + "ParseCloudfront": (ParseCloudfront, False), + "ParseJSON": (ParseJSON, False), + "ParseKeyValue": (ParseKeyValue, False), + "ParsePostgres": (ParsePostgres, False), + "ParseRoute53": (ParseRoute53, False), + "ParseVPC": (ParseVPC, False), + "ParseWAF": (ParseWAF, False), + "RenameKeys": (RenameKeys, False), + "SplitString": (SplitString, False), + "SubstituteString": (SubstituteString, False), + "TrimString": (TrimString, False), + "TypeConverter": (TypeConverter, False), + "UpperCaseString": (UpperCaseString, False), + } + + +class Transformer(AWSObject): + """ + `Transformer `__ + """ + + resource_type = "AWS::Logs::Transformer" + + props: PropsDictType = { + "LogGroupIdentifier": (str, True), + "TransformerConfig": ([Processor], True), + } diff --git a/troposphere/m2.py b/troposphere/m2.py index 8af0dd832..7ff8dd42e 100644 --- a/troposphere/m2.py +++ b/troposphere/m2.py @@ -29,7 +29,7 @@ class Application(AWSObject): resource_type = "AWS::M2::Application" props: PropsDictType = { - "Definition": (Definition, True), + "Definition": (Definition, False), "Description": (str, False), "EngineType": (str, True), "KmsKeyId": (str, False), @@ -39,6 +39,20 @@ class Application(AWSObject): } +class Deployment(AWSObject): + """ + `Deployment `__ + """ + + resource_type = "AWS::M2::Deployment" + + props: PropsDictType = { + "ApplicationId": (str, True), + "ApplicationVersion": (integer, True), + "EnvironmentId": (str, True), + } + + class HighAvailabilityConfig(AWSProperty): """ `HighAvailabilityConfig `__ @@ -97,6 +111,7 @@ class Environment(AWSObject): "InstanceType": (str, True), "KmsKeyId": (str, False), "Name": (str, True), + "NetworkType": (str, False), "PreferredMaintenanceWindow": (str, False), "PubliclyAccessible": (boolean, False), "SecurityGroupIds": ([str], False), diff --git a/troposphere/mediaconnect.py b/troposphere/mediaconnect.py index fbb528859..6c7b949f5 100644 --- a/troposphere/mediaconnect.py +++ b/troposphere/mediaconnect.py @@ -55,6 +55,16 @@ class BridgeFlowSource(AWSProperty): } +class MulticastSourceSettings(AWSProperty): + """ + `MulticastSourceSettings `__ + """ + + props: PropsDictType = { + "MulticastSourceIp": (str, False), + } + + class BridgeNetworkSource(AWSProperty): """ `BridgeNetworkSource `__ @@ -62,6 +72,7 @@ class BridgeNetworkSource(AWSProperty): props: PropsDictType = { "MulticastIp": (str, True), + "MulticastSourceSettings": (MulticastSourceSettings, False), "NetworkName": (str, True), "Port": (integer, True), "Protocol": (str, True), diff --git a/troposphere/mediaconvert.py b/troposphere/mediaconvert.py index 56d41d41a..812bd33ae 100644 --- a/troposphere/mediaconvert.py +++ b/troposphere/mediaconvert.py @@ -77,6 +77,7 @@ class Queue(AWSObject): resource_type = "AWS::MediaConvert::Queue" props: PropsDictType = { + "ConcurrentJobs": (integer, False), "Description": (str, False), "Name": (str, False), "PricingPlan": (str, False), diff --git a/troposphere/medialive.py b/troposphere/medialive.py index f937accc6..39eebe7b7 100644 --- a/troposphere/medialive.py +++ b/troposphere/medialive.py @@ -10,6 +10,17 @@ from .validators import boolean, double, integer +class AnywhereSettings(AWSProperty): + """ + `AnywhereSettings `__ + """ + + props: PropsDictType = { + "ChannelPlacementGroupId": (str, False), + "ClusterId": (str, False), + } + + class CdiInputSpecification(AWSProperty): """ `CdiInputSpecification `__ @@ -951,6 +962,39 @@ class MsSmoothOutputSettings(AWSProperty): } +class MultiplexM2tsSettings(AWSProperty): + """ + `MultiplexM2tsSettings `__ + """ + + props: PropsDictType = { + "AbsentInputAudioBehavior": (str, False), + "Arib": (str, False), + "AudioBufferModel": (str, False), + "AudioFramesPerPes": (integer, False), + "AudioStreamType": (str, False), + "CcDescriptor": (str, False), + "Ebif": (str, False), + "EsRateInPes": (str, False), + "Klv": (str, False), + "NielsenId3Behavior": (str, False), + "PcrControl": (str, False), + "PcrPeriod": (integer, False), + "Scte35Control": (str, False), + "Scte35PrerollPullupMilliseconds": (double, False), + } + + +class MultiplexContainerSettings(AWSProperty): + """ + `MultiplexContainerSettings `__ + """ + + props: PropsDictType = { + "MultiplexM2tsSettings": (MultiplexM2tsSettings, False), + } + + class OutputLocationRef(AWSProperty): """ `OutputLocationRef `__ @@ -967,6 +1011,7 @@ class MultiplexOutputSettings(AWSProperty): """ props: PropsDictType = { + "ContainerSettings": (MultiplexContainerSettings, False), "Destination": (OutputLocationRef, False), } @@ -984,25 +1029,39 @@ class RtmpOutputSettings(AWSProperty): } -class FecOutputSettings(AWSProperty): +class UdpContainerSettings(AWSProperty): """ - `FecOutputSettings `__ + `UdpContainerSettings `__ """ props: PropsDictType = { - "ColumnDepth": (integer, False), - "IncludeFec": (str, False), - "RowLength": (integer, False), + "M2tsSettings": (M2tsSettings, False), } -class UdpContainerSettings(AWSProperty): +class SrtOutputSettings(AWSProperty): """ - `UdpContainerSettings `__ + `SrtOutputSettings `__ """ props: PropsDictType = { - "M2tsSettings": (M2tsSettings, False), + "BufferMsec": (integer, False), + "ContainerSettings": (UdpContainerSettings, False), + "Destination": (OutputLocationRef, False), + "EncryptionType": (str, False), + "Latency": (integer, False), + } + + +class FecOutputSettings(AWSProperty): + """ + `FecOutputSettings `__ + """ + + props: PropsDictType = { + "ColumnDepth": (integer, False), + "IncludeFec": (str, False), + "RowLength": (integer, False), } @@ -1033,6 +1092,7 @@ class OutputSettings(AWSProperty): "MsSmoothOutputSettings": (MsSmoothOutputSettings, False), "MultiplexOutputSettings": (MultiplexOutputSettings, False), "RtmpOutputSettings": (RtmpOutputSettings, False), + "SrtOutputSettings": (SrtOutputSettings, False), "UdpOutputSettings": (UdpOutputSettings, False), } @@ -1358,6 +1418,16 @@ class RtmpGroupSettings(AWSProperty): } +class SrtGroupSettings(AWSProperty): + """ + `SrtGroupSettings `__ + """ + + props: PropsDictType = { + "InputLossAction": (str, False), + } + + class UdpGroupSettings(AWSProperty): """ `UdpGroupSettings `__ @@ -1384,6 +1454,7 @@ class OutputGroupSettings(AWSProperty): "MsSmoothGroupSettings": (MsSmoothGroupSettings, False), "MultiplexGroupSettings": (MultiplexGroupSettings, False), "RtmpGroupSettings": (RtmpGroupSettings, False), + "SrtGroupSettings": (SrtGroupSettings, False), "UdpGroupSettings": (UdpGroupSettings, False), } @@ -1421,52 +1492,102 @@ class TimecodeConfig(AWSProperty): } -class TimecodeBurninSettings(AWSProperty): +class ColorSpacePassthroughSettings(AWSProperty): """ - `TimecodeBurninSettings `__ + `ColorSpacePassthroughSettings `__ """ - props: PropsDictType = { - "FontSize": (str, False), - "Position": (str, False), - "Prefix": (str, False), - } + props: PropsDictType = {} -class FrameCaptureSettings(AWSProperty): +class Hdr10Settings(AWSProperty): """ - `FrameCaptureSettings `__ + `Hdr10Settings `__ """ props: PropsDictType = { - "CaptureInterval": (integer, False), - "CaptureIntervalUnits": (str, False), - "TimecodeBurninSettings": (TimecodeBurninSettings, False), + "MaxCll": (integer, False), + "MaxFall": (integer, False), } -class ColorSpacePassthroughSettings(AWSProperty): +class Rec601Settings(AWSProperty): """ - `ColorSpacePassthroughSettings `__ + `Rec601Settings `__ """ props: PropsDictType = {} -class Rec601Settings(AWSProperty): +class Rec709Settings(AWSProperty): """ - `Rec601Settings `__ + `Rec709Settings `__ """ props: PropsDictType = {} -class Rec709Settings(AWSProperty): +class Av1ColorSpaceSettings(AWSProperty): """ - `Rec709Settings `__ + `Av1ColorSpaceSettings `__ """ - props: PropsDictType = {} + props: PropsDictType = { + "ColorSpacePassthroughSettings": (ColorSpacePassthroughSettings, False), + "Hdr10Settings": (Hdr10Settings, False), + "Rec601Settings": (Rec601Settings, False), + "Rec709Settings": (Rec709Settings, False), + } + + +class TimecodeBurninSettings(AWSProperty): + """ + `TimecodeBurninSettings `__ + """ + + props: PropsDictType = { + "FontSize": (str, False), + "Position": (str, False), + "Prefix": (str, False), + } + + +class Av1Settings(AWSProperty): + """ + `Av1Settings `__ + """ + + props: PropsDictType = { + "AfdSignaling": (str, False), + "BufSize": (integer, False), + "ColorSpaceSettings": (Av1ColorSpaceSettings, False), + "FixedAfd": (str, False), + "FramerateDenominator": (integer, False), + "FramerateNumerator": (integer, False), + "GopSize": (double, False), + "GopSizeUnits": (str, False), + "Level": (str, False), + "LookAheadRateControl": (str, False), + "MaxBitrate": (integer, False), + "MinIInterval": (integer, False), + "ParDenominator": (integer, False), + "ParNumerator": (integer, False), + "QvbrQualityLevel": (integer, False), + "SceneChangeDetect": (str, False), + "TimecodeBurninSettings": (TimecodeBurninSettings, False), + } + + +class FrameCaptureSettings(AWSProperty): + """ + `FrameCaptureSettings `__ + """ + + props: PropsDictType = { + "CaptureInterval": (integer, False), + "CaptureIntervalUnits": (str, False), + "TimecodeBurninSettings": (TimecodeBurninSettings, False), + } class H264ColorSpaceSettings(AWSProperty): @@ -1481,6 +1602,17 @@ class H264ColorSpaceSettings(AWSProperty): } +class BandwidthReductionFilterSettings(AWSProperty): + """ + `BandwidthReductionFilterSettings `__ + """ + + props: PropsDictType = { + "PostFilterSharpening": (str, False), + "Strength": (str, False), + } + + class TemporalFilterSettings(AWSProperty): """ `TemporalFilterSettings `__ @@ -1498,6 +1630,7 @@ class H264FilterSettings(AWSProperty): """ props: PropsDictType = { + "BandwidthReductionFilterSettings": (BandwidthReductionFilterSettings, False), "TemporalFilterSettings": (TemporalFilterSettings, False), } @@ -1562,17 +1695,6 @@ class DolbyVision81Settings(AWSProperty): props: PropsDictType = {} -class Hdr10Settings(AWSProperty): - """ - `Hdr10Settings `__ - """ - - props: PropsDictType = { - "MaxCll": (integer, False), - "MaxFall": (integer, False), - } - - class H265ColorSpaceSettings(AWSProperty): """ `H265ColorSpaceSettings `__ @@ -1593,6 +1715,7 @@ class H265FilterSettings(AWSProperty): """ props: PropsDictType = { + "BandwidthReductionFilterSettings": (BandwidthReductionFilterSettings, False), "TemporalFilterSettings": (TemporalFilterSettings, False), } @@ -1685,6 +1808,7 @@ class VideoCodecSettings(AWSProperty): """ props: PropsDictType = { + "Av1Settings": (Av1Settings, False), "FrameCaptureSettings": (FrameCaptureSettings, False), "H264Settings": (H264Settings, False), "H265Settings": (H265Settings, False), @@ -2015,6 +2139,16 @@ class HlsInputSettings(AWSProperty): } +class MulticastInputSettings(AWSProperty): + """ + `MulticastInputSettings `__ + """ + + props: PropsDictType = { + "SourceIpAddress": (str, False), + } + + class NetworkInputSettings(AWSProperty): """ `NetworkInputSettings `__ @@ -2022,6 +2156,7 @@ class NetworkInputSettings(AWSProperty): props: PropsDictType = { "HlsInputSettings": (HlsInputSettings, False), + "MulticastInputSettings": (MulticastInputSettings, False), "ServerValidation": (str, False), } @@ -2110,6 +2245,7 @@ class InputAttachment(AWSProperty): "InputAttachmentName": (str, False), "InputId": (str, False), "InputSettings": (InputSettings, False), + "LogicalInterfaceNames": ([str], False), } @@ -2170,6 +2306,18 @@ class OutputDestinationSettings(AWSProperty): } +class SrtOutputDestinationSettings(AWSProperty): + """ + `SrtOutputDestinationSettings `__ + """ + + props: PropsDictType = { + "EncryptionPassphraseSecretArn": (str, False), + "StreamId": (str, False), + "Url": (str, False), + } + + class OutputDestination(AWSProperty): """ `OutputDestination `__ @@ -2180,6 +2328,7 @@ class OutputDestination(AWSProperty): "MediaPackageSettings": ([MediaPackageOutputDestinationSettings], False), "MultiplexSettings": (MultiplexProgramChannelDestinationSettings, False), "Settings": ([OutputDestinationSettings], False), + "SrtSettings": ([SrtOutputDestinationSettings], False), } @@ -2203,6 +2352,7 @@ class Channel(AWSObject): resource_type = "AWS::MediaLive::Channel" props: PropsDictType = { + "AnywhereSettings": (AnywhereSettings, False), "CdiInputSpecification": (CdiInputSpecification, False), "ChannelClass": (str, False), "Destinations": ([OutputDestination], False), @@ -2350,12 +2500,26 @@ class EventBridgeRuleTemplateGroup(AWSObject): } +class InputRequestDestinationRoute(AWSProperty): + """ + `InputRequestDestinationRoute `__ + """ + + props: PropsDictType = { + "Cidr": (str, False), + "Gateway": (str, False), + } + + class InputDestinationRequest(AWSProperty): """ `InputDestinationRequest `__ """ props: PropsDictType = { + "Network": (str, False), + "NetworkRoutes": ([InputRequestDestinationRoute], False), + "StaticIpAddress": (str, False), "StreamName": (str, False), } @@ -2403,6 +2567,27 @@ class MediaConnectFlowRequest(AWSProperty): } +class MulticastSourceCreateRequest(AWSProperty): + """ + `MulticastSourceCreateRequest `__ + """ + + props: PropsDictType = { + "SourceIp": (str, False), + "Url": (str, False), + } + + +class MulticastSettingsCreateRequest(AWSProperty): + """ + `MulticastSettingsCreateRequest `__ + """ + + props: PropsDictType = { + "Sources": ([MulticastSourceCreateRequest], False), + } + + class SrtCallerDecryptionRequest(AWSProperty): """ `SrtCallerDecryptionRequest `__ @@ -2448,8 +2633,10 @@ class Input(AWSObject): props: PropsDictType = { "Destinations": ([InputDestinationRequest], False), "InputDevices": ([InputDeviceSettings], False), + "InputNetworkLocation": (str, False), "InputSecurityGroups": ([str], False), "MediaConnectFlows": ([MediaConnectFlowRequest], False), + "MulticastSettings": (MulticastSettingsCreateRequest, False), "Name": (str, False), "RoleArn": (str, False), "Sources": ([InputSourceRequest], False), @@ -2758,6 +2945,27 @@ class MonitorDeployment(AWSProperty): } +class MulticastSourceUpdateRequest(AWSProperty): + """ + `MulticastSourceUpdateRequest `__ + """ + + props: PropsDictType = { + "SourceIp": (str, False), + "Url": (str, False), + } + + +class MulticastSettingsUpdateRequest(AWSProperty): + """ + `MulticastSettingsUpdateRequest `__ + """ + + props: PropsDictType = { + "Sources": ([MulticastSourceUpdateRequest], False), + } + + class SuccessfulMonitorDeployment(AWSProperty): """ `SuccessfulMonitorDeployment `__ diff --git a/troposphere/mediapackagev2.py b/troposphere/mediapackagev2.py index 1da001405..6f558fd09 100644 --- a/troposphere/mediapackagev2.py +++ b/troposphere/mediapackagev2.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer class Channel(AWSObject): @@ -71,6 +71,7 @@ class FilterConfiguration(AWSProperty): """ props: PropsDictType = { + "ClipStartTime": (str, False), "End": (str, False), "ManifestFilter": (str, False), "Start": (str, False), @@ -128,6 +129,17 @@ class ScteHls(AWSProperty): } +class StartTag(AWSProperty): + """ + `StartTag `__ + """ + + props: PropsDictType = { + "Precise": (boolean, False), + "TimeOffset": (double, True), + } + + class HlsManifestConfiguration(AWSProperty): """ `HlsManifestConfiguration `__ @@ -140,6 +152,7 @@ class HlsManifestConfiguration(AWSProperty): "ManifestWindowSeconds": (integer, False), "ProgramDateTimeIntervalSeconds": (integer, False), "ScteHls": (ScteHls, False), + "StartTag": (StartTag, False), "Url": (str, False), } @@ -156,6 +169,7 @@ class LowLatencyHlsManifestConfiguration(AWSProperty): "ManifestWindowSeconds": (integer, False), "ProgramDateTimeIntervalSeconds": (integer, False), "ScteHls": (ScteHls, False), + "StartTag": (StartTag, False), "Url": (str, False), } diff --git a/troposphere/memorydb.py b/troposphere/memorydb.py index f404b89cf..fa9d0e014 100644 --- a/troposphere/memorydb.py +++ b/troposphere/memorydb.py @@ -49,10 +49,12 @@ class Cluster(AWSObject): "ClusterName": (str, True), "DataTiering": (str, False), "Description": (str, False), + "Engine": (str, False), "EngineVersion": (str, False), "FinalSnapshotName": (str, False), "KmsKeyId": (str, False), "MaintenanceWindow": (str, False), + "MultiRegionClusterName": (str, False), "NodeType": (str, True), "NumReplicasPerShard": (integer, False), "NumShards": (integer, False), @@ -71,6 +73,27 @@ class Cluster(AWSObject): } +class MultiRegionCluster(AWSObject): + """ + `MultiRegionCluster `__ + """ + + resource_type = "AWS::MemoryDB::MultiRegionCluster" + + props: PropsDictType = { + "Description": (str, False), + "Engine": (str, False), + "EngineVersion": (str, False), + "MultiRegionClusterNameSuffix": (str, False), + "MultiRegionParameterGroupName": (str, False), + "NodeType": (str, True), + "NumShards": (integer, False), + "TLSEnabled": (boolean, False), + "Tags": (Tags, False), + "UpdateStrategy": (str, False), + } + + class ParameterGroup(AWSObject): """ `ParameterGroup `__ diff --git a/troposphere/networkmanager.py b/troposphere/networkmanager.py index a5be55ba4..bf5ee0387 100644 --- a/troposphere/networkmanager.py +++ b/troposphere/networkmanager.py @@ -168,6 +168,26 @@ class Device(AWSObject): } +class DirectConnectGatewayAttachment(AWSObject): + """ + `DirectConnectGatewayAttachment `__ + """ + + resource_type = "AWS::NetworkManager::DirectConnectGatewayAttachment" + + props: PropsDictType = { + "CoreNetworkId": (str, True), + "DirectConnectGatewayArn": (str, True), + "EdgeLocations": ([str], True), + "ProposedNetworkFunctionGroupChange": ( + ProposedNetworkFunctionGroupChange, + False, + ), + "ProposedSegmentChange": (ProposedSegmentChange, False), + "Tags": (Tags, False), + } + + class GlobalNetwork(AWSObject): """ `GlobalNetwork `__ diff --git a/troposphere/nimblestudio.py b/troposphere/nimblestudio.py index 78d4bdd94..dfa4ec5d3 100644 --- a/troposphere/nimblestudio.py +++ b/troposphere/nimblestudio.py @@ -7,134 +7,6 @@ from . import AWSObject, AWSProperty, PropsDictType -from .validators import double - - -class StreamConfigurationSessionBackup(AWSProperty): - """ - `StreamConfigurationSessionBackup `__ - """ - - props: PropsDictType = { - "MaxBackupsToRetain": (double, False), - "Mode": (str, False), - } - - -class StreamingSessionStorageRoot(AWSProperty): - """ - `StreamingSessionStorageRoot `__ - """ - - props: PropsDictType = { - "Linux": (str, False), - "Windows": (str, False), - } - - -class StreamConfigurationSessionStorage(AWSProperty): - """ - `StreamConfigurationSessionStorage `__ - """ - - props: PropsDictType = { - "Mode": ([str], True), - "Root": (StreamingSessionStorageRoot, False), - } - - -class VolumeConfiguration(AWSProperty): - """ - `VolumeConfiguration `__ - """ - - props: PropsDictType = { - "Iops": (double, False), - "Size": (double, False), - "Throughput": (double, False), - } - - -class StreamConfiguration(AWSProperty): - """ - `StreamConfiguration `__ - """ - - props: PropsDictType = { - "AutomaticTerminationMode": (str, False), - "ClipboardMode": (str, True), - "Ec2InstanceTypes": ([str], True), - "MaxSessionLengthInMinutes": (double, False), - "MaxStoppedSessionLengthInMinutes": (double, False), - "SessionBackup": (StreamConfigurationSessionBackup, False), - "SessionPersistenceMode": (str, False), - "SessionStorage": (StreamConfigurationSessionStorage, False), - "StreamingImageIds": ([str], True), - "VolumeConfiguration": (VolumeConfiguration, False), - } - - -class LaunchProfile(AWSObject): - """ - `LaunchProfile `__ - """ - - resource_type = "AWS::NimbleStudio::LaunchProfile" - - props: PropsDictType = { - "Description": (str, False), - "Ec2SubnetIds": ([str], True), - "LaunchProfileProtocolVersions": ([str], True), - "Name": (str, True), - "StreamConfiguration": (StreamConfiguration, True), - "StudioComponentIds": ([str], True), - "StudioId": (str, True), - "Tags": (dict, False), - } - - -class StreamingImage(AWSObject): - """ - `StreamingImage `__ - """ - - resource_type = "AWS::NimbleStudio::StreamingImage" - - props: PropsDictType = { - "Description": (str, False), - "Ec2ImageId": (str, True), - "Name": (str, True), - "StudioId": (str, True), - "Tags": (dict, False), - } - - -class StudioEncryptionConfiguration(AWSProperty): - """ - `StudioEncryptionConfiguration `__ - """ - - props: PropsDictType = { - "KeyArn": (str, False), - "KeyType": (str, True), - } - - -class Studio(AWSObject): - """ - `Studio `__ - """ - - resource_type = "AWS::NimbleStudio::Studio" - - props: PropsDictType = { - "AdminRoleArn": (str, True), - "DisplayName": (str, True), - "StudioEncryptionConfiguration": (StudioEncryptionConfiguration, False), - "StudioName": (str, True), - "Tags": (dict, False), - "UserRoleArn": (str, True), - } class ScriptParameterKeyValue(AWSProperty): @@ -251,14 +123,3 @@ class StudioComponent(AWSObject): "Tags": (dict, False), "Type": (str, True), } - - -class StreamingImageEncryptionConfiguration(AWSProperty): - """ - `StreamingImageEncryptionConfiguration `__ - """ - - props: PropsDictType = { - "KeyArn": (str, False), - "KeyType": (str, True), - } diff --git a/troposphere/opensearchserverless.py b/troposphere/opensearchserverless.py index 862b49280..0bb79e943 100644 --- a/troposphere/opensearchserverless.py +++ b/troposphere/opensearchserverless.py @@ -56,6 +56,21 @@ class LifecyclePolicy(AWSObject): } +class IamIdentityCenterConfigOptions(AWSProperty): + """ + `IamIdentityCenterConfigOptions `__ + """ + + props: PropsDictType = { + "ApplicationArn": (str, False), + "ApplicationDescription": (str, False), + "ApplicationName": (str, False), + "GroupAttribute": (str, False), + "InstanceArn": (str, True), + "UserAttribute": (str, False), + } + + class SamlConfigOptions(AWSProperty): """ `SamlConfigOptions `__ @@ -78,6 +93,7 @@ class SecurityConfig(AWSObject): props: PropsDictType = { "Description": (str, False), + "IamIdentityCenterOptions": (IamIdentityCenterConfigOptions, False), "Name": (str, False), "SamlOptions": (SamlConfigOptions, False), "Type": (str, False), diff --git a/troposphere/opensearchservice.py b/troposphere/opensearchservice.py index 6ca30c92e..d90716e94 100644 --- a/troposphere/opensearchservice.py +++ b/troposphere/opensearchservice.py @@ -11,6 +11,57 @@ from .validators.opensearchservice import validate_search_service_engine_version +class AppConfig(AWSProperty): + """ + `AppConfig `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class DataSource(AWSProperty): + """ + `DataSource `__ + """ + + props: PropsDictType = { + "DataSourceArn": (str, True), + "DataSourceDescription": (str, False), + } + + +class IamIdentityCenterOptions(AWSProperty): + """ + `IamIdentityCenterOptions `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + "IamIdentityCenterInstanceArn": (str, False), + "IamRoleForIdentityCenterApplicationArn": (str, False), + } + + +class Application(AWSObject): + """ + `Application `__ + """ + + resource_type = "AWS::OpenSearchService::Application" + + props: PropsDictType = { + "AppConfigs": ([AppConfig], False), + "DataSources": ([DataSource], False), + "Endpoint": (str, False), + "IamIdentityCenterOptions": (IamIdentityCenterOptions, False), + "Name": (str, True), + "Tags": (Tags, False), + } + + class JWTOptions(AWSProperty): """ `JWTOptions `__ @@ -89,6 +140,29 @@ class ColdStorageOptions(AWSProperty): } +class NodeConfig(AWSProperty): + """ + `NodeConfig `__ + """ + + props: PropsDictType = { + "Count": (integer, False), + "Enabled": (boolean, False), + "Type": (str, False), + } + + +class NodeOption(AWSProperty): + """ + `NodeOption `__ + """ + + props: PropsDictType = { + "NodeConfig": (NodeConfig, False), + "NodeType": (str, False), + } + + class ZoneAwarenessConfig(AWSProperty): """ `ZoneAwarenessConfig `__ @@ -112,6 +186,7 @@ class ClusterConfig(AWSProperty): "InstanceCount": (integer, False), "InstanceType": (str, False), "MultiAZWithStandbyEnabled": (boolean, False), + "NodeOptions": ([NodeOption], False), "WarmCount": (integer, False), "WarmEnabled": (boolean, False), "WarmType": (str, False), @@ -172,6 +247,21 @@ class EncryptionAtRestOptions(AWSProperty): } +class IdentityCenterOptions(AWSProperty): + """ + `IdentityCenterOptions `__ + """ + + props: PropsDictType = { + "EnabledAPIAccess": (boolean, False), + "IdentityCenterApplicationARN": (str, False), + "IdentityCenterInstanceARN": (str, False), + "IdentityStoreId": (str, False), + "RolesKey": (str, False), + "SubjectKey": (str, False), + } + + class LogPublishingOption(AWSProperty): """ `LogPublishingOption `__ @@ -275,6 +365,7 @@ class Domain(AWSObject): "EncryptionAtRestOptions": (EncryptionAtRestOptions, False), "EngineVersion": (validate_search_service_engine_version, False), "IPAddressType": (str, False), + "IdentityCenterOptions": (IdentityCenterOptions, False), "LogPublishingOptions": (dict, False), "NodeToNodeEncryptionOptions": (NodeToNodeEncryptionOptions, False), "OffPeakWindowOptions": (OffPeakWindowOptions, False), diff --git a/troposphere/qbusiness.py b/troposphere/qbusiness.py index 70a715418..f4b466033 100644 --- a/troposphere/qbusiness.py +++ b/troposphere/qbusiness.py @@ -61,6 +61,16 @@ class QAppsConfiguration(AWSProperty): } +class QuickSightConfiguration(AWSProperty): + """ + `QuickSightConfiguration `__ + """ + + props: PropsDictType = { + "ClientNamespace": (str, True), + } + + class Application(AWSObject): """ `Application `__ @@ -80,32 +90,100 @@ class Application(AWSObject): "IdentityType": (str, False), "PersonalizationConfiguration": (PersonalizationConfiguration, False), "QAppsConfiguration": (QAppsConfiguration, False), + "QuickSightConfiguration": (QuickSightConfiguration, False), "RoleArn": (str, False), "Tags": (Tags, False), } -class DataSourceVpcConfiguration(AWSProperty): +class DocumentAttributeValue(AWSProperty): """ - `DataSourceVpcConfiguration `__ + `DocumentAttributeValue `__ """ props: PropsDictType = { - "SecurityGroupIds": ([str], True), - "SubnetIds": ([str], True), + "DateValue": (str, False), + "LongValue": (double, False), + "StringListValue": ([str], False), + "StringValue": (str, False), } -class DocumentAttributeValue(AWSProperty): +class DocumentAttribute(AWSProperty): """ - `DocumentAttributeValue `__ + `DocumentAttribute `__ """ props: PropsDictType = { - "DateValue": (str, False), - "LongValue": (double, False), - "StringListValue": ([str], False), - "StringValue": (str, False), + "Name": (str, True), + "Value": (DocumentAttributeValue, True), + } + + +class AttributeFilter(AWSProperty): + """ + `AttributeFilter `__ + """ + + props: PropsDictType = { + "AndAllFilters": ([object], False), + "ContainsAll": (DocumentAttribute, False), + "ContainsAny": (DocumentAttribute, False), + "EqualsTo": (DocumentAttribute, False), + "GreaterThan": (DocumentAttribute, False), + "GreaterThanOrEquals": (DocumentAttribute, False), + "LessThan": (DocumentAttribute, False), + "LessThanOrEquals": (DocumentAttribute, False), + "NotFilter": (object, False), + "OrAllFilters": ([object], False), + } + + +class ActionFilterConfiguration(AWSProperty): + """ + `ActionFilterConfiguration `__ + """ + + props: PropsDictType = { + "DocumentAttributeFilter": (AttributeFilter, True), + } + + +class ActionConfiguration(AWSProperty): + """ + `ActionConfiguration `__ + """ + + props: PropsDictType = { + "Action": (str, True), + "FilterConfiguration": (ActionFilterConfiguration, False), + } + + +class DataAccessor(AWSObject): + """ + `DataAccessor `__ + """ + + resource_type = "AWS::QBusiness::DataAccessor" + + props: PropsDictType = { + "ActionConfigurations": ([ActionConfiguration], True), + "ApplicationId": (str, True), + "DisplayName": (str, True), + "Principal": (str, True), + "Tags": (Tags, False), + } + + +class DataSourceVpcConfiguration(AWSProperty): + """ + `DataSourceVpcConfiguration `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "SubnetIds": ([str], True), } @@ -170,6 +248,26 @@ class DocumentEnrichmentConfiguration(AWSProperty): } +class ImageExtractionConfiguration(AWSProperty): + """ + `ImageExtractionConfiguration `__ + """ + + props: PropsDictType = { + "ImageExtractionStatus": (str, True), + } + + +class MediaExtractionConfiguration(AWSProperty): + """ + `MediaExtractionConfiguration `__ + """ + + props: PropsDictType = { + "ImageExtractionConfiguration": (ImageExtractionConfiguration, False), + } + + class DataSource(AWSObject): """ `DataSource `__ @@ -184,6 +282,7 @@ class DataSource(AWSObject): "DisplayName": (str, True), "DocumentEnrichmentConfiguration": (DocumentEnrichmentConfiguration, False), "IndexId": (str, True), + "MediaExtractionConfiguration": (MediaExtractionConfiguration, False), "RoleArn": (str, False), "SyncSchedule": (str, False), "Tags": (Tags, False), @@ -231,6 +330,21 @@ class Index(AWSObject): } +class Permission(AWSObject): + """ + `Permission `__ + """ + + resource_type = "AWS::QBusiness::Permission" + + props: PropsDictType = { + "Actions": ([str], True), + "ApplicationId": (str, True), + "Principal": (str, True), + "StatementId": (str, True), + } + + class S3(AWSProperty): """ `S3 `__ @@ -282,8 +396,10 @@ class OAuth2ClientCredentialConfiguration(AWSProperty): """ props: PropsDictType = { + "AuthorizationUrl": (str, False), "RoleArn": (str, True), "SecretArn": (str, True), + "TokenUrl": (str, False), } @@ -310,7 +426,7 @@ class Plugin(AWSObject): resource_type = "AWS::QBusiness::Plugin" props: PropsDictType = { - "ApplicationId": (str, True), + "ApplicationId": (str, False), "AuthConfiguration": (PluginAuthConfiguration, True), "CustomPluginConfiguration": (CustomPluginConfiguration, False), "DisplayName": (str, True), @@ -369,6 +485,19 @@ class Retriever(AWSObject): } +class CustomizationConfiguration(AWSProperty): + """ + `CustomizationConfiguration `__ + """ + + props: PropsDictType = { + "CustomCSSUrl": (str, False), + "FaviconUrl": (str, False), + "FontUrl": (str, False), + "LogoUrl": (str, False), + } + + class OpenIDConnectProviderConfiguration(AWSProperty): """ `OpenIDConnectProviderConfiguration `__ @@ -410,7 +539,9 @@ class WebExperience(AWSObject): props: PropsDictType = { "ApplicationId": (str, True), + "CustomizationConfiguration": (CustomizationConfiguration, False), "IdentityProviderConfiguration": (IdentityProviderConfiguration, False), + "Origins": ([str], False), "RoleArn": (str, False), "SamplePromptsControlMode": (str, False), "Subtitle": (str, False), diff --git a/troposphere/quicksight.py b/troposphere/quicksight.py index 34b677494..f4b1d88ef 100644 --- a/troposphere/quicksight.py +++ b/troposphere/quicksight.py @@ -255,7 +255,7 @@ class ThousandSeparatorOptions(AWSProperty): props: PropsDictType = { "Symbol": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -499,7 +499,7 @@ class LabelOptions(AWSProperty): props: PropsDictType = { "CustomLabel": (str, False), "FontConfiguration": (FontConfiguration, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -510,7 +510,7 @@ class SheetControlInfoIconLabelOptions(AWSProperty): props: PropsDictType = { "InfoIconText": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -544,7 +544,7 @@ class ListControlSelectAllOptions(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -589,7 +589,7 @@ class ListControlSearchOptions(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -672,7 +672,7 @@ class TextControlPlaceholderOptions(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -1439,7 +1439,7 @@ class FreeFormLayoutElementBackgroundStyle(AWSProperty): props: PropsDictType = { "Color": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -1450,7 +1450,7 @@ class FreeFormLayoutElementBorderStyle(AWSProperty): props: PropsDictType = { "Color": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -1460,7 +1460,7 @@ class LoadingAnimation(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -1470,7 +1470,7 @@ class SheetElementConfigurationOverrides(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -1499,7 +1499,7 @@ class FreeFormLayoutElement(AWSProperty): "LoadingAnimation": (LoadingAnimation, False), "RenderingRules": ([SheetElementRenderingRule], False), "SelectedBorderStyle": (FreeFormLayoutElementBorderStyle, False), - "Visibility": (str, False), + "Visibility": (dict, False), "Width": (str, True), "XAxisLocation": (str, True), "YAxisLocation": (str, True), @@ -1799,6 +1799,209 @@ class SheetControlLayout(AWSProperty): } +class LocalNavigationConfiguration(AWSProperty): + """ + `LocalNavigationConfiguration `__ + """ + + props: PropsDictType = { + "TargetSheetId": (str, True), + } + + +class CustomActionNavigationOperation(AWSProperty): + """ + `CustomActionNavigationOperation `__ + """ + + props: PropsDictType = { + "LocalNavigationConfiguration": (LocalNavigationConfiguration, False), + } + + +class CustomParameterValues(AWSProperty): + """ + `CustomParameterValues `__ + """ + + props: PropsDictType = { + "DateTimeValues": ([str], False), + "DecimalValues": ([double], False), + "IntegerValues": ([double], False), + "StringValues": ([str], False), + } + + +class CustomValuesConfiguration(AWSProperty): + """ + `CustomValuesConfiguration `__ + """ + + props: PropsDictType = { + "CustomValues": (CustomParameterValues, True), + "IncludeNullValue": (boolean, False), + } + + +class DestinationParameterValueConfiguration(AWSProperty): + """ + `DestinationParameterValueConfiguration `__ + """ + + props: PropsDictType = { + "CustomValuesConfiguration": (CustomValuesConfiguration, False), + "SelectAllValueOptions": (str, False), + "SourceColumn": (ColumnIdentifier, False), + "SourceField": (str, False), + "SourceParameterName": (str, False), + } + + +class SetParameterValueConfiguration(AWSProperty): + """ + `SetParameterValueConfiguration `__ + """ + + props: PropsDictType = { + "DestinationParameterName": (str, True), + "Value": (DestinationParameterValueConfiguration, True), + } + + +class CustomActionSetParametersOperation(AWSProperty): + """ + `CustomActionSetParametersOperation `__ + """ + + props: PropsDictType = { + "ParameterValueConfigurations": ([SetParameterValueConfiguration], True), + } + + +class CustomActionURLOperation(AWSProperty): + """ + `CustomActionURLOperation `__ + """ + + props: PropsDictType = { + "URLTarget": (str, True), + "URLTemplate": (str, True), + } + + +class ImageCustomActionOperation(AWSProperty): + """ + `ImageCustomActionOperation `__ + """ + + props: PropsDictType = { + "NavigationOperation": (CustomActionNavigationOperation, False), + "SetParametersOperation": (CustomActionSetParametersOperation, False), + "URLOperation": (CustomActionURLOperation, False), + } + + +class ImageCustomAction(AWSProperty): + """ + `ImageCustomAction `__ + """ + + props: PropsDictType = { + "ActionOperations": ([ImageCustomActionOperation], True), + "CustomActionId": (str, True), + "Name": (str, True), + "Status": (str, False), + "Trigger": (str, True), + } + + +class ImageMenuOption(AWSProperty): + """ + `ImageMenuOption `__ + """ + + props: PropsDictType = { + "AvailabilityStatus": (dict, False), + } + + +class ImageInteractionOptions(AWSProperty): + """ + `ImageInteractionOptions `__ + """ + + props: PropsDictType = { + "ImageMenuOption": (ImageMenuOption, False), + } + + +class SheetImageScalingConfiguration(AWSProperty): + """ + `SheetImageScalingConfiguration `__ + """ + + props: PropsDictType = { + "ScalingType": (str, False), + } + + +class SheetImageStaticFileSource(AWSProperty): + """ + `SheetImageStaticFileSource `__ + """ + + props: PropsDictType = { + "StaticFileId": (str, True), + } + + +class SheetImageSource(AWSProperty): + """ + `SheetImageSource `__ + """ + + props: PropsDictType = { + "SheetImageStaticFileSource": (SheetImageStaticFileSource, False), + } + + +class SheetImageTooltipText(AWSProperty): + """ + `SheetImageTooltipText `__ + """ + + props: PropsDictType = { + "PlainText": (str, False), + } + + +class SheetImageTooltipConfiguration(AWSProperty): + """ + `SheetImageTooltipConfiguration `__ + """ + + props: PropsDictType = { + "TooltipText": (SheetImageTooltipText, False), + "Visibility": (dict, False), + } + + +class SheetImage(AWSProperty): + """ + `SheetImage `__ + """ + + props: PropsDictType = { + "Actions": ([ImageCustomAction], False), + "ImageContentAltText": (str, False), + "Interactions": (ImageInteractionOptions, False), + "Scaling": (SheetImageScalingConfiguration, False), + "SheetImageId": (str, True), + "Source": (SheetImageSource, True), + "Tooltip": (SheetImageTooltipConfiguration, False), + } + + class SheetTextBox(AWSProperty): """ `SheetTextBox `__ @@ -1816,7 +2019,7 @@ class DateAxisOptions(AWSProperty): """ props: PropsDictType = { - "MissingDateVisibility": (str, False), + "MissingDateVisibility": (dict, False), } @@ -1934,7 +2137,7 @@ class ScrollBarOptions(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), "VisibleRange": (VisibleRangeOptions, False), } @@ -1945,10 +2148,10 @@ class AxisDisplayOptions(AWSProperty): """ props: PropsDictType = { - "AxisLineVisibility": (str, False), + "AxisLineVisibility": (dict, False), "AxisOffset": (str, False), "DataOptions": (AxisDataOptions, False), - "GridLineVisibility": (str, False), + "GridLineVisibility": (dict, False), "ScrollbarOptions": (ScrollBarOptions, False), "TickLabelOptions": (AxisTickLabelOptions, False), } @@ -2182,8 +2385,8 @@ class ChartAxisLabelOptions(AWSProperty): props: PropsDictType = { "AxisLabelOptions": ([AxisLabelOptions], False), - "SortIconVisibility": (str, False), - "Visibility": (str, False), + "SortIconVisibility": (dict, False), + "Visibility": (dict, False), } @@ -2206,7 +2409,7 @@ class DataPathLabelType(AWSProperty): props: PropsDictType = { "FieldId": (str, False), "FieldValue": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2217,7 +2420,7 @@ class FieldLabelType(AWSProperty): props: PropsDictType = { "FieldId": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2227,7 +2430,7 @@ class MaximumLabelType(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2237,7 +2440,7 @@ class MinimumLabelType(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2247,7 +2450,7 @@ class RangeEndsLabelType(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2271,16 +2474,16 @@ class DataLabelOptions(AWSProperty): """ props: PropsDictType = { - "CategoryLabelVisibility": (str, False), + "CategoryLabelVisibility": (dict, False), "DataLabelTypes": ([DataLabelType], False), "LabelColor": (str, False), "LabelContent": (str, False), "LabelFontConfiguration": (FontConfiguration, False), - "MeasureLabelVisibility": (str, False), + "MeasureLabelVisibility": (dict, False), "Overlap": (str, False), "Position": (str, False), - "TotalsVisibility": (str, False), - "Visibility": (str, False), + "TotalsVisibility": (dict, False), + "Visibility": (dict, False), } @@ -2293,7 +2496,8 @@ class LegendOptions(AWSProperty): "Height": (str, False), "Position": (str, False), "Title": (LabelOptions, False), - "Visibility": (str, False), + "ValueFontConfiguration": (FontConfiguration, False), + "Visibility": (dict, False), "Width": (str, False), } @@ -2401,7 +2605,7 @@ class PanelTitleOptions(AWSProperty): props: PropsDictType = { "FontConfiguration": (FontConfiguration, False), "HorizontalTextAlignment": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2412,13 +2616,13 @@ class PanelConfiguration(AWSProperty): props: PropsDictType = { "BackgroundColor": (str, False), - "BackgroundVisibility": (str, False), + "BackgroundVisibility": (dict, False), "BorderColor": (str, False), "BorderStyle": (str, False), "BorderThickness": (str, False), - "BorderVisibility": (str, False), + "BorderVisibility": (dict, False), "GutterSpacing": (str, False), - "GutterVisibility": (str, False), + "GutterVisibility": (dict, False), "Title": (PanelTitleOptions, False), } @@ -2458,7 +2662,7 @@ class ColumnTooltipItem(AWSProperty): "Column": (ColumnIdentifier, True), "Label": (str, False), "TooltipTarget": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2471,7 +2675,7 @@ class FieldTooltipItem(AWSProperty): "FieldId": (str, True), "Label": (str, False), "TooltipTarget": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -2492,7 +2696,7 @@ class FieldBasedTooltip(AWSProperty): """ props: PropsDictType = { - "AggregationVisibility": (str, False), + "AggregationVisibility": (dict, False), "TooltipFields": ([TooltipItem], False), "TooltipTitleType": (str, False), } @@ -2506,7 +2710,7 @@ class TooltipOptions(AWSProperty): props: PropsDictType = { "FieldBasedTooltip": (FieldBasedTooltip, False), "SelectedTooltipType": (str, False), - "TooltipVisibility": (str, False), + "TooltipVisibility": (dict, False), } @@ -2724,179 +2928,90 @@ class CustomActionFilterOperation(AWSProperty): } -class LocalNavigationConfiguration(AWSProperty): +class VisualCustomActionOperation(AWSProperty): """ - `LocalNavigationConfiguration `__ + `VisualCustomActionOperation `__ """ props: PropsDictType = { - "TargetSheetId": (str, True), + "FilterOperation": (CustomActionFilterOperation, False), + "NavigationOperation": (CustomActionNavigationOperation, False), + "SetParametersOperation": (CustomActionSetParametersOperation, False), + "URLOperation": (CustomActionURLOperation, False), } -class CustomActionNavigationOperation(AWSProperty): +class VisualCustomAction(AWSProperty): """ - `CustomActionNavigationOperation `__ + `VisualCustomAction `__ """ props: PropsDictType = { - "LocalNavigationConfiguration": (LocalNavigationConfiguration, False), + "ActionOperations": ([VisualCustomActionOperation], True), + "CustomActionId": (str, True), + "Name": (str, True), + "Status": (str, False), + "Trigger": (str, True), } -class CustomParameterValues(AWSProperty): +class LongFormatText(AWSProperty): """ - `CustomParameterValues `__ + `LongFormatText `__ """ props: PropsDictType = { - "DateTimeValues": ([str], False), - "DecimalValues": ([double], False), - "IntegerValues": ([double], False), - "StringValues": ([str], False), + "PlainText": (str, False), + "RichText": (str, False), } -class CustomValuesConfiguration(AWSProperty): +class VisualSubtitleLabelOptions(AWSProperty): """ - `CustomValuesConfiguration `__ + `VisualSubtitleLabelOptions `__ """ props: PropsDictType = { - "CustomValues": (CustomParameterValues, True), - "IncludeNullValue": (boolean, False), + "FormatText": (LongFormatText, False), + "Visibility": (dict, False), } -class DestinationParameterValueConfiguration(AWSProperty): +class ShortFormatText(AWSProperty): """ - `DestinationParameterValueConfiguration `__ + `ShortFormatText `__ """ props: PropsDictType = { - "CustomValuesConfiguration": (CustomValuesConfiguration, False), - "SelectAllValueOptions": (str, False), - "SourceColumn": (ColumnIdentifier, False), - "SourceField": (str, False), - "SourceParameterName": (str, False), + "PlainText": (str, False), + "RichText": (str, False), } -class SetParameterValueConfiguration(AWSProperty): +class VisualTitleLabelOptions(AWSProperty): """ - `SetParameterValueConfiguration `__ + `VisualTitleLabelOptions `__ """ props: PropsDictType = { - "DestinationParameterName": (str, True), - "Value": (DestinationParameterValueConfiguration, True), + "FormatText": (ShortFormatText, False), + "Visibility": (dict, False), } -class CustomActionSetParametersOperation(AWSProperty): +class BarChartVisual(AWSProperty): """ - `CustomActionSetParametersOperation `__ + `BarChartVisual `__ """ props: PropsDictType = { - "ParameterValueConfigurations": ([SetParameterValueConfiguration], True), - } - - -class CustomActionURLOperation(AWSProperty): - """ - `CustomActionURLOperation `__ - """ - - props: PropsDictType = { - "URLTarget": (str, True), - "URLTemplate": (str, True), - } - - -class VisualCustomActionOperation(AWSProperty): - """ - `VisualCustomActionOperation `__ - """ - - props: PropsDictType = { - "FilterOperation": (CustomActionFilterOperation, False), - "NavigationOperation": (CustomActionNavigationOperation, False), - "SetParametersOperation": (CustomActionSetParametersOperation, False), - "URLOperation": (CustomActionURLOperation, False), - } - - -class VisualCustomAction(AWSProperty): - """ - `VisualCustomAction `__ - """ - - props: PropsDictType = { - "ActionOperations": ([VisualCustomActionOperation], True), - "CustomActionId": (str, True), - "Name": (str, True), - "Status": (str, False), - "Trigger": (str, True), - } - - -class LongFormatText(AWSProperty): - """ - `LongFormatText `__ - """ - - props: PropsDictType = { - "PlainText": (str, False), - "RichText": (str, False), - } - - -class VisualSubtitleLabelOptions(AWSProperty): - """ - `VisualSubtitleLabelOptions `__ - """ - - props: PropsDictType = { - "FormatText": (LongFormatText, False), - "Visibility": (str, False), - } - - -class ShortFormatText(AWSProperty): - """ - `ShortFormatText `__ - """ - - props: PropsDictType = { - "PlainText": (str, False), - "RichText": (str, False), - } - - -class VisualTitleLabelOptions(AWSProperty): - """ - `VisualTitleLabelOptions `__ - """ - - props: PropsDictType = { - "FormatText": (ShortFormatText, False), - "Visibility": (str, False), - } - - -class BarChartVisual(AWSProperty): - """ - `BarChartVisual `__ - """ - - props: PropsDictType = { - "Actions": ([VisualCustomAction], False), - "ChartConfiguration": (BarChartConfiguration, False), - "ColumnHierarchies": ([ColumnHierarchy], False), - "Subtitle": (VisualSubtitleLabelOptions, False), - "Title": (VisualTitleLabelOptions, False), - "VisualId": (str, True), + "Actions": ([VisualCustomAction], False), + "ChartConfiguration": (BarChartConfiguration, False), + "ColumnHierarchies": ([ColumnHierarchy], False), + "Subtitle": (VisualSubtitleLabelOptions, False), + "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), + "VisualId": (str, True), } @@ -2937,8 +3052,8 @@ class BoxPlotOptions(AWSProperty): """ props: PropsDictType = { - "AllDataPointsVisibility": (str, False), - "OutlierVisibility": (str, False), + "AllDataPointsVisibility": (dict, False), + "OutlierVisibility": (dict, False), "StyleOptions": (BoxPlotStyleOptions, False), } @@ -2996,6 +3111,7 @@ class BoxPlotVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3093,6 +3209,7 @@ class ComboChartVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3120,6 +3237,7 @@ class CustomContentVisual(AWSProperty): "DataSetIdentifier": (str, True), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3324,6 +3442,7 @@ class FilledMapVisual(AWSProperty): "ConditionalFormatting": (FilledMapConditionalFormatting, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3334,13 +3453,13 @@ class FunnelChartDataLabelOptions(AWSProperty): """ props: PropsDictType = { - "CategoryLabelVisibility": (str, False), + "CategoryLabelVisibility": (dict, False), "LabelColor": (str, False), "LabelFontConfiguration": (FontConfiguration, False), "MeasureDataLabelStyle": (str, False), - "MeasureLabelVisibility": (str, False), + "MeasureLabelVisibility": (dict, False), "Position": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -3403,6 +3522,7 @@ class FunnelChartVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3616,6 +3736,7 @@ class GaugeChartVisual(AWSProperty): "ConditionalFormatting": (GaugeChartConditionalFormatting, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3741,6 +3862,7 @@ class GeospatialMapVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3831,6 +3953,7 @@ class HeatMapVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -3916,6 +4039,7 @@ class HistogramVisual(AWSProperty): "ChartConfiguration": (HistogramConfiguration, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -4116,6 +4240,7 @@ class InsightVisual(AWSProperty): "InsightConfiguration": (InsightConfiguration, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -4205,9 +4330,9 @@ class KPISparklineOptions(AWSProperty): props: PropsDictType = { "Color": (str, False), - "TooltipVisibility": (str, False), + "TooltipVisibility": (dict, False), "Type": (str, True), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -4217,102 +4342,476 @@ class KPIVisualStandardLayout(AWSProperty): """ props: PropsDictType = { - "Type": (str, True), + "Type": (str, True), + } + + +class KPIVisualLayoutOptions(AWSProperty): + """ + `KPIVisualLayoutOptions `__ + """ + + props: PropsDictType = { + "StandardLayout": (KPIVisualStandardLayout, False), + } + + +class ProgressBarOptions(AWSProperty): + """ + `ProgressBarOptions `__ + """ + + props: PropsDictType = { + "Visibility": (dict, False), + } + + +class SecondaryValueOptions(AWSProperty): + """ + `SecondaryValueOptions `__ + """ + + props: PropsDictType = { + "Visibility": (dict, False), + } + + +class TrendArrowOptions(AWSProperty): + """ + `TrendArrowOptions `__ + """ + + props: PropsDictType = { + "Visibility": (dict, False), + } + + +class KPIOptions(AWSProperty): + """ + `KPIOptions `__ + """ + + props: PropsDictType = { + "Comparison": (ComparisonConfiguration, False), + "PrimaryValueDisplayType": (str, False), + "PrimaryValueFontConfiguration": (FontConfiguration, False), + "ProgressBar": (ProgressBarOptions, False), + "SecondaryValue": (SecondaryValueOptions, False), + "SecondaryValueFontConfiguration": (FontConfiguration, False), + "Sparkline": (KPISparklineOptions, False), + "TrendArrows": (TrendArrowOptions, False), + "VisualLayoutOptions": (KPIVisualLayoutOptions, False), + } + + +class KPISortConfiguration(AWSProperty): + """ + `KPISortConfiguration `__ + """ + + props: PropsDictType = { + "TrendGroupSort": ([FieldSortOptions], False), + } + + +class KPIConfiguration(AWSProperty): + """ + `KPIConfiguration `__ + """ + + props: PropsDictType = { + "FieldWells": (KPIFieldWells, False), + "KPIOptions": (KPIOptions, False), + "SortConfiguration": (KPISortConfiguration, False), + } + + +class KPIVisual(AWSProperty): + """ + `KPIVisual `__ + """ + + props: PropsDictType = { + "Actions": ([VisualCustomAction], False), + "ChartConfiguration": (KPIConfiguration, False), + "ColumnHierarchies": ([ColumnHierarchy], False), + "ConditionalFormatting": (KPIConditionalFormatting, False), + "Subtitle": (VisualSubtitleLabelOptions, False), + "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), + "VisualId": (str, True), + } + + +class GeospatialStaticFileSource(AWSProperty): + """ + `GeospatialStaticFileSource `__ + """ + + props: PropsDictType = { + "StaticFileId": (str, True), + } + + +class GeospatialDataSourceItem(AWSProperty): + """ + `GeospatialDataSourceItem `__ + """ + + props: PropsDictType = { + "StaticFileDataSource": (GeospatialStaticFileSource, False), + } + + +class GeospatialCategoricalDataColor(AWSProperty): + """ + `GeospatialCategoricalDataColor `__ + """ + + props: PropsDictType = { + "Color": (str, True), + "DataValue": (str, True), + } + + +class GeospatialNullSymbolStyle(AWSProperty): + """ + `GeospatialNullSymbolStyle `__ + """ + + props: PropsDictType = { + "FillColor": (str, False), + "StrokeColor": (str, False), + "StrokeWidth": (double, False), + } + + +class GeospatialNullDataSettings(AWSProperty): + """ + `GeospatialNullDataSettings `__ + """ + + props: PropsDictType = { + "SymbolStyle": (GeospatialNullSymbolStyle, True), + } + + +class GeospatialCategoricalColor(AWSProperty): + """ + `GeospatialCategoricalColor `__ + """ + + props: PropsDictType = { + "CategoryDataColors": ([GeospatialCategoricalDataColor], True), + "DefaultOpacity": (double, False), + "NullDataSettings": (GeospatialNullDataSettings, False), + "NullDataVisibility": (str, False), + } + + +class GeospatialGradientStepColor(AWSProperty): + """ + `GeospatialGradientStepColor `__ + """ + + props: PropsDictType = { + "Color": (str, True), + "DataValue": (double, True), + } + + +class GeospatialGradientColor(AWSProperty): + """ + `GeospatialGradientColor `__ + """ + + props: PropsDictType = { + "DefaultOpacity": (double, False), + "NullDataSettings": (GeospatialNullDataSettings, False), + "NullDataVisibility": (str, False), + "StepColors": ([GeospatialGradientStepColor], True), + } + + +class GeospatialSolidColor(AWSProperty): + """ + `GeospatialSolidColor `__ + """ + + props: PropsDictType = { + "Color": (str, True), + "State": (str, False), + } + + +class GeospatialColor(AWSProperty): + """ + `GeospatialColor `__ + """ + + props: PropsDictType = { + "Categorical": (GeospatialCategoricalColor, False), + "Gradient": (GeospatialGradientColor, False), + "Solid": (GeospatialSolidColor, False), + } + + +class GeospatialLineWidth(AWSProperty): + """ + `GeospatialLineWidth `__ + """ + + props: PropsDictType = { + "LineWidth": (double, False), + } + + +class GeospatialLineSymbolStyle(AWSProperty): + """ + `GeospatialLineSymbolStyle `__ + """ + + props: PropsDictType = { + "FillColor": (GeospatialColor, False), + "LineWidth": (GeospatialLineWidth, False), + } + + +class GeospatialLineStyle(AWSProperty): + """ + `GeospatialLineStyle `__ + """ + + props: PropsDictType = { + "LineSymbolStyle": (GeospatialLineSymbolStyle, False), + } + + +class GeospatialLineLayer(AWSProperty): + """ + `GeospatialLineLayer `__ + """ + + props: PropsDictType = { + "Style": (GeospatialLineStyle, True), + } + + +class GeospatialCircleRadius(AWSProperty): + """ + `GeospatialCircleRadius `__ + """ + + props: PropsDictType = { + "Radius": (double, False), + } + + +class GeospatialCircleSymbolStyle(AWSProperty): + """ + `GeospatialCircleSymbolStyle `__ + """ + + props: PropsDictType = { + "CircleRadius": (GeospatialCircleRadius, False), + "FillColor": (GeospatialColor, False), + "StrokeColor": (GeospatialColor, False), + "StrokeWidth": (GeospatialLineWidth, False), + } + + +class GeospatialPointStyle(AWSProperty): + """ + `GeospatialPointStyle `__ + """ + + props: PropsDictType = { + "CircleSymbolStyle": (GeospatialCircleSymbolStyle, False), + } + + +class GeospatialPointLayer(AWSProperty): + """ + `GeospatialPointLayer `__ + """ + + props: PropsDictType = { + "Style": (GeospatialPointStyle, True), + } + + +class GeospatialPolygonSymbolStyle(AWSProperty): + """ + `GeospatialPolygonSymbolStyle `__ + """ + + props: PropsDictType = { + "FillColor": (GeospatialColor, False), + "StrokeColor": (GeospatialColor, False), + "StrokeWidth": (GeospatialLineWidth, False), + } + + +class GeospatialPolygonStyle(AWSProperty): + """ + `GeospatialPolygonStyle `__ + """ + + props: PropsDictType = { + "PolygonSymbolStyle": (GeospatialPolygonSymbolStyle, False), + } + + +class GeospatialPolygonLayer(AWSProperty): + """ + `GeospatialPolygonLayer `__ + """ + + props: PropsDictType = { + "Style": (GeospatialPolygonStyle, True), + } + + +class GeospatialLayerDefinition(AWSProperty): + """ + `GeospatialLayerDefinition `__ + """ + + props: PropsDictType = { + "LineLayer": (GeospatialLineLayer, False), + "PointLayer": (GeospatialPointLayer, False), + "PolygonLayer": (GeospatialPolygonLayer, False), + } + + +class GeospatialLayerColorField(AWSProperty): + """ + `GeospatialLayerColorField `__ + """ + + props: PropsDictType = { + "ColorDimensionsFields": ([DimensionField], False), + "ColorValuesFields": ([MeasureField], False), + } + + +class UnaggregatedField(AWSProperty): + """ + `UnaggregatedField `__ + """ + + props: PropsDictType = { + "Column": (ColumnIdentifier, True), + "FieldId": (str, True), + "FormatConfiguration": (FormatConfiguration, False), } -class KPIVisualLayoutOptions(AWSProperty): +class GeospatialLayerJoinDefinition(AWSProperty): """ - `KPIVisualLayoutOptions `__ + `GeospatialLayerJoinDefinition `__ """ props: PropsDictType = { - "StandardLayout": (KPIVisualStandardLayout, False), + "ColorField": (GeospatialLayerColorField, False), + "DatasetKeyField": (UnaggregatedField, False), + "ShapeKeyField": (str, False), } -class ProgressBarOptions(AWSProperty): +class LayerCustomActionOperation(AWSProperty): """ - `ProgressBarOptions `__ + `LayerCustomActionOperation `__ """ props: PropsDictType = { - "Visibility": (str, False), + "FilterOperation": (CustomActionFilterOperation, False), + "NavigationOperation": (CustomActionNavigationOperation, False), + "SetParametersOperation": (CustomActionSetParametersOperation, False), + "URLOperation": (CustomActionURLOperation, False), } -class SecondaryValueOptions(AWSProperty): +class LayerCustomAction(AWSProperty): """ - `SecondaryValueOptions `__ + `LayerCustomAction `__ """ props: PropsDictType = { - "Visibility": (str, False), + "ActionOperations": ([LayerCustomActionOperation], True), + "CustomActionId": (str, True), + "Name": (str, True), + "Status": (str, False), + "Trigger": (str, True), } -class TrendArrowOptions(AWSProperty): +class GeospatialLayerItem(AWSProperty): """ - `TrendArrowOptions `__ + `GeospatialLayerItem `__ """ props: PropsDictType = { + "Actions": ([LayerCustomAction], False), + "DataSource": (GeospatialDataSourceItem, False), + "JoinDefinition": (GeospatialLayerJoinDefinition, False), + "Label": (str, False), + "LayerDefinition": (GeospatialLayerDefinition, False), + "LayerId": (str, True), + "LayerType": (str, False), + "Tooltip": (TooltipOptions, False), "Visibility": (str, False), } -class KPIOptions(AWSProperty): +class GeospatialMapState(AWSProperty): """ - `KPIOptions `__ + `GeospatialMapState `__ """ props: PropsDictType = { - "Comparison": (ComparisonConfiguration, False), - "PrimaryValueDisplayType": (str, False), - "PrimaryValueFontConfiguration": (FontConfiguration, False), - "ProgressBar": (ProgressBarOptions, False), - "SecondaryValue": (SecondaryValueOptions, False), - "SecondaryValueFontConfiguration": (FontConfiguration, False), - "Sparkline": (KPISparklineOptions, False), - "TrendArrows": (TrendArrowOptions, False), - "VisualLayoutOptions": (KPIVisualLayoutOptions, False), + "Bounds": (GeospatialCoordinateBounds, False), + "MapNavigation": (str, False), } -class KPISortConfiguration(AWSProperty): +class GeospatialMapStyle(AWSProperty): """ - `KPISortConfiguration `__ + `GeospatialMapStyle `__ """ props: PropsDictType = { - "TrendGroupSort": ([FieldSortOptions], False), + "BackgroundColor": (str, False), + "BaseMapStyle": (str, False), + "BaseMapVisibility": (str, False), } -class KPIConfiguration(AWSProperty): +class GeospatialLayerMapConfiguration(AWSProperty): """ - `KPIConfiguration `__ + `GeospatialLayerMapConfiguration `__ """ props: PropsDictType = { - "FieldWells": (KPIFieldWells, False), - "KPIOptions": (KPIOptions, False), - "SortConfiguration": (KPISortConfiguration, False), + "Interactions": (dict, False), + "Legend": (LegendOptions, False), + "MapLayers": ([GeospatialLayerItem], False), + "MapState": (GeospatialMapState, False), + "MapStyle": (GeospatialMapStyle, False), } -class KPIVisual(AWSProperty): +class LayerMapVisual(AWSProperty): """ - `KPIVisual `__ + `LayerMapVisual `__ """ props: PropsDictType = { - "Actions": ([VisualCustomAction], False), - "ChartConfiguration": (KPIConfiguration, False), - "ColumnHierarchies": ([ColumnHierarchy], False), - "ConditionalFormatting": (KPIConditionalFormatting, False), + "ChartConfiguration": (GeospatialLayerMapConfiguration, False), + "DataSetIdentifier": (str, True), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -4385,7 +4884,7 @@ class LineChartLineStyleSettings(AWSProperty): props: PropsDictType = { "LineInterpolation": (str, False), "LineStyle": (str, False), - "LineVisibility": (str, False), + "LineVisibility": (dict, False), "LineWidth": (str, False), } @@ -4399,7 +4898,7 @@ class LineChartMarkerStyleSettings(AWSProperty): "MarkerColor": (str, False), "MarkerShape": (str, False), "MarkerSize": (str, False), - "MarkerVisibility": (str, False), + "MarkerVisibility": (dict, False), } @@ -4560,6 +5059,7 @@ class LineChartVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -4580,7 +5080,7 @@ class DonutCenterOptions(AWSProperty): """ props: PropsDictType = { - "LabelVisibility": (str, False), + "LabelVisibility": (dict, False), } @@ -4661,6 +5161,7 @@ class PieChartVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -4764,7 +5265,7 @@ class PivotTableFieldOption(AWSProperty): props: PropsDictType = { "CustomLabel": (str, False), "FieldId": (str, True), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -4809,7 +5310,7 @@ class PivotTableRowsLabelOptions(AWSProperty): props: PropsDictType = { "CustomLabel": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -4876,7 +5377,7 @@ class TableCellStyle(AWSProperty): "HorizontalTextAlignment": (str, False), "TextWrap": (str, False), "VerticalTextAlignment": (str, False), - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -4887,9 +5388,9 @@ class PivotTableOptions(AWSProperty): props: PropsDictType = { "CellStyle": (TableCellStyle, False), - "CollapsedRowDimensionsVisibility": (str, False), + "CollapsedRowDimensionsVisibility": (dict, False), "ColumnHeaderStyle": (TableCellStyle, False), - "ColumnNamesVisibility": (str, False), + "ColumnNamesVisibility": (dict, False), "DefaultCellWidth": (str, False), "MetricPlacement": (str, False), "RowAlternateColorOptions": (RowAlternateColorOptions, False), @@ -4897,8 +5398,8 @@ class PivotTableOptions(AWSProperty): "RowHeaderStyle": (TableCellStyle, False), "RowsLabelOptions": (PivotTableRowsLabelOptions, False), "RowsLayout": (str, False), - "SingleMetricVisibility": (str, False), - "ToggleButtonsVisibility": (str, False), + "SingleMetricVisibility": (dict, False), + "ToggleButtonsVisibility": (dict, False), } @@ -4908,8 +5409,8 @@ class PivotTablePaginatedReportOptions(AWSProperty): """ props: PropsDictType = { - "OverflowColumnHeaderVisibility": (str, False), - "VerticalOverflowVisibility": (str, False), + "OverflowColumnHeaderVisibility": (dict, False), + "VerticalOverflowVisibility": (dict, False), } @@ -4990,7 +5491,7 @@ class PivotTotalOptions(AWSProperty): "ScrollStatus": (str, False), "TotalAggregationOptions": ([TotalAggregationOption], False), "TotalCellStyle": (TableCellStyle, False), - "TotalsVisibility": (str, False), + "TotalsVisibility": (dict, False), "ValueCellStyle": (TableCellStyle, False), } @@ -5027,7 +5528,7 @@ class SubtotalOptions(AWSProperty): "MetricHeaderCellStyle": (TableCellStyle, False), "StyleTargets": ([TableStyleTarget], False), "TotalCellStyle": (TableCellStyle, False), - "TotalsVisibility": (str, False), + "TotalsVisibility": (dict, False), "ValueCellStyle": (TableCellStyle, False), } @@ -5071,6 +5572,99 @@ class PivotTableVisual(AWSProperty): "ConditionalFormatting": (PivotTableConditionalFormatting, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), + "VisualId": (str, True), + } + + +class PluginVisualFieldWell(AWSProperty): + """ + `PluginVisualFieldWell `__ + """ + + props: PropsDictType = { + "AxisName": (str, False), + "Dimensions": ([DimensionField], False), + "Measures": ([MeasureField], False), + "Unaggregated": ([UnaggregatedField], False), + } + + +class PluginVisualProperty(AWSProperty): + """ + `PluginVisualProperty `__ + """ + + props: PropsDictType = { + "Name": (str, False), + "Value": (str, False), + } + + +class PluginVisualOptions(AWSProperty): + """ + `PluginVisualOptions `__ + """ + + props: PropsDictType = { + "VisualProperties": ([PluginVisualProperty], False), + } + + +class PluginVisualItemsLimitConfiguration(AWSProperty): + """ + `PluginVisualItemsLimitConfiguration `__ + """ + + props: PropsDictType = { + "ItemsLimit": (double, False), + } + + +class PluginVisualTableQuerySort(AWSProperty): + """ + `PluginVisualTableQuerySort `__ + """ + + props: PropsDictType = { + "ItemsLimitConfiguration": (PluginVisualItemsLimitConfiguration, False), + "RowSort": ([FieldSortOptions], False), + } + + +class PluginVisualSortConfiguration(AWSProperty): + """ + `PluginVisualSortConfiguration `__ + """ + + props: PropsDictType = { + "PluginVisualTableQuerySort": (PluginVisualTableQuerySort, False), + } + + +class PluginVisualConfiguration(AWSProperty): + """ + `PluginVisualConfiguration `__ + """ + + props: PropsDictType = { + "FieldWells": ([PluginVisualFieldWell], False), + "SortConfiguration": (PluginVisualSortConfiguration, False), + "VisualOptions": (PluginVisualOptions, False), + } + + +class PluginVisual(AWSProperty): + """ + `PluginVisual `__ + """ + + props: PropsDictType = { + "ChartConfiguration": (PluginVisualConfiguration, False), + "PluginArn": (str, True), + "Subtitle": (VisualSubtitleLabelOptions, False), + "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5103,7 +5697,7 @@ class RadarChartAreaStyleSettings(AWSProperty): """ props: PropsDictType = { - "Visibility": (str, False), + "Visibility": (dict, False), } @@ -5136,7 +5730,7 @@ class RadarChartConfiguration(AWSProperty): """ props: PropsDictType = { - "AlternateBandColorsVisibility": (str, False), + "AlternateBandColorsVisibility": (dict, False), "AlternateBandEvenColor": (str, False), "AlternateBandOddColor": (str, False), "AxesRangeScale": (str, False), @@ -5165,6 +5759,7 @@ class RadarChartVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5225,6 +5820,7 @@ class SankeyDiagramVisual(AWSProperty): "ChartConfiguration": (SankeyDiagramChartConfiguration, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5300,6 +5896,7 @@ class ScatterPlotVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5430,7 +6027,7 @@ class TableFieldOption(AWSProperty): "CustomLabel": (str, False), "FieldId": (str, True), "URLStyling": (TableFieldURLConfiguration, False), - "Visibility": (str, False), + "Visibility": (dict, False), "Width": (str, False), } @@ -5468,18 +6065,6 @@ class TableAggregatedFieldWells(AWSProperty): } -class UnaggregatedField(AWSProperty): - """ - `UnaggregatedField `__ - """ - - props: PropsDictType = { - "Column": (ColumnIdentifier, True), - "FieldId": (str, True), - "FormatConfiguration": (FormatConfiguration, False), - } - - class TableUnaggregatedFieldWells(AWSProperty): """ `TableUnaggregatedFieldWells `__ @@ -5542,8 +6127,8 @@ class TablePaginatedReportOptions(AWSProperty): """ props: PropsDictType = { - "OverflowColumnHeaderVisibility": (str, False), - "VerticalOverflowVisibility": (str, False), + "OverflowColumnHeaderVisibility": (dict, False), + "VerticalOverflowVisibility": (dict, False), } @@ -5569,7 +6154,7 @@ class TotalOptions(AWSProperty): "ScrollStatus": (str, False), "TotalAggregationOptions": ([TotalAggregationOption], False), "TotalCellStyle": (TableCellStyle, False), - "TotalsVisibility": (str, False), + "TotalsVisibility": (dict, False), } @@ -5600,6 +6185,7 @@ class TableVisual(AWSProperty): "ConditionalFormatting": (TableConditionalFormatting, False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5666,6 +6252,7 @@ class TreeMapVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5769,6 +6356,7 @@ class WaterfallVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } @@ -5844,13 +6432,14 @@ class WordCloudVisual(AWSProperty): "ColumnHierarchies": ([ColumnHierarchy], False), "Subtitle": (VisualSubtitleLabelOptions, False), "Title": (VisualTitleLabelOptions, False), + "VisualContentAltText": (str, False), "VisualId": (str, True), } class Visual(AWSProperty): """ - `Visual `__ + `Visual `__ """ props: PropsDictType = { @@ -5867,9 +6456,11 @@ class Visual(AWSProperty): "HistogramVisual": (HistogramVisual, False), "InsightVisual": (InsightVisual, False), "KPIVisual": (KPIVisual, False), + "LayerMapVisual": (LayerMapVisual, False), "LineChartVisual": (LineChartVisual, False), "PieChartVisual": (PieChartVisual, False), "PivotTableVisual": (PivotTableVisual, False), + "PluginVisual": (PluginVisual, False), "RadarChartVisual": (RadarChartVisual, False), "SankeyDiagramVisual": (SankeyDiagramVisual, False), "ScatterPlotVisual": (ScatterPlotVisual, False), @@ -5889,6 +6480,7 @@ class SheetDefinition(AWSProperty): "ContentType": (str, False), "Description": (str, False), "FilterControls": ([FilterControl], False), + "Images": ([SheetImage], False), "Layouts": ([Layout], False), "Name": (str, False), "ParameterControls": ([ParameterControl], False), @@ -5900,6 +6492,72 @@ class SheetDefinition(AWSProperty): } +class StaticFileS3SourceOptions(AWSProperty): + """ + `StaticFileS3SourceOptions `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + "ObjectKey": (str, True), + "Region": (str, True), + } + + +class StaticFileUrlSourceOptions(AWSProperty): + """ + `StaticFileUrlSourceOptions `__ + """ + + props: PropsDictType = { + "Url": (str, True), + } + + +class StaticFileSource(AWSProperty): + """ + `StaticFileSource `__ + """ + + props: PropsDictType = { + "S3Options": (StaticFileS3SourceOptions, False), + "UrlOptions": (StaticFileUrlSourceOptions, False), + } + + +class ImageStaticFile(AWSProperty): + """ + `ImageStaticFile `__ + """ + + props: PropsDictType = { + "Source": (StaticFileSource, False), + "StaticFileId": (str, True), + } + + +class SpatialStaticFile(AWSProperty): + """ + `SpatialStaticFile `__ + """ + + props: PropsDictType = { + "Source": (StaticFileSource, False), + "StaticFileId": (str, True), + } + + +class StaticFile(AWSProperty): + """ + `StaticFile `__ + """ + + props: PropsDictType = { + "ImageStaticFile": (ImageStaticFile, False), + "SpatialStaticFile": (SpatialStaticFile, False), + } + + class AnalysisDefinition(AWSProperty): """ `AnalysisDefinition `__ @@ -5915,6 +6573,7 @@ class AnalysisDefinition(AWSProperty): "ParameterDeclarations": ([ParameterDeclaration], False), "QueryExecutionOptions": (QueryExecutionOptions, False), "Sheets": ([SheetDefinition], False), + "StaticFiles": ([StaticFile], False), } @@ -6046,6 +6705,7 @@ class Sheet(AWSProperty): """ props: PropsDictType = { + "Images": ([SheetImage], False), "Name": (str, False), "SheetId": (str, False), } @@ -6073,6 +6733,7 @@ class Analysis(AWSObject): "AwsAccountId": (str, True), "Definition": (AnalysisDefinition, False), "Errors": ([AnalysisError], False), + "FolderArns": ([str], False), "Name": (str, True), "Parameters": (Parameters, False), "Permissions": ([ResourcePermission], False), @@ -6085,6 +6746,47 @@ class Analysis(AWSObject): } +class Capabilities(AWSProperty): + """ + `Capabilities `__ + """ + + props: PropsDictType = { + "AddOrRunAnomalyDetectionForAnalyses": (str, False), + "CreateAndUpdateDashboardEmailReports": (str, False), + "CreateAndUpdateDataSources": (str, False), + "CreateAndUpdateDatasets": (str, False), + "CreateAndUpdateThemes": (str, False), + "CreateAndUpdateThresholdAlerts": (str, False), + "CreateSPICEDataset": (str, False), + "CreateSharedFolders": (str, False), + "ExportToCsv": (str, False), + "ExportToExcel": (str, False), + "RenameSharedFolders": (str, False), + "ShareAnalyses": (str, False), + "ShareDashboards": (str, False), + "ShareDataSources": (str, False), + "ShareDatasets": (str, False), + "SubscribeDashboardEmailReports": (str, False), + "ViewAccountSPICECapacity": (str, False), + } + + +class CustomPermissions(AWSObject): + """ + `CustomPermissions `__ + """ + + resource_type = "AWS::QuickSight::CustomPermissions" + + props: PropsDictType = { + "AwsAccountId": (str, True), + "Capabilities": (Capabilities, False), + "CustomPermissionsName": (str, True), + "Tags": (Tags, False), + } + + class AdHocFilteringOption(AWSProperty): """ `AdHocFilteringOption `__ @@ -6195,16 +6897,6 @@ class VisualAxisSortOption(AWSProperty): } -class VisualMenuOption(AWSProperty): - """ - `VisualMenuOption `__ - """ - - props: PropsDictType = { - "AvailabilityStatus": (str, False), - } - - class DashboardPublishOptions(AWSProperty): """ `DashboardPublishOptions `__ @@ -6223,7 +6915,7 @@ class DashboardPublishOptions(AWSProperty): False, ), "VisualAxisSortOption": (VisualAxisSortOption, False), - "VisualMenuOption": (VisualMenuOption, False), + "VisualMenuOption": (dict, False), "VisualPublishOptions": (DashboardVisualPublishOptions, False), } @@ -6263,6 +6955,7 @@ class DashboardVersionDefinition(AWSProperty): "Options": (AssetOptions, False), "ParameterDeclarations": ([ParameterDeclaration], False), "Sheets": ([SheetDefinition], False), + "StaticFiles": ([StaticFile], False), } @@ -6288,6 +6981,7 @@ class Dashboard(AWSObject): "DashboardId": (str, True), "DashboardPublishOptions": (DashboardPublishOptions, False), "Definition": (DashboardVersionDefinition, False), + "FolderArns": ([str], False), "LinkEntities": ([str], False), "LinkSharingConfiguration": (LinkSharingConfiguration, False), "Name": (str, True), @@ -6715,6 +7409,26 @@ class LogicalTable(AWSProperty): } +class UniqueKey(AWSProperty): + """ + `UniqueKey `__ + """ + + props: PropsDictType = { + "ColumnNames": ([str], True), + } + + +class PerformanceConfiguration(AWSProperty): + """ + `PerformanceConfiguration `__ + """ + + props: PropsDictType = { + "UniqueKeys": ([UniqueKey], False), + } + + class InputColumn(AWSProperty): """ `InputColumn `__ @@ -6733,7 +7447,7 @@ class CustomSql(AWSProperty): """ props: PropsDictType = { - "Columns": ([InputColumn], True), + "Columns": ([InputColumn], False), "DataSourceArn": (str, True), "Name": (str, True), "SqlQuery": (str, True), @@ -6748,26 +7462,12 @@ class RelationalTable(AWSProperty): props: PropsDictType = { "Catalog": (str, False), "DataSourceArn": (str, True), - "InputColumns": ([InputColumn], True), + "InputColumns": ([InputColumn], False), "Name": (str, True), "Schema": (str, False), } -class UploadSettings(AWSProperty): - """ - `UploadSettings `__ - """ - - props: PropsDictType = { - "ContainsHeader": (boolean, False), - "Delimiter": (str, False), - "Format": (str, False), - "StartFromRow": (double, False), - "TextQualifier": (str, False), - } - - class S3Source(AWSProperty): """ `S3Source `__ @@ -6776,7 +7476,7 @@ class S3Source(AWSProperty): props: PropsDictType = { "DataSourceArn": (str, True), "InputColumns": ([InputColumn], True), - "UploadSettings": (UploadSettings, False), + "UploadSettings": (dict, False), } @@ -6852,6 +7552,7 @@ class DataSet(AWSObject): "IngestionWaitPolicy": (IngestionWaitPolicy, False), "LogicalTableMap": (dict, False), "Name": (str, False), + "PerformanceConfiguration": (PerformanceConfiguration, False), "Permissions": ([ResourcePermission], False), "PhysicalTableMap": (dict, False), "RowLevelPermissionDataSet": (RowLevelPermissionDataSet, False), @@ -7061,14 +7762,40 @@ class S3Parameters(AWSProperty): } +class VpcConnectionProperties(AWSProperty): + """ + `VpcConnectionProperties `__ + """ + + props: PropsDictType = { + "VpcConnectionArn": (str, True), + } + + +class OAuthParameters(AWSProperty): + """ + `OAuthParameters `__ + """ + + props: PropsDictType = { + "IdentityProviderResourceUri": (str, False), + "IdentityProviderVpcConnectionProperties": (VpcConnectionProperties, False), + "OAuthScope": (str, False), + "TokenProviderUrl": (str, True), + } + + class SnowflakeParameters(AWSProperty): """ `SnowflakeParameters `__ """ props: PropsDictType = { + "AuthenticationType": (str, False), "Database": (str, True), + "DatabaseAccessControlRole": (str, False), "Host": (str, True), + "OAuthParameters": (OAuthParameters, False), "Warehouse": (str, True), } @@ -7102,8 +7829,11 @@ class StarburstParameters(AWSProperty): """ props: PropsDictType = { + "AuthenticationType": (str, False), "Catalog": (str, True), + "DatabaseAccessControlRole": (str, False), "Host": (str, True), + "OAuthParameters": (OAuthParameters, False), "Port": (double, True), "ProductType": (str, False), } @@ -7207,16 +7937,6 @@ class SslProperties(AWSProperty): } -class VpcConnectionProperties(AWSProperty): - """ - `VpcConnectionProperties `__ - """ - - props: PropsDictType = { - "VpcConnectionArn": (str, True), - } - - class DataSource(AWSObject): """ `DataSource `__ @@ -7231,6 +7951,7 @@ class DataSource(AWSObject): "DataSourceId": (str, False), "DataSourceParameters": (DataSourceParameters, False), "ErrorInfo": (DataSourceErrorInfo, False), + "FolderArns": ([str], False), "Name": (str, True), "Permissions": ([ResourcePermission], False), "SslProperties": (SslProperties, False), diff --git a/troposphere/rds.py b/troposphere/rds.py index ba8d6d769..73c9e78f8 100644 --- a/troposphere/rds.py +++ b/troposphere/rds.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer from .validators.rds import ( validate_backtrack_window, validate_backup_retention_period, @@ -94,6 +94,7 @@ class ServerlessV2ScalingConfiguration(AWSProperty): props: PropsDictType = { "MaxCapacity": (validate_v2_max_capacity, False), "MinCapacity": (validate_v2_capacity, False), + "SecondsUntilAutoPause": (integer, False), } @@ -111,6 +112,7 @@ class DBCluster(AWSObject): "AvailabilityZones": ([str], False), "BacktrackWindow": (validate_backtrack_window, False), "BackupRetentionPeriod": (validate_backup_retention_period, False), + "ClusterScalabilityType": (str, False), "CopyTagsToSnapshot": (boolean, False), "DBClusterIdentifier": (str, False), "DBClusterInstanceClass": (str, False), @@ -118,6 +120,7 @@ class DBCluster(AWSObject): "DBInstanceParameterGroupName": (str, False), "DBSubnetGroupName": (str, False), "DBSystemId": (str, False), + "DatabaseInsightsMode": (str, False), "DatabaseName": (str, False), "DeletionProtection": (boolean, False), "Domain": (str, False), @@ -256,6 +259,7 @@ class DBInstance(AWSObject): "DBSecurityGroups": (list, False), "DBSnapshotIdentifier": (str, False), "DBSubnetGroupName": (str, False), + "DBSystemId": (str, False), "DedicatedLogVolume": (boolean, False), "DeleteAutomatedBackups": (boolean, False), "DeletionProtection": (boolean, False), @@ -460,6 +464,24 @@ class DBSecurityGroupIngress(AWSObject): } +class DBShardGroup(AWSObject): + """ + `DBShardGroup `__ + """ + + resource_type = "AWS::RDS::DBShardGroup" + + props: PropsDictType = { + "ComputeRedundancy": (integer, False), + "DBClusterIdentifier": (str, True), + "DBShardGroupIdentifier": (str, False), + "MaxACU": (double, True), + "MinACU": (double, False), + "PubliclyAccessible": (boolean, False), + "Tags": (Tags, False), + } + + class DBSubnetGroup(AWSObject): """ `DBSubnetGroup `__ @@ -493,6 +515,16 @@ class EventSubscription(AWSObject): } +class GlobalEndpoint(AWSProperty): + """ + `GlobalEndpoint `__ + """ + + props: PropsDictType = { + "Address": (str, False), + } + + class GlobalCluster(AWSObject): """ `GlobalCluster `__ @@ -506,6 +538,7 @@ class GlobalCluster(AWSObject): "EngineLifecycleSupport": (str, False), "EngineVersion": (str, False), "GlobalClusterIdentifier": (str, False), + "GlobalEndpoint": (GlobalEndpoint, False), "SourceDBClusterIdentifier": (str, False), "StorageEncrypted": (boolean, False), "Tags": (Tags, False), diff --git a/troposphere/redshift.py b/troposphere/redshift.py index 169cb0820..456fb8dac 100644 --- a/troposphere/redshift.py +++ b/troposphere/redshift.py @@ -216,6 +216,23 @@ class EventSubscription(AWSObject): } +class Integration(AWSObject): + """ + `Integration `__ + """ + + resource_type = "AWS::Redshift::Integration" + + props: PropsDictType = { + "AdditionalEncryptionContext": (dict, False), + "IntegrationName": (str, False), + "KMSKeyId": (str, False), + "SourceArn": (str, True), + "Tags": (Tags, False), + "TargetArn": (str, True), + } + + class PauseClusterMessage(AWSProperty): """ `PauseClusterMessage `__ diff --git a/troposphere/redshiftserverless.py b/troposphere/redshiftserverless.py index bbe4c6d0a..5f19c0d7c 100755 --- a/troposphere/redshiftserverless.py +++ b/troposphere/redshiftserverless.py @@ -60,6 +60,17 @@ class ConfigParameter(AWSProperty): } +class PerformanceTarget(AWSProperty): + """ + `PerformanceTarget `__ + """ + + props: PropsDictType = { + "Level": (integer, False), + "Status": (str, False), + } + + class NetworkInterface(AWSProperty): """ `NetworkInterface `__ @@ -110,6 +121,7 @@ class WorkgroupProperty(AWSProperty): "EnhancedVpcRouting": (boolean, False), "MaxCapacity": (integer, False), "NamespaceName": (str, False), + "PricePerformanceTarget": (PerformanceTarget, False), "PubliclyAccessible": (boolean, False), "SecurityGroupIds": ([str], False), "Status": (str, False), @@ -134,6 +146,7 @@ class Workgroup(AWSObject): "MaxCapacity": (integer, False), "NamespaceName": (str, False), "Port": (integer, False), + "PricePerformanceTarget": (PerformanceTarget, False), "PubliclyAccessible": (boolean, False), "SecurityGroupIds": ([str], False), "SubnetIds": ([str], False), diff --git a/troposphere/refactorspaces.py b/troposphere/refactorspaces.py index 9b3b6d12a..cd9e7b578 100644 --- a/troposphere/refactorspaces.py +++ b/troposphere/refactorspaces.py @@ -47,8 +47,8 @@ class Environment(AWSObject): props: PropsDictType = { "Description": (str, False), - "Name": (str, True), - "NetworkFabricType": (str, True), + "Name": (str, False), + "NetworkFabricType": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/resourcegroups.py b/troposphere/resourcegroups.py index 9d742e2cf..10e3ad202 100644 --- a/troposphere/resourcegroups.py +++ b/troposphere/resourcegroups.py @@ -81,3 +81,18 @@ class Group(AWSObject): "Resources": ([str], False), "Tags": (Tags, False), } + + +class TagSyncTask(AWSObject): + """ + `TagSyncTask `__ + """ + + resource_type = "AWS::ResourceGroups::TagSyncTask" + + props: PropsDictType = { + "Group": (str, True), + "RoleArn": (str, True), + "TagKey": (str, True), + "TagValue": (str, True), + } diff --git a/troposphere/route53resolver.py b/troposphere/route53resolver.py index f5181cd9c..0d6902f2c 100644 --- a/troposphere/route53resolver.py +++ b/troposphere/route53resolver.py @@ -37,8 +37,11 @@ class FirewallRule(AWSProperty): "BlockOverrideDomain": (str, False), "BlockOverrideTtl": (integer, False), "BlockResponse": (str, False), - "FirewallDomainListId": (str, True), + "ConfidenceThreshold": (str, False), + "DnsThreatProtection": (str, False), + "FirewallDomainListId": (str, False), "FirewallDomainRedirectionAction": (str, False), + "FirewallThreatProtectionId": (str, False), "Priority": (integer, True), "Qtype": (str, False), } @@ -184,6 +187,7 @@ class TargetAddress(AWSProperty): "Ipv6": (str, False), "Port": (str, False), "Protocol": (str, False), + "ServerNameIndication": (str, False), } @@ -195,7 +199,6 @@ class ResolverRule(AWSObject): resource_type = "AWS::Route53Resolver::ResolverRule" props: PropsDictType = { - "DelegationRecord": (str, False), "DomainName": (str, False), "Name": (str, False), "ResolverEndpointId": (str, False), diff --git a/troposphere/s3express.py b/troposphere/s3express.py index d5086ee00..7bd1f38a8 100644 --- a/troposphere/s3express.py +++ b/troposphere/s3express.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType -from .validators import boolean +from .validators import boolean, integer class BucketPolicy(AWSObject): @@ -55,6 +55,42 @@ class BucketEncryption(AWSProperty): } +class AbortIncompleteMultipartUpload(AWSProperty): + """ + `AbortIncompleteMultipartUpload `__ + """ + + props: PropsDictType = { + "DaysAfterInitiation": (integer, True), + } + + +class Rule(AWSProperty): + """ + `Rule `__ + """ + + props: PropsDictType = { + "AbortIncompleteMultipartUpload": (AbortIncompleteMultipartUpload, False), + "ExpirationInDays": (integer, False), + "Id": (str, False), + "ObjectSizeGreaterThan": (str, False), + "ObjectSizeLessThan": (str, False), + "Prefix": (str, False), + "Status": (str, True), + } + + +class LifecycleConfiguration(AWSProperty): + """ + `LifecycleConfiguration `__ + """ + + props: PropsDictType = { + "Rules": ([Rule], True), + } + + class DirectoryBucket(AWSObject): """ `DirectoryBucket `__ @@ -66,5 +102,6 @@ class DirectoryBucket(AWSObject): "BucketEncryption": (BucketEncryption, False), "BucketName": (str, False), "DataRedundancy": (str, True), + "LifecycleConfiguration": (LifecycleConfiguration, False), "LocationName": (str, True), } diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index ff332515e..1704a28cf 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -167,6 +167,17 @@ class ClusterLifeCycleConfig(AWSProperty): } +class VpcConfig(AWSProperty): + """ + `VpcConfig `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "Subnets": ([str], True), + } + + class ClusterInstanceGroup(AWSProperty): """ `ClusterInstanceGroup `__ @@ -181,6 +192,7 @@ class ClusterInstanceGroup(AWSProperty): "InstanceType": (str, True), "LifeCycleConfig": (ClusterLifeCycleConfig, True), "OnStartDeepHealthChecks": ([str], False), + "OverrideVpcConfig": (VpcConfig, False), "ThreadsPerCore": (integer, False), } @@ -205,17 +217,6 @@ class Orchestrator(AWSProperty): } -class VpcConfig(AWSProperty): - """ - `VpcConfig `__ - """ - - props: PropsDictType = { - "SecurityGroupIds": ([str], True), - "Subnets": ([str], True), - } - - class Cluster(AWSObject): """ `Cluster `__ @@ -542,6 +543,17 @@ class EFSFileSystemConfig(AWSProperty): } +class FSxLustreFileSystemConfig(AWSProperty): + """ + `FSxLustreFileSystemConfig `__ + """ + + props: PropsDictType = { + "FileSystemId": (str, True), + "FileSystemPath": (str, False), + } + + class CustomFileSystemConfig(AWSProperty): """ `CustomFileSystemConfig `__ @@ -549,6 +561,7 @@ class CustomFileSystemConfig(AWSProperty): props: PropsDictType = { "EFSFileSystemConfig": (EFSFileSystemConfig, False), + "FSxLustreFileSystemConfig": (FSxLustreFileSystemConfig, False), } @@ -714,6 +727,7 @@ class DomainSettings(AWSProperty): props: PropsDictType = { "DockerSettings": (DockerSettings, False), + "ExecutionRoleIdentityConfig": (str, False), "RStudioServerProDomainSettings": (RStudioServerProDomainSettings, False), "SecurityGroupIds": ([str], False), } @@ -806,6 +820,7 @@ class Domain(AWSObject): "DomainSettings": (DomainSettings, False), "KmsKeyId": (str, False), "SubnetIds": ([str], True), + "TagPropagation": (str, False), "Tags": (Tags, False), "VpcId": (str, True), } @@ -1121,7 +1136,6 @@ class ProductionVariant(AWSProperty): """ props: PropsDictType = { - "AcceleratorType": (str, False), "ContainerStartupHealthCheckTimeoutInSeconds": (integer, False), "EnableSSMAccess": (boolean, False), "InitialInstanceCount": (integer, False), @@ -1308,7 +1322,6 @@ class ImageVersion(AWSObject): "ProgrammingLang": (str, False), "ReleaseNotes": (str, False), "VendorGuidance": (str, False), - "Version": (integer, False), } @@ -1379,9 +1392,10 @@ class InferenceComponentSpecification(AWSProperty): """ props: PropsDictType = { + "BaseInferenceComponentName": (str, False), "ComputeResourceRequirements": ( InferenceComponentComputeResourceRequirements, - True, + False, ), "Container": (InferenceComponentContainerSpecification, False), "ModelName": (str, False), @@ -1400,10 +1414,10 @@ class InferenceComponent(AWSObject): "EndpointArn": (str, False), "EndpointName": (str, True), "InferenceComponentName": (str, False), - "RuntimeConfig": (InferenceComponentRuntimeConfig, True), + "RuntimeConfig": (InferenceComponentRuntimeConfig, False), "Specification": (InferenceComponentSpecification, True), "Tags": (Tags, False), - "VariantName": (str, True), + "VariantName": (str, False), } @@ -2760,6 +2774,47 @@ class NotebookInstanceLifecycleConfig(AWSObject): } +class PartnerAppConfig(AWSProperty): + """ + `PartnerAppConfig `__ + """ + + props: PropsDictType = { + "AdminUsers": ([str], False), + "Arguments": (dict, False), + } + + +class PartnerAppMaintenanceConfig(AWSProperty): + """ + `PartnerAppMaintenanceConfig `__ + """ + + props: PropsDictType = { + "MaintenanceWindowStart": (str, True), + } + + +class PartnerApp(AWSObject): + """ + `PartnerApp `__ + """ + + resource_type = "AWS::SageMaker::PartnerApp" + + props: PropsDictType = { + "ApplicationConfig": (PartnerAppConfig, False), + "AuthType": (str, True), + "EnableIamSessionBasedIdentity": (boolean, False), + "ExecutionRoleArn": (str, True), + "MaintenanceConfig": (PartnerAppMaintenanceConfig, False), + "Name": (str, True), + "Tags": (Tags, False), + "Tier": (str, True), + "Type": (str, True), + } + + class ParallelismConfiguration(AWSProperty): """ `ParallelismConfiguration `__ @@ -2886,6 +2941,16 @@ class EFSFileSystem(AWSProperty): } +class FSxLustreFileSystem(AWSProperty): + """ + `FSxLustreFileSystem `__ + """ + + props: PropsDictType = { + "FileSystemId": (str, True), + } + + class CustomFileSystem(AWSProperty): """ `CustomFileSystem `__ @@ -2893,6 +2958,7 @@ class CustomFileSystem(AWSProperty): props: PropsDictType = { "EFSFileSystem": (EFSFileSystem, False), + "FSxLustreFileSystem": (FSxLustreFileSystem, False), } diff --git a/troposphere/servicediscovery.py b/troposphere/servicediscovery.py index 19052d111..41a6eb1f6 100644 --- a/troposphere/servicediscovery.py +++ b/troposphere/servicediscovery.py @@ -158,6 +158,7 @@ class Service(AWSObject): "HealthCheckCustomConfig": (HealthCheckCustomConfig, False), "Name": (str, False), "NamespaceId": (str, False), + "ServiceAttributes": (dict, False), "Tags": (Tags, False), "Type": (str, False), } diff --git a/troposphere/ses.py b/troposphere/ses.py index bfb5d3f81..1f0b5393d 100644 --- a/troposphere/ses.py +++ b/troposphere/ses.py @@ -16,6 +16,7 @@ class DeliveryOptions(AWSProperty): """ props: PropsDictType = { + "MaxDeliverySeconds": (double, False), "SendingPoolName": (str, False), "TlsPolicy": (str, False), } @@ -444,6 +445,19 @@ class DeliverToMailboxAction(AWSProperty): } +class DeliverToQBusinessAction(AWSProperty): + """ + `DeliverToQBusinessAction `__ + """ + + props: PropsDictType = { + "ActionFailurePolicy": (str, False), + "ApplicationId": (str, True), + "IndexId": (str, True), + "RoleArn": (str, True), + } + + class MailManagerS3Action(AWSProperty): """ `MailManagerS3Action `__ @@ -500,6 +514,7 @@ class RuleAction(AWSProperty): "AddHeader": (AddHeaderAction, False), "Archive": (ArchiveAction, False), "DeliverToMailbox": (DeliverToMailboxAction, False), + "DeliverToQBusiness": (DeliverToQBusinessAction, False), "Drop": (dict, False), "Relay": (RelayAction, False), "ReplaceRecipient": (ReplaceRecipientAction, False), @@ -869,6 +884,17 @@ class BounceAction(AWSProperty): } +class ConnectAction(AWSProperty): + """ + `ConnectAction `__ + """ + + props: PropsDictType = { + "IAMRoleARN": (str, True), + "InstanceARN": (str, True), + } + + class LambdaAction(AWSProperty): """ `LambdaAction `__ @@ -936,6 +962,7 @@ class Action(AWSProperty): props: PropsDictType = { "AddHeaderAction": (AddHeaderAction, False), "BounceAction": (BounceAction, False), + "ConnectAction": (ConnectAction, False), "LambdaAction": (LambdaAction, False), "S3Action": (S3Action, False), "SNSAction": (SNSAction, False), diff --git a/troposphere/synthetics.py b/troposphere/synthetics.py index d247fff38..acb870a73 100644 --- a/troposphere/synthetics.py +++ b/troposphere/synthetics.py @@ -77,6 +77,7 @@ class VPCConfig(AWSProperty): """ props: PropsDictType = { + "Ipv6AllowedForDualStack": (boolean, False), "SecurityGroupIds": ([str], True), "SubnetIds": ([str], True), "VpcId": (str, False), @@ -119,6 +120,7 @@ class Canary(AWSObject): "ExecutionRoleArn": (str, True), "FailureRetentionPeriod": (integer, False), "Name": (str, True), + "ProvisionedResourceCleanup": (str, False), "ResourcesToReplicateTags": ([str], False), "RunConfig": (RunConfig, False), "RuntimeVersion": (canary_runtime_version, True), diff --git a/troposphere/vpclattice.py b/troposphere/vpclattice.py index 16f1e96f8..938ddc9ba 100644 --- a/troposphere/vpclattice.py +++ b/troposphere/vpclattice.py @@ -20,6 +20,7 @@ class AccessLogSubscription(AWSObject): props: PropsDictType = { "DestinationArn": (str, True), "ResourceIdentifier": (str, False), + "ServiceNetworkLogType": (str, False), "Tags": (Tags, False), } @@ -96,6 +97,67 @@ class Listener(AWSObject): } +class DnsResource(AWSProperty): + """ + `DnsResource `__ + """ + + props: PropsDictType = { + "DomainName": (str, True), + "IpAddressType": (str, True), + } + + +class ResourceConfigurationDefinition(AWSProperty): + """ + `ResourceConfigurationDefinition `__ + """ + + props: PropsDictType = { + "ArnResource": (str, False), + "DnsResource": (DnsResource, False), + "IpResource": (str, False), + } + + +class ResourceConfiguration(AWSObject): + """ + `ResourceConfiguration `__ + """ + + resource_type = "AWS::VpcLattice::ResourceConfiguration" + + props: PropsDictType = { + "AllowAssociationToSharableServiceNetwork": (boolean, False), + "Name": (str, False), + "PortRanges": ([str], False), + "ProtocolType": (str, False), + "ResourceConfigurationAuthType": (str, False), + "ResourceConfigurationDefinition": (ResourceConfigurationDefinition, False), + "ResourceConfigurationGroupId": (str, False), + "ResourceConfigurationType": (str, False), + "ResourceGatewayId": (str, False), + "Tags": (Tags, False), + } + + +class ResourceGateway(AWSObject): + """ + `ResourceGateway `__ + """ + + resource_type = "AWS::VpcLattice::ResourceGateway" + + props: PropsDictType = { + "IpAddressType": (str, False), + "Name": (str, False), + "SecurityGroupIds": ([str], False), + "SubnetIds": ([str], False), + "Tags": (Tags, False), + "VpcIdentifier": (str, False), + } + + class ResourcePolicy(AWSObject): """ `ResourcePolicy `__ @@ -234,6 +296,16 @@ class Service(AWSObject): } +class SharingConfig(AWSProperty): + """ + `SharingConfig `__ + """ + + props: PropsDictType = { + "enabled": (boolean, True), + } + + class ServiceNetwork(AWSObject): """ `ServiceNetwork `__ @@ -244,6 +316,21 @@ class ServiceNetwork(AWSObject): props: PropsDictType = { "AuthType": (str, False), "Name": (str, False), + "SharingConfig": (SharingConfig, False), + "Tags": (Tags, False), + } + + +class ServiceNetworkResourceAssociation(AWSObject): + """ + `ServiceNetworkResourceAssociation `__ + """ + + resource_type = "AWS::VpcLattice::ServiceNetworkResourceAssociation" + + props: PropsDictType = { + "ResourceConfigurationId": (str, False), + "ServiceNetworkId": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/wisdom.py b/troposphere/wisdom.py index dec30bfce..44b9033d2 100644 --- a/troposphere/wisdom.py +++ b/troposphere/wisdom.py @@ -7,6 +7,394 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags +from .validators import double + + +class TagCondition(AWSProperty): + """ + `TagCondition `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, False), + } + + +class OrCondition(AWSProperty): + """ + `OrCondition `__ + """ + + props: PropsDictType = { + "AndConditions": ([TagCondition], False), + "TagCondition": (TagCondition, False), + } + + +class TagFilter(AWSProperty): + """ + `TagFilter `__ + """ + + props: PropsDictType = { + "AndConditions": ([TagCondition], False), + "OrConditions": ([OrCondition], False), + "TagCondition": (TagCondition, False), + } + + +class KnowledgeBaseAssociationConfigurationData(AWSProperty): + """ + `KnowledgeBaseAssociationConfigurationData `__ + """ + + props: PropsDictType = { + "ContentTagFilter": (TagFilter, False), + "MaxResults": (double, False), + "OverrideKnowledgeBaseSearchType": (str, False), + } + + +class AssociationConfigurationData(AWSProperty): + """ + `AssociationConfigurationData `__ + """ + + props: PropsDictType = { + "KnowledgeBaseAssociationConfigurationData": ( + KnowledgeBaseAssociationConfigurationData, + True, + ), + } + + +class AssociationConfiguration(AWSProperty): + """ + `AssociationConfiguration `__ + """ + + props: PropsDictType = { + "AssociationConfigurationData": (AssociationConfigurationData, False), + "AssociationId": (str, False), + "AssociationType": (str, False), + } + + +class AnswerRecommendationAIAgentConfiguration(AWSProperty): + """ + `AnswerRecommendationAIAgentConfiguration `__ + """ + + props: PropsDictType = { + "AnswerGenerationAIGuardrailId": (str, False), + "AnswerGenerationAIPromptId": (str, False), + "AssociationConfigurations": ([AssociationConfiguration], False), + "IntentLabelingGenerationAIPromptId": (str, False), + "QueryReformulationAIPromptId": (str, False), + } + + +class ManualSearchAIAgentConfiguration(AWSProperty): + """ + `ManualSearchAIAgentConfiguration `__ + """ + + props: PropsDictType = { + "AnswerGenerationAIGuardrailId": (str, False), + "AnswerGenerationAIPromptId": (str, False), + "AssociationConfigurations": ([AssociationConfiguration], False), + } + + +class SelfServiceAIAgentConfiguration(AWSProperty): + """ + `SelfServiceAIAgentConfiguration `__ + """ + + props: PropsDictType = { + "AssociationConfigurations": ([AssociationConfiguration], False), + "SelfServiceAIGuardrailId": (str, False), + "SelfServiceAnswerGenerationAIPromptId": (str, False), + "SelfServicePreProcessingAIPromptId": (str, False), + } + + +class AIAgentConfiguration(AWSProperty): + """ + `AIAgentConfiguration `__ + """ + + props: PropsDictType = { + "AnswerRecommendationAIAgentConfiguration": ( + AnswerRecommendationAIAgentConfiguration, + False, + ), + "ManualSearchAIAgentConfiguration": (ManualSearchAIAgentConfiguration, False), + "SelfServiceAIAgentConfiguration": (SelfServiceAIAgentConfiguration, False), + } + + +class AIAgent(AWSObject): + """ + `AIAgent `__ + """ + + resource_type = "AWS::Wisdom::AIAgent" + + props: PropsDictType = { + "AssistantId": (str, True), + "Configuration": (AIAgentConfiguration, True), + "Description": (str, False), + "Name": (str, False), + "Tags": (dict, False), + "Type": (str, True), + } + + +class AIAgentVersion(AWSObject): + """ + `AIAgentVersion `__ + """ + + resource_type = "AWS::Wisdom::AIAgentVersion" + + props: PropsDictType = { + "AIAgentId": (str, True), + "AssistantId": (str, True), + "ModifiedTimeSeconds": (double, False), + } + + +class GuardrailContentFilterConfig(AWSProperty): + """ + `GuardrailContentFilterConfig `__ + """ + + props: PropsDictType = { + "InputStrength": (str, True), + "OutputStrength": (str, True), + "Type": (str, True), + } + + +class AIGuardrailContentPolicyConfig(AWSProperty): + """ + `AIGuardrailContentPolicyConfig `__ + """ + + props: PropsDictType = { + "FiltersConfig": ([GuardrailContentFilterConfig], True), + } + + +class GuardrailContextualGroundingFilterConfig(AWSProperty): + """ + `GuardrailContextualGroundingFilterConfig `__ + """ + + props: PropsDictType = { + "Threshold": (double, True), + "Type": (str, True), + } + + +class AIGuardrailContextualGroundingPolicyConfig(AWSProperty): + """ + `AIGuardrailContextualGroundingPolicyConfig `__ + """ + + props: PropsDictType = { + "FiltersConfig": ([GuardrailContextualGroundingFilterConfig], True), + } + + +class GuardrailPiiEntityConfig(AWSProperty): + """ + `GuardrailPiiEntityConfig `__ + """ + + props: PropsDictType = { + "Action": (str, True), + "Type": (str, True), + } + + +class GuardrailRegexConfig(AWSProperty): + """ + `GuardrailRegexConfig `__ + """ + + props: PropsDictType = { + "Action": (str, True), + "Description": (str, False), + "Name": (str, True), + "Pattern": (str, True), + } + + +class AIGuardrailSensitiveInformationPolicyConfig(AWSProperty): + """ + `AIGuardrailSensitiveInformationPolicyConfig `__ + """ + + props: PropsDictType = { + "PiiEntitiesConfig": ([GuardrailPiiEntityConfig], False), + "RegexesConfig": ([GuardrailRegexConfig], False), + } + + +class GuardrailTopicConfig(AWSProperty): + """ + `GuardrailTopicConfig `__ + """ + + props: PropsDictType = { + "Definition": (str, True), + "Examples": ([str], False), + "Name": (str, True), + "Type": (str, True), + } + + +class AIGuardrailTopicPolicyConfig(AWSProperty): + """ + `AIGuardrailTopicPolicyConfig `__ + """ + + props: PropsDictType = { + "TopicsConfig": ([GuardrailTopicConfig], True), + } + + +class GuardrailManagedWordsConfig(AWSProperty): + """ + `GuardrailManagedWordsConfig `__ + """ + + props: PropsDictType = { + "Type": (str, True), + } + + +class GuardrailWordConfig(AWSProperty): + """ + `GuardrailWordConfig `__ + """ + + props: PropsDictType = { + "Text": (str, True), + } + + +class AIGuardrailWordPolicyConfig(AWSProperty): + """ + `AIGuardrailWordPolicyConfig `__ + """ + + props: PropsDictType = { + "ManagedWordListsConfig": ([GuardrailManagedWordsConfig], False), + "WordsConfig": ([GuardrailWordConfig], False), + } + + +class AIGuardrail(AWSObject): + """ + `AIGuardrail `__ + """ + + resource_type = "AWS::Wisdom::AIGuardrail" + + props: PropsDictType = { + "AssistantId": (str, True), + "BlockedInputMessaging": (str, True), + "BlockedOutputsMessaging": (str, True), + "ContentPolicyConfig": (AIGuardrailContentPolicyConfig, False), + "ContextualGroundingPolicyConfig": ( + AIGuardrailContextualGroundingPolicyConfig, + False, + ), + "Description": (str, False), + "Name": (str, False), + "SensitiveInformationPolicyConfig": ( + AIGuardrailSensitiveInformationPolicyConfig, + False, + ), + "Tags": (dict, False), + "TopicPolicyConfig": (AIGuardrailTopicPolicyConfig, False), + "WordPolicyConfig": (AIGuardrailWordPolicyConfig, False), + } + + +class AIGuardrailVersion(AWSObject): + """ + `AIGuardrailVersion `__ + """ + + resource_type = "AWS::Wisdom::AIGuardrailVersion" + + props: PropsDictType = { + "AIGuardrailId": (str, True), + "AssistantId": (str, True), + "ModifiedTimeSeconds": (double, False), + } + + +class TextFullAIPromptEditTemplateConfiguration(AWSProperty): + """ + `TextFullAIPromptEditTemplateConfiguration `__ + """ + + props: PropsDictType = { + "Text": (str, True), + } + + +class AIPromptTemplateConfiguration(AWSProperty): + """ + `AIPromptTemplateConfiguration `__ + """ + + props: PropsDictType = { + "TextFullAIPromptEditTemplateConfiguration": ( + TextFullAIPromptEditTemplateConfiguration, + True, + ), + } + + +class AIPrompt(AWSObject): + """ + `AIPrompt `__ + """ + + resource_type = "AWS::Wisdom::AIPrompt" + + props: PropsDictType = { + "ApiFormat": (str, True), + "AssistantId": (str, False), + "Description": (str, False), + "ModelId": (str, True), + "Name": (str, False), + "Tags": (dict, False), + "TemplateConfiguration": (AIPromptTemplateConfiguration, True), + "TemplateType": (str, True), + "Type": (str, True), + } + + +class AIPromptVersion(AWSObject): + """ + `AIPromptVersion `__ + """ + + resource_type = "AWS::Wisdom::AIPromptVersion" + + props: PropsDictType = { + "AIPromptId": (str, True), + "AssistantId": (str, True), + "ModifiedTimeSeconds": (double, False), + } class ServerSideEncryptionConfiguration(AWSProperty): @@ -81,13 +469,171 @@ class AppIntegrationsConfiguration(AWSProperty): } +class CrawlerLimits(AWSProperty): + """ + `CrawlerLimits `__ + """ + + props: PropsDictType = { + "RateLimit": (double, False), + } + + +class SeedUrl(AWSProperty): + """ + `SeedUrl `__ + """ + + props: PropsDictType = { + "Url": (str, False), + } + + +class UrlConfiguration(AWSProperty): + """ + `UrlConfiguration `__ + """ + + props: PropsDictType = { + "SeedUrls": ([SeedUrl], False), + } + + +class WebCrawlerConfiguration(AWSProperty): + """ + `WebCrawlerConfiguration `__ + """ + + props: PropsDictType = { + "CrawlerLimits": (CrawlerLimits, False), + "ExclusionFilters": ([str], False), + "InclusionFilters": ([str], False), + "Scope": (str, False), + "UrlConfiguration": (UrlConfiguration, True), + } + + +class ManagedSourceConfiguration(AWSProperty): + """ + `ManagedSourceConfiguration `__ + """ + + props: PropsDictType = { + "WebCrawlerConfiguration": (WebCrawlerConfiguration, True), + } + + class SourceConfiguration(AWSProperty): """ `SourceConfiguration `__ """ props: PropsDictType = { - "AppIntegrations": (AppIntegrationsConfiguration, True), + "AppIntegrations": (AppIntegrationsConfiguration, False), + "ManagedSourceConfiguration": (ManagedSourceConfiguration, False), + } + + +class FixedSizeChunkingConfiguration(AWSProperty): + """ + `FixedSizeChunkingConfiguration `__ + """ + + props: PropsDictType = { + "MaxTokens": (double, True), + "OverlapPercentage": (double, True), + } + + +class HierarchicalChunkingLevelConfiguration(AWSProperty): + """ + `HierarchicalChunkingLevelConfiguration `__ + """ + + props: PropsDictType = { + "MaxTokens": (double, True), + } + + +class HierarchicalChunkingConfiguration(AWSProperty): + """ + `HierarchicalChunkingConfiguration `__ + """ + + props: PropsDictType = { + "LevelConfigurations": ([HierarchicalChunkingLevelConfiguration], True), + "OverlapTokens": (double, True), + } + + +class SemanticChunkingConfiguration(AWSProperty): + """ + `SemanticChunkingConfiguration `__ + """ + + props: PropsDictType = { + "BreakpointPercentileThreshold": (double, True), + "BufferSize": (double, True), + "MaxTokens": (double, True), + } + + +class ChunkingConfiguration(AWSProperty): + """ + `ChunkingConfiguration `__ + """ + + props: PropsDictType = { + "ChunkingStrategy": (str, True), + "FixedSizeChunkingConfiguration": (FixedSizeChunkingConfiguration, False), + "HierarchicalChunkingConfiguration": (HierarchicalChunkingConfiguration, False), + "SemanticChunkingConfiguration": (SemanticChunkingConfiguration, False), + } + + +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), + } + + +class VectorIngestionConfiguration(AWSProperty): + """ + `VectorIngestionConfiguration `__ + """ + + props: PropsDictType = { + "ChunkingConfiguration": (ChunkingConfiguration, False), + "ParsingConfiguration": (ParsingConfiguration, False), } @@ -106,4 +652,237 @@ class KnowledgeBase(AWSObject): "ServerSideEncryptionConfiguration": (ServerSideEncryptionConfiguration, False), "SourceConfiguration": (SourceConfiguration, False), "Tags": (Tags, False), + "VectorIngestionConfiguration": (VectorIngestionConfiguration, False), + } + + +class MessageTemplateBodyContentProvider(AWSProperty): + """ + `MessageTemplateBodyContentProvider `__ + """ + + props: PropsDictType = { + "Content": (str, False), + } + + +class EmailMessageTemplateContentBody(AWSProperty): + """ + `EmailMessageTemplateContentBody `__ + """ + + props: PropsDictType = { + "Html": (MessageTemplateBodyContentProvider, False), + "PlainText": (MessageTemplateBodyContentProvider, False), + } + + +class EmailMessageTemplateHeader(AWSProperty): + """ + `EmailMessageTemplateHeader `__ + """ + + props: PropsDictType = { + "Name": (str, False), + "Value": (str, False), + } + + +class EmailMessageTemplateContent(AWSProperty): + """ + `EmailMessageTemplateContent `__ + """ + + props: PropsDictType = { + "Body": (EmailMessageTemplateContentBody, True), + "Headers": ([EmailMessageTemplateHeader], True), + "Subject": (str, True), + } + + +class SmsMessageTemplateContentBody(AWSProperty): + """ + `SmsMessageTemplateContentBody `__ + """ + + props: PropsDictType = { + "PlainText": (MessageTemplateBodyContentProvider, False), + } + + +class SmsMessageTemplateContent(AWSProperty): + """ + `SmsMessageTemplateContent `__ + """ + + props: PropsDictType = { + "Body": (SmsMessageTemplateContentBody, True), + } + + +class Content(AWSProperty): + """ + `Content `__ + """ + + props: PropsDictType = { + "EmailMessageTemplateContent": (EmailMessageTemplateContent, False), + "SmsMessageTemplateContent": (SmsMessageTemplateContent, False), + } + + +class GroupingConfiguration(AWSProperty): + """ + `GroupingConfiguration `__ + """ + + props: PropsDictType = { + "Criteria": (str, True), + "Values": ([str], True), + } + + +class AgentAttributes(AWSProperty): + """ + `AgentAttributes `__ + """ + + props: PropsDictType = { + "FirstName": (str, False), + "LastName": (str, False), + } + + +class CustomerProfileAttributes(AWSProperty): + """ + `CustomerProfileAttributes `__ + """ + + props: PropsDictType = { + "AccountNumber": (str, False), + "AdditionalInformation": (str, False), + "Address1": (str, False), + "Address2": (str, False), + "Address3": (str, False), + "Address4": (str, False), + "BillingAddress1": (str, False), + "BillingAddress2": (str, False), + "BillingAddress3": (str, False), + "BillingAddress4": (str, False), + "BillingCity": (str, False), + "BillingCountry": (str, False), + "BillingCounty": (str, False), + "BillingPostalCode": (str, False), + "BillingProvince": (str, False), + "BillingState": (str, False), + "BirthDate": (str, False), + "BusinessEmailAddress": (str, False), + "BusinessName": (str, False), + "BusinessPhoneNumber": (str, False), + "City": (str, False), + "Country": (str, False), + "County": (str, False), + "Custom": (dict, False), + "EmailAddress": (str, False), + "FirstName": (str, False), + "Gender": (str, False), + "HomePhoneNumber": (str, False), + "LastName": (str, False), + "MailingAddress1": (str, False), + "MailingAddress2": (str, False), + "MailingAddress3": (str, False), + "MailingAddress4": (str, False), + "MailingCity": (str, False), + "MailingCountry": (str, False), + "MailingCounty": (str, False), + "MailingPostalCode": (str, False), + "MailingProvince": (str, False), + "MailingState": (str, False), + "MiddleName": (str, False), + "MobilePhoneNumber": (str, False), + "PartyType": (str, False), + "PhoneNumber": (str, False), + "PostalCode": (str, False), + "ProfileARN": (str, False), + "ProfileId": (str, False), + "Province": (str, False), + "ShippingAddress1": (str, False), + "ShippingAddress2": (str, False), + "ShippingAddress3": (str, False), + "ShippingAddress4": (str, False), + "ShippingCity": (str, False), + "ShippingCountry": (str, False), + "ShippingCounty": (str, False), + "ShippingPostalCode": (str, False), + "ShippingProvince": (str, False), + "ShippingState": (str, False), + "State": (str, False), + } + + +class SystemEndpointAttributes(AWSProperty): + """ + `SystemEndpointAttributes `__ + """ + + props: PropsDictType = { + "Address": (str, False), + } + + +class SystemAttributes(AWSProperty): + """ + `SystemAttributes `__ + """ + + props: PropsDictType = { + "CustomerEndpoint": (SystemEndpointAttributes, False), + "Name": (str, False), + "SystemEndpoint": (SystemEndpointAttributes, False), + } + + +class MessageTemplateAttributes(AWSProperty): + """ + `MessageTemplateAttributes `__ + """ + + props: PropsDictType = { + "AgentAttributes": (AgentAttributes, False), + "CustomAttributes": (dict, False), + "CustomerProfileAttributes": (CustomerProfileAttributes, False), + "SystemAttributes": (SystemAttributes, False), + } + + +class MessageTemplate(AWSObject): + """ + `MessageTemplate `__ + """ + + resource_type = "AWS::Wisdom::MessageTemplate" + + props: PropsDictType = { + "ChannelSubtype": (str, True), + "Content": (Content, True), + "DefaultAttributes": (MessageTemplateAttributes, False), + "Description": (str, False), + "GroupingConfiguration": (GroupingConfiguration, False), + "KnowledgeBaseArn": (str, True), + "Language": (str, False), + "Name": (str, True), + "Tags": (Tags, False), + } + + +class MessageTemplateVersion(AWSObject): + """ + `MessageTemplateVersion `__ + """ + + resource_type = "AWS::Wisdom::MessageTemplateVersion" + + props: PropsDictType = { + "MessageTemplateArn": (str, True), + "MessageTemplateContentSha256": (str, False), } diff --git a/troposphere/workspaces.py b/troposphere/workspaces.py index 88d4a2112..c10f6a638 100644 --- a/troposphere/workspaces.py +++ b/troposphere/workspaces.py @@ -103,6 +103,5 @@ class WorkspacesPool(AWSObject): "Description": (str, False), "DirectoryId": (str, True), "PoolName": (str, True), - "Tags": (Tags, False), "TimeoutSettings": (TimeoutSettings, False), } diff --git a/troposphere/workspacesweb.py b/troposphere/workspacesweb.py index 47c712db6..69dab4cec 100644 --- a/troposphere/workspacesweb.py +++ b/troposphere/workspacesweb.py @@ -25,6 +25,75 @@ class BrowserSettings(AWSObject): } +class CustomPattern(AWSProperty): + """ + `CustomPattern `__ + """ + + props: PropsDictType = { + "KeywordRegex": (str, False), + "PatternDescription": (str, False), + "PatternName": (str, True), + "PatternRegex": (str, True), + } + + +class RedactionPlaceHolder(AWSProperty): + """ + `RedactionPlaceHolder `__ + """ + + props: PropsDictType = { + "RedactionPlaceHolderText": (str, False), + "RedactionPlaceHolderType": (str, True), + } + + +class InlineRedactionPattern(AWSProperty): + """ + `InlineRedactionPattern `__ + """ + + props: PropsDictType = { + "BuiltInPatternId": (str, False), + "ConfidenceLevel": (double, False), + "CustomPattern": (CustomPattern, False), + "EnforcedUrls": ([str], False), + "ExemptUrls": ([str], False), + "RedactionPlaceHolder": (RedactionPlaceHolder, True), + } + + +class InlineRedactionConfiguration(AWSProperty): + """ + `InlineRedactionConfiguration `__ + """ + + props: PropsDictType = { + "GlobalConfidenceLevel": (double, False), + "GlobalEnforcedUrls": ([str], False), + "GlobalExemptUrls": ([str], False), + "InlineRedactionPatterns": ([InlineRedactionPattern], True), + } + + +class DataProtectionSettings(AWSObject): + """ + `DataProtectionSettings `__ + """ + + resource_type = "AWS::WorkSpacesWeb::DataProtectionSettings" + + props: PropsDictType = { + "AdditionalEncryptionContext": (dict, False), + "CustomerManagedKey": (str, False), + "Description": (str, False), + "DisplayName": (str, False), + "InlineRedactionConfiguration": (InlineRedactionConfiguration, False), + "Tags": (Tags, False), + } + + class IdentityProvider(AWSObject): """ `IdentityProvider `__ @@ -96,6 +165,7 @@ class Portal(AWSObject): "AuthenticationType": (str, False), "BrowserSettingsArn": (str, False), "CustomerManagedKey": (str, False), + "DataProtectionSettingsArn": (str, False), "DisplayName": (str, False), "InstanceType": (str, False), "IpAccessSettingsArn": (str, False),