From f4f857855eef0ce9c605ecd0300c8927005c816e Mon Sep 17 00:00:00 2001 From: markpeek Date: Fri, 11 Aug 2023 01:07:56 +0000 Subject: [PATCH] Updates from spec version 135.0.0 --- troposphere/certificatemanager.py | 1 + troposphere/cloudwatch.py | 2 +- troposphere/config.py | 22 +++++ troposphere/connect.py | 15 ++++ troposphere/datasync.py | 29 +++++++ troposphere/ec2.py | 14 ++-- troposphere/emr.py | 1 + troposphere/events.py | 2 +- troposphere/ivs.py | 18 +++- troposphere/kendra.py | 11 +++ troposphere/kms.py | 3 +- troposphere/mediatailor.py | 132 +++++++++++++++++++++++++++++- 12 files changed, 239 insertions(+), 11 deletions(-) diff --git a/troposphere/certificatemanager.py b/troposphere/certificatemanager.py index 5654c4663..0706a9607 100644 --- a/troposphere/certificatemanager.py +++ b/troposphere/certificatemanager.py @@ -57,6 +57,7 @@ class Certificate(AWSObject): "CertificateTransparencyLoggingPreference": (str, False), "DomainName": (str, True), "DomainValidationOptions": ([DomainValidationOption], False), + "KeyAlgorithm": (str, False), "SubjectAlternativeNames": ([str], False), "Tags": (validate_tags_or_list, False), "ValidationMethod": (str, False), diff --git a/troposphere/cloudwatch.py b/troposphere/cloudwatch.py index 5968621e2..89f98b184 100644 --- a/troposphere/cloudwatch.py +++ b/troposphere/cloudwatch.py @@ -19,7 +19,7 @@ class MetricDimension(AWSProperty): """ - `MetricDimension `__ + `MetricDimension `__ """ props: PropsDictType = { diff --git a/troposphere/config.py b/troposphere/config.py index 5b501066f..a1384f05a 100644 --- a/troposphere/config.py +++ b/troposphere/config.py @@ -161,6 +161,26 @@ class ConfigurationAggregator(AWSObject): } +class ExclusionByResourceTypes(AWSProperty): + """ + `ExclusionByResourceTypes `__ + """ + + props: PropsDictType = { + "ResourceTypes": ([str], True), + } + + +class RecordingStrategy(AWSProperty): + """ + `RecordingStrategy `__ + """ + + props: PropsDictType = { + "UseOnly": (str, True), + } + + class RecordingGroup(AWSProperty): """ `RecordingGroup `__ @@ -168,7 +188,9 @@ class RecordingGroup(AWSProperty): props: PropsDictType = { "AllSupported": (boolean, False), + "ExclusionByResourceTypes": (ExclusionByResourceTypes, False), "IncludeGlobalResourceTypes": (boolean, False), + "RecordingStrategy": (RecordingStrategy, False), "ResourceTypes": ([str], False), } diff --git a/troposphere/connect.py b/troposphere/connect.py index dc38cfaa5..7f78b6dce 100644 --- a/troposphere/connect.py +++ b/troposphere/connect.py @@ -616,6 +616,21 @@ class TaskTemplate(AWSObject): } +class TrafficDistributionGroup(AWSObject): + """ + `TrafficDistributionGroup `__ + """ + + resource_type = "AWS::Connect::TrafficDistributionGroup" + + props: PropsDictType = { + "Description": (str, False), + "InstanceArn": (str, True), + "Name": (str, True), + "Tags": (Tags, False), + } + + class UserIdentityInfo(AWSProperty): """ `UserIdentityInfo `__ diff --git a/troposphere/datasync.py b/troposphere/datasync.py index 4361b3145..513bc494e 100644 --- a/troposphere/datasync.py +++ b/troposphere/datasync.py @@ -27,6 +27,35 @@ class Agent(AWSObject): } +class AzureBlobSasConfiguration(AWSProperty): + """ + `AzureBlobSasConfiguration `__ + """ + + props: PropsDictType = { + "AzureBlobSasToken": (str, True), + } + + +class LocationAzureBlob(AWSObject): + """ + `LocationAzureBlob `__ + """ + + resource_type = "AWS::DataSync::LocationAzureBlob" + + props: PropsDictType = { + "AgentArns": ([str], True), + "AzureAccessTier": (str, False), + "AzureBlobAuthenticationType": (str, True), + "AzureBlobContainerUrl": (str, False), + "AzureBlobSasConfiguration": (AzureBlobSasConfiguration, False), + "AzureBlobType": (str, False), + "Subdirectory": (str, False), + "Tags": (Tags, False), + } + + class Ec2Config(AWSProperty): """ `Ec2Config `__ diff --git a/troposphere/ec2.py b/troposphere/ec2.py index 2651a098c..19514f790 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -1378,11 +1378,11 @@ class Monitoring(AWSProperty): class Ipv4PrefixSpecification(AWSProperty): """ - `Ipv4PrefixSpecification `__ + `Ipv4PrefixSpecification `__ """ props: PropsDictType = { - "Ipv4Prefix": (str, False), + "Ipv4Prefix": (str, True), } @@ -1398,11 +1398,11 @@ class Ipv6Add(AWSProperty): class Ipv6PrefixSpecification(AWSProperty): """ - `Ipv6PrefixSpecification `__ + `Ipv6PrefixSpecification `__ """ props: PropsDictType = { - "Ipv6Prefix": (str, False), + "Ipv6Prefix": (str, True), } @@ -1784,8 +1784,12 @@ class NetworkInterface(AWSObject): "Description": (str, False), "GroupSet": ([str], False), "InterfaceType": (str, False), + "Ipv4PrefixCount": (integer, False), + "Ipv4Prefixes": ([Ipv4PrefixSpecification], False), "Ipv6AddressCount": (integer, False), "Ipv6Addresses": ([InstanceIpv6Address], False), + "Ipv6PrefixCount": (integer, False), + "Ipv6Prefixes": ([Ipv6PrefixSpecification], False), "PrivateIpAddress": (str, False), "PrivateIpAddresses": ([PrivateIpAddressSpecification], False), "SecondaryPrivateIpAddressCount": (integer, False), @@ -1797,7 +1801,7 @@ class NetworkInterface(AWSObject): class NetworkInterfaceAttachment(AWSObject): """ - `NetworkInterfaceAttachment `__ + `NetworkInterfaceAttachment `__ """ resource_type = "AWS::EC2::NetworkInterfaceAttachment" diff --git a/troposphere/emr.py b/troposphere/emr.py index 8464b371e..0b759c7fb 100644 --- a/troposphere/emr.py +++ b/troposphere/emr.py @@ -132,6 +132,7 @@ class VolumeSpecification(AWSProperty): props: PropsDictType = { "Iops": (integer, False), "SizeInGB": (integer, True), + "Throughput": (integer, False), "VolumeType": (volume_type_validator, True), } diff --git a/troposphere/events.py b/troposphere/events.py index 0ba801b06..1adea1042 100644 --- a/troposphere/events.py +++ b/troposphere/events.py @@ -426,7 +426,7 @@ class RedshiftDataParameters(AWSProperty): "Database": (str, True), "DbUser": (str, False), "SecretManagerArn": (str, False), - "Sql": (str, True), + "Sql": (str, False), "StatementName": (str, False), "WithEvent": (boolean, False), } diff --git a/troposphere/ivs.py b/troposphere/ivs.py index 811ace34c..a25a1ed4f 100644 --- a/troposphere/ivs.py +++ b/troposphere/ivs.py @@ -59,7 +59,18 @@ class DestinationConfiguration(AWSProperty): """ props: PropsDictType = { - "S3": (S3DestinationConfiguration, True), + "S3": (S3DestinationConfiguration, False), + } + + +class RenditionConfiguration(AWSProperty): + """ + `RenditionConfiguration `__ + """ + + props: PropsDictType = { + "RenditionSelection": (str, False), + "Renditions": ([str], False), } @@ -69,7 +80,9 @@ class ThumbnailConfiguration(AWSProperty): """ props: PropsDictType = { - "RecordingMode": (str, True), + "RecordingMode": (str, False), + "Resolution": (str, False), + "Storage": ([str], False), "TargetIntervalSeconds": (integer, False), } @@ -85,6 +98,7 @@ class RecordingConfiguration(AWSObject): "DestinationConfiguration": (DestinationConfiguration, True), "Name": (str, False), "RecordingReconnectWindowSeconds": (integer, False), + "RenditionConfiguration": (RenditionConfiguration, False), "Tags": (Tags, False), "ThumbnailConfiguration": (ThumbnailConfiguration, False), } diff --git a/troposphere/kendra.py b/troposphere/kendra.py index 333bb613c..72b4bfab8 100644 --- a/troposphere/kendra.py +++ b/troposphere/kendra.py @@ -548,6 +548,16 @@ class SharePointConfiguration(AWSProperty): } +class TemplateConfiguration(AWSProperty): + """ + `TemplateConfiguration `__ + """ + + props: PropsDictType = { + "Template": (str, True), + } + + class ProxyConfiguration(AWSProperty): """ `ProxyConfiguration `__ @@ -661,6 +671,7 @@ class DataSourceConfiguration(AWSProperty): "SalesforceConfiguration": (SalesforceConfiguration, False), "ServiceNowConfiguration": (ServiceNowConfiguration, False), "SharePointConfiguration": (SharePointConfiguration, False), + "TemplateConfiguration": (TemplateConfiguration, False), "WebCrawlerConfiguration": (WebCrawlerConfiguration, False), "WorkDocsConfiguration": (WorkDocsConfiguration, False), } diff --git a/troposphere/kms.py b/troposphere/kms.py index 374f59cff..e6ffc0dd3 100644 --- a/troposphere/kms.py +++ b/troposphere/kms.py @@ -37,10 +37,11 @@ class Key(AWSObject): resource_type = "AWS::KMS::Key" props: PropsDictType = { + "BypassPolicyLockoutSafetyCheck": (boolean, False), "Description": (str, False), "EnableKeyRotation": (boolean, False), "Enabled": (boolean, False), - "KeyPolicy": (policytypes, True), + "KeyPolicy": (policytypes, False), "KeySpec": (str, False), "KeyUsage": (key_usage_type, False), "MultiRegion": (boolean, False), diff --git a/troposphere/mediatailor.py b/troposphere/mediatailor.py index 342dd4a2e..0048e6118 100644 --- a/troposphere/mediatailor.py +++ b/troposphere/mediatailor.py @@ -7,7 +7,122 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer + + +class LogConfigurationForChannel(AWSProperty): + """ + `LogConfigurationForChannel `__ + """ + + props: PropsDictType = { + "LogTypes": ([str], False), + } + + +class DashPlaylistSettings(AWSProperty): + """ + `DashPlaylistSettings `__ + """ + + props: PropsDictType = { + "ManifestWindowSeconds": (double, False), + "MinBufferTimeSeconds": (double, False), + "MinUpdatePeriodSeconds": (double, False), + "SuggestedPresentationDelaySeconds": (double, False), + } + + +class HlsPlaylistSettings(AWSProperty): + """ + `HlsPlaylistSettings `__ + """ + + props: PropsDictType = { + "ManifestWindowSeconds": (double, False), + } + + +class RequestOutputItem(AWSProperty): + """ + `RequestOutputItem `__ + """ + + props: PropsDictType = { + "DashPlaylistSettings": (DashPlaylistSettings, False), + "HlsPlaylistSettings": (HlsPlaylistSettings, False), + "ManifestName": (str, True), + "SourceGroup": (str, True), + } + + +class SlateSource(AWSProperty): + """ + `SlateSource `__ + """ + + props: PropsDictType = { + "SourceLocationName": (str, False), + "VodSourceName": (str, False), + } + + +class Channel(AWSObject): + """ + `Channel `__ + """ + + resource_type = "AWS::MediaTailor::Channel" + + props: PropsDictType = { + "ChannelName": (str, True), + "FillerSlate": (SlateSource, False), + "LogConfiguration": (LogConfigurationForChannel, False), + "Outputs": ([RequestOutputItem], True), + "PlaybackMode": (str, True), + "Tags": (Tags, False), + "Tier": (str, False), + } + + +class ChannelPolicy(AWSObject): + """ + `ChannelPolicy `__ + """ + + resource_type = "AWS::MediaTailor::ChannelPolicy" + + props: PropsDictType = { + "ChannelName": (str, True), + "Policy": (dict, True), + } + + +class HttpPackageConfiguration(AWSProperty): + """ + `HttpPackageConfiguration `__ + """ + + props: PropsDictType = { + "Path": (str, True), + "SourceGroup": (str, True), + "Type": (str, True), + } + + +class LiveSource(AWSObject): + """ + `LiveSource `__ + """ + + resource_type = "AWS::MediaTailor::LiveSource" + + props: PropsDictType = { + "HttpPackageConfigurations": ([HttpPackageConfiguration], True), + "LiveSourceName": (str, True), + "SourceLocationName": (str, True), + "Tags": (Tags, False), + } class AvailSuppression(AWSProperty): @@ -120,3 +235,18 @@ class PlaybackConfiguration(AWSObject): "TranscodeProfileName": (str, False), "VideoContentSourceUrl": (str, True), } + + +class VodSource(AWSObject): + """ + `VodSource `__ + """ + + resource_type = "AWS::MediaTailor::VodSource" + + props: PropsDictType = { + "HttpPackageConfigurations": ([HttpPackageConfiguration], True), + "SourceLocationName": (str, True), + "Tags": (Tags, False), + "VodSourceName": (str, True), + }