diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index b32c58314..f5791af34 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -103,7 +103,7 @@ class CodeSigningConfig(AWSObject): class OnFailure(AWSProperty): """ - `OnFailure `__ + `OnFailure `__ """ props: PropsDictType = { @@ -113,7 +113,7 @@ class OnFailure(AWSProperty): class OnSuccess(AWSProperty): """ - `OnSuccess `__ + `OnSuccess `__ """ props: PropsDictType = { diff --git a/troposphere/cloudfront.py b/troposphere/cloudfront.py index c36399f45..c796e0ec7 100644 --- a/troposphere/cloudfront.py +++ b/troposphere/cloudfront.py @@ -648,6 +648,31 @@ class KeyGroup(AWSObject): } +class ImportSource(AWSProperty): + """ + `ImportSource `__ + """ + + props: PropsDictType = { + "SourceArn": (str, True), + "SourceType": (str, True), + } + + +class KeyValueStore(AWSObject): + """ + `KeyValueStore `__ + """ + + resource_type = "AWS::CloudFront::KeyValueStore" + + props: PropsDictType = { + "Comment": (str, False), + "ImportSource": (ImportSource, False), + "Name": (str, True), + } + + class RealtimeMetricsSubscriptionConfig(AWSProperty): """ `RealtimeMetricsSubscriptionConfig `__ diff --git a/troposphere/codedeploy.py b/troposphere/codedeploy.py index b77c2e1c3..84d04d48d 100644 --- a/troposphere/codedeploy.py +++ b/troposphere/codedeploy.py @@ -439,7 +439,6 @@ class DeploymentGroup(AWSObject): "OutdatedInstancesStrategy": (str, False), "ServiceRoleArn": (str, True), "Tags": (Tags, False), - "TerminationHookEnabled": (boolean, False), "TriggerConfigurations": ([TriggerConfig], False), } diff --git a/troposphere/connect.py b/troposphere/connect.py index 324c67137..8e7fd3628 100644 --- a/troposphere/connect.py +++ b/troposphere/connect.py @@ -126,6 +126,7 @@ class Instance(AWSObject): "DirectoryId": (str, False), "IdentityManagementType": (str, True), "InstanceAlias": (str, False), + "Tags": (Tags, False), } @@ -166,7 +167,7 @@ class KinesisVideoStreamConfig(AWSProperty): """ props: PropsDictType = { - "EncryptionConfig": (EncryptionConfig, False), + "EncryptionConfig": (EncryptionConfig, True), "Prefix": (str, True), "RetentionPeriodHours": (double, True), } diff --git a/troposphere/ec2.py b/troposphere/ec2.py index 46cfe3c87..c38124095 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -1998,7 +1998,7 @@ class SecurityGroup(AWSObject): class SecurityGroupEgress(AWSObject): """ - `SecurityGroupEgress `__ + `SecurityGroupEgress `__ """ resource_type = "AWS::EC2::SecurityGroupEgress" @@ -2348,7 +2348,7 @@ class SubnetCidrBlock(AWSObject): class SubnetNetworkAclAssociation(AWSObject): """ - `SubnetNetworkAclAssociation `__ + `SubnetNetworkAclAssociation `__ """ resource_type = "AWS::EC2::SubnetNetworkAclAssociation" diff --git a/troposphere/elasticache.py b/troposphere/elasticache.py index 39a7f7bdf..56d0638fb 100644 --- a/troposphere/elasticache.py +++ b/troposphere/elasticache.py @@ -295,6 +295,17 @@ class CacheUsageLimits(AWSProperty): } +class Endpoint(AWSProperty): + """ + `Endpoint `__ + """ + + props: PropsDictType = { + "Address": (str, False), + "Port": (integer, False), + } + + class ServerlessCache(AWSObject): """ `ServerlessCache `__ @@ -306,10 +317,12 @@ class ServerlessCache(AWSObject): "CacheUsageLimits": (CacheUsageLimits, False), "DailySnapshotTime": (str, False), "Description": (str, False), + "Endpoint": (Endpoint, False), "Engine": (str, True), "FinalSnapshotName": (str, False), "KmsKeyId": (str, False), "MajorEngineVersion": (str, False), + "ReaderEndpoint": (Endpoint, False), "SecurityGroupIds": ([str], False), "ServerlessCacheName": (str, True), "SnapshotArnsToRestore": ([str], False), @@ -378,14 +391,3 @@ class UserGroup(AWSObject): "UserGroupId": (str, True), "UserIds": ([str], True), } - - -class Endpoint(AWSProperty): - """ - `Endpoint `__ - """ - - props: PropsDictType = { - "Address": (str, False), - "Port": (integer, False), - } diff --git a/troposphere/opensearchservice.py b/troposphere/opensearchservice.py index e34f459d1..dbbd72f70 100644 --- a/troposphere/opensearchservice.py +++ b/troposphere/opensearchservice.py @@ -249,6 +249,7 @@ class Domain(AWSObject): "EBSOptions": (EBSOptions, False), "EncryptionAtRestOptions": (EncryptionAtRestOptions, False), "EngineVersion": (validate_search_service_engine_version, False), + "IPAddressType": (str, False), "LogPublishingOptions": (dict, False), "NodeToNodeEncryptionOptions": (NodeToNodeEncryptionOptions, False), "OffPeakWindowOptions": (OffPeakWindowOptions, False), diff --git a/troposphere/osis.py b/troposphere/osis.py index e75062cbd..562d10bf4 100644 --- a/troposphere/osis.py +++ b/troposphere/osis.py @@ -10,13 +10,33 @@ from .validators import boolean, integer +class BufferOptions(AWSProperty): + """ + `BufferOptions `__ + """ + + props: PropsDictType = { + "PersistentBufferEnabled": (boolean, True), + } + + +class EncryptionAtRestOptions(AWSProperty): + """ + `EncryptionAtRestOptions `__ + """ + + props: PropsDictType = { + "KmsKeyArn": (str, True), + } + + class CloudWatchLogDestination(AWSProperty): """ `CloudWatchLogDestination `__ """ props: PropsDictType = { - "LogGroup": (str, False), + "LogGroup": (str, True), } @@ -38,7 +58,7 @@ class VpcOptions(AWSProperty): props: PropsDictType = { "SecurityGroupIds": ([str], False), - "SubnetIds": ([str], False), + "SubnetIds": ([str], True), } @@ -50,6 +70,8 @@ class Pipeline(AWSObject): resource_type = "AWS::OSIS::Pipeline" props: PropsDictType = { + "BufferOptions": (BufferOptions, False), + "EncryptionAtRestOptions": (EncryptionAtRestOptions, False), "LogPublishingOptions": (LogPublishingOptions, False), "MaxUnits": (integer, True), "MinUnits": (integer, True), diff --git a/troposphere/s3.py b/troposphere/s3.py index 9ad594429..c397e3562 100644 --- a/troposphere/s3.py +++ b/troposphere/s3.py @@ -232,7 +232,7 @@ class BucketEncryption(AWSProperty): class CorsRules(AWSProperty): """ - `CorsRules `__ + `CorsRules `__ """ props: PropsDictType = { @@ -247,7 +247,7 @@ class CorsRules(AWSProperty): class CorsConfiguration(AWSProperty): """ - `CorsConfiguration `__ + `CorsConfiguration `__ """ props: PropsDictType = { @@ -308,7 +308,7 @@ class AbortIncompleteMultipartUpload(AWSProperty): class LifecycleRuleTransition(AWSProperty): """ - `LifecycleRuleTransition `__ + `LifecycleRuleTransition `__ """ props: PropsDictType = { @@ -320,7 +320,7 @@ class LifecycleRuleTransition(AWSProperty): class NoncurrentVersionExpiration(AWSProperty): """ - `NoncurrentVersionExpiration `__ + `NoncurrentVersionExpiration `__ """ props: PropsDictType = { @@ -331,7 +331,7 @@ class NoncurrentVersionExpiration(AWSProperty): class NoncurrentVersionTransition(AWSProperty): """ - `NoncurrentVersionTransition `__ + `NoncurrentVersionTransition `__ """ props: PropsDictType = { @@ -343,7 +343,7 @@ class NoncurrentVersionTransition(AWSProperty): class LifecycleRule(AWSProperty): """ - `LifecycleRule `__ + `LifecycleRule `__ """ props: PropsDictType = { @@ -356,8 +356,8 @@ class LifecycleRule(AWSProperty): "NoncurrentVersionExpirationInDays": (integer, False), "NoncurrentVersionTransition": (NoncurrentVersionTransition, False), "NoncurrentVersionTransitions": ([NoncurrentVersionTransition], False), - "ObjectSizeGreaterThan": (integer, False), - "ObjectSizeLessThan": (integer, False), + "ObjectSizeGreaterThan": (str, False), + "ObjectSizeLessThan": (str, False), "Prefix": (str, False), "Status": (str, True), "TagFilters": ([TagFilter], False), @@ -371,7 +371,7 @@ def validate(self): class LifecycleConfiguration(AWSProperty): """ - `LifecycleConfiguration `__ + `LifecycleConfiguration `__ """ props: PropsDictType = { @@ -381,7 +381,7 @@ class LifecycleConfiguration(AWSProperty): class PartitionedPrefix(AWSProperty): """ - `PartitionedPrefix `__ + `PartitionedPrefix `__ """ props: PropsDictType = { @@ -391,7 +391,7 @@ class PartitionedPrefix(AWSProperty): class TargetObjectKeyFormat(AWSProperty): """ - `TargetObjectKeyFormat `__ + `TargetObjectKeyFormat `__ """ props: PropsDictType = { @@ -402,7 +402,7 @@ class TargetObjectKeyFormat(AWSProperty): class LoggingConfiguration(AWSProperty): """ - `LoggingConfiguration `__ + `LoggingConfiguration `__ """ props: PropsDictType = { @@ -427,17 +427,17 @@ class MetricsConfiguration(AWSProperty): class EventBridgeConfiguration(AWSProperty): """ - `EventBridgeConfiguration `__ + `EventBridgeConfiguration `__ """ props: PropsDictType = { - "EventBridgeEnabled": (boolean, False), + "EventBridgeEnabled": (boolean, True), } class Rules(AWSProperty): """ - `Rules `__ + `Rules `__ """ props: PropsDictType = { @@ -448,7 +448,7 @@ class Rules(AWSProperty): class S3Key(AWSProperty): """ - `S3Key `__ + `S3Key `__ """ props: PropsDictType = { @@ -458,7 +458,7 @@ class S3Key(AWSProperty): class Filter(AWSProperty): """ - `Filter `__ + `Filter `__ """ props: PropsDictType = { @@ -468,7 +468,7 @@ class Filter(AWSProperty): class LambdaConfigurations(AWSProperty): """ - `LambdaConfigurations `__ + `LambdaConfigurations `__ """ props: PropsDictType = { @@ -480,7 +480,7 @@ class LambdaConfigurations(AWSProperty): class QueueConfigurations(AWSProperty): """ - `QueueConfigurations `__ + `QueueConfigurations `__ """ props: PropsDictType = { @@ -492,7 +492,7 @@ class QueueConfigurations(AWSProperty): class TopicConfigurations(AWSProperty): """ - `TopicConfigurations `__ + `TopicConfigurations `__ """ props: PropsDictType = { @@ -504,7 +504,7 @@ class TopicConfigurations(AWSProperty): class NotificationConfiguration(AWSProperty): """ - `NotificationConfiguration `__ + `NotificationConfiguration `__ """ props: PropsDictType = { @@ -632,7 +632,7 @@ class ReplicationTime(AWSProperty): class ReplicationConfigurationRulesDestination(AWSProperty): """ - `ReplicationConfigurationRulesDestination `__ + `ReplicationConfigurationRulesDestination `__ """ props: PropsDictType = { @@ -702,7 +702,7 @@ class SourceSelectionCriteria(AWSProperty): class ReplicationConfigurationRules(AWSProperty): """ - `ReplicationConfigurationRules `__ + `ReplicationConfigurationRules `__ """ props: PropsDictType = { @@ -730,7 +730,7 @@ class ReplicationConfiguration(AWSProperty): class VersioningConfiguration(AWSProperty): """ - `VersioningConfiguration `__ + `VersioningConfiguration `__ """ props: PropsDictType = { @@ -740,7 +740,7 @@ class VersioningConfiguration(AWSProperty): class RedirectAllRequestsTo(AWSProperty): """ - `RedirectAllRequestsTo `__ + `RedirectAllRequestsTo `__ """ props: PropsDictType = { @@ -751,7 +751,7 @@ class RedirectAllRequestsTo(AWSProperty): class RedirectRule(AWSProperty): """ - `RedirectRule `__ + `RedirectRule `__ """ props: PropsDictType = { @@ -765,7 +765,7 @@ class RedirectRule(AWSProperty): class RoutingRuleCondition(AWSProperty): """ - `RoutingRuleCondition `__ + `RoutingRuleCondition `__ """ props: PropsDictType = { @@ -776,7 +776,7 @@ class RoutingRuleCondition(AWSProperty): class RoutingRule(AWSProperty): """ - `RoutingRule `__ + `RoutingRule `__ """ props: PropsDictType = { @@ -787,7 +787,7 @@ class RoutingRule(AWSProperty): class WebsiteConfiguration(AWSProperty): """ - `WebsiteConfiguration `__ + `WebsiteConfiguration `__ """ props: PropsDictType = { @@ -800,7 +800,7 @@ class WebsiteConfiguration(AWSProperty): class Bucket(AWSObject): """ - `Bucket `__ + `Bucket `__ """ resource_type = "AWS::S3::Bucket" diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index 7032c5f2c..b08227ebd 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -939,6 +939,7 @@ class OnlineStoreConfig(AWSProperty): props: PropsDictType = { "EnableOnlineStore": (boolean, False), "SecurityConfig": (OnlineStoreSecurityConfig, False), + "StorageType": (str, False), }