From c6df0662e19aa2fdd82e18c8cd02ff6fb9aacf0a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 09:55:37 -0700 Subject: [PATCH] Updates from spec version 185.0.0 (#2267) --- troposphere/amplify.py | 11 ++ troposphere/awslambda.py | 2 + troposphere/backup.py | 1 + troposphere/batch.py | 1 + troposphere/bedrock.py | 86 +++++++++ troposphere/connect.py | 106 +++++++++++ troposphere/datazone.py | 32 +++- troposphere/ec2.py | 2 +- troposphere/elasticloadbalancingv2.py | 12 ++ troposphere/glue.py | 1 + troposphere/iotfleetwise.py | 154 ++++++++++++++++ troposphere/mediaconnect.py | 11 ++ troposphere/medialive.py | 249 +++++++++++++++++++++++++- troposphere/mediapackagev2.py | 2 +- troposphere/opensearchservice.py | 15 ++ troposphere/pipes.py | 1 + troposphere/quicksight.py | 39 +++- troposphere/sagemaker.py | 168 +++++++++++++++-- 18 files changed, 876 insertions(+), 17 deletions(-) diff --git a/troposphere/amplify.py b/troposphere/amplify.py index bb05241ab..0ef491060 100644 --- a/troposphere/amplify.py +++ b/troposphere/amplify.py @@ -53,6 +53,16 @@ class AutoBranchCreationConfig(AWSProperty): } +class CacheConfig(AWSProperty): + """ + `CacheConfig `__ + """ + + props: PropsDictType = { + "Type": (str, False), + } + + class CustomRule(AWSProperty): """ `CustomRule `__ @@ -78,6 +88,7 @@ class App(AWSObject): "AutoBranchCreationConfig": (AutoBranchCreationConfig, False), "BasicAuthConfig": (BasicAuthConfig, False), "BuildSpec": (str, False), + "CacheConfig": (CacheConfig, False), "CustomHeaders": (str, False), "CustomRules": ([CustomRule], False), "Description": (str, False), diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index 893179559..1695a8f28 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -98,6 +98,7 @@ class CodeSigningConfig(AWSObject): "AllowedPublishers": (AllowedPublishers, True), "CodeSigningPolicies": (CodeSigningPolicies, False), "Description": (str, False), + "Tags": (Tags, False), } @@ -274,6 +275,7 @@ class EventSourceMapping(AWSObject): "SourceAccessConfigurations": ([SourceAccessConfiguration], False), "StartingPosition": (str, False), "StartingPositionTimestamp": (double, False), + "Tags": (Tags, False), "Topics": ([str], False), "TumblingWindowInSeconds": (integer, False), } diff --git a/troposphere/backup.py b/troposphere/backup.py index 47294f22f..8ead00996 100644 --- a/troposphere/backup.py +++ b/troposphere/backup.py @@ -318,6 +318,7 @@ class RestoreTestingPlan(AWSObject): "RestoreTestingPlanName": (str, True), "ScheduleExpression": (str, True), "ScheduleExpressionTimezone": (str, False), + "ScheduleStatus": (str, False), "StartWindowHours": (integer, False), "Tags": (Tags, False), } diff --git a/troposphere/batch.py b/troposphere/batch.py index 7e1fc6568..7885f76bf 100644 --- a/troposphere/batch.py +++ b/troposphere/batch.py @@ -102,6 +102,7 @@ class ComputeEnvironment(AWSObject): props: PropsDictType = { "ComputeEnvironmentName": (str, False), "ComputeResources": (ComputeResources, False), + "Context": (str, False), "EksConfiguration": (EksConfiguration, False), "ReplaceComputeEnvironment": (boolean, False), "ServiceRole": (str, False), diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index e5d3e4bb1..54053a990 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -678,6 +678,16 @@ class FlowConnection(AWSProperty): } +class AgentFlowNodeConfiguration(AWSProperty): + """ + `AgentFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "AgentAliasArn": (str, True), + } + + class FlowCondition(AWSProperty): """ `FlowCondition `__ @@ -830,19 +840,84 @@ class PromptFlowNodeConfiguration(AWSProperty): } +class RetrievalFlowNodeS3Configuration(AWSProperty): + """ + `RetrievalFlowNodeS3Configuration `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + } + + +class RetrievalFlowNodeServiceConfiguration(AWSProperty): + """ + `RetrievalFlowNodeServiceConfiguration `__ + """ + + props: PropsDictType = { + "S3": (RetrievalFlowNodeS3Configuration, False), + } + + +class RetrievalFlowNodeConfiguration(AWSProperty): + """ + `RetrievalFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "ServiceConfiguration": (RetrievalFlowNodeServiceConfiguration, True), + } + + +class StorageFlowNodeS3Configuration(AWSProperty): + """ + `StorageFlowNodeS3Configuration `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + } + + +class StorageFlowNodeServiceConfiguration(AWSProperty): + """ + `StorageFlowNodeServiceConfiguration `__ + """ + + props: PropsDictType = { + "S3": (StorageFlowNodeS3Configuration, False), + } + + +class StorageFlowNodeConfiguration(AWSProperty): + """ + `StorageFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "ServiceConfiguration": (StorageFlowNodeServiceConfiguration, True), + } + + class FlowNodeConfiguration(AWSProperty): """ `FlowNodeConfiguration `__ """ props: PropsDictType = { + "Agent": (AgentFlowNodeConfiguration, False), + "Collector": (dict, False), "Condition": (ConditionFlowNodeConfiguration, False), "Input": (dict, False), + "Iterator": (dict, False), "KnowledgeBase": (KnowledgeBaseFlowNodeConfiguration, False), "LambdaFunction": (LambdaFunctionFlowNodeConfiguration, False), "Lex": (LexFlowNodeConfiguration, False), "Output": (dict, False), "Prompt": (PromptFlowNodeConfiguration, False), + "Retrieval": (RetrievalFlowNodeConfiguration, False), + "Storage": (StorageFlowNodeConfiguration, False), } @@ -1341,6 +1416,7 @@ class PromptVersion(AWSObject): props: PropsDictType = { "Description": (str, False), "PromptArn": (str, True), + "Tags": (dict, False), } @@ -1356,6 +1432,16 @@ class AgentAliasHistoryEvent(AWSProperty): } +class FlowValidation(AWSProperty): + """ + `FlowValidation `__ + """ + + props: PropsDictType = { + "Message": (str, True), + } + + class TextS3Location(AWSProperty): """ `TextS3Location `__ diff --git a/troposphere/connect.py b/troposphere/connect.py index 34c6a9606..8538407cb 100644 --- a/troposphere/connect.py +++ b/troposphere/connect.py @@ -10,6 +10,25 @@ from .validators import boolean, double, integer +class AgentStatus(AWSObject): + """ + `AgentStatus `__ + """ + + resource_type = "AWS::Connect::AgentStatus" + + props: PropsDictType = { + "Description": (str, False), + "DisplayOrder": (integer, False), + "InstanceArn": (str, True), + "Name": (str, True), + "ResetOrderNumber": (boolean, False), + "State": (str, True), + "Tags": (Tags, False), + "Type": (str, False), + } + + class ApprovedOrigin(AWSObject): """ `ApprovedOrigin `__ @@ -801,6 +820,93 @@ class UserHierarchyGroup(AWSObject): } +class LevelFive(AWSProperty): + """ + `LevelFive `__ + """ + + props: PropsDictType = { + "HierarchyLevelArn": (str, False), + "HierarchyLevelId": (str, False), + "Name": (str, True), + } + + +class LevelFour(AWSProperty): + """ + `LevelFour `__ + """ + + props: PropsDictType = { + "HierarchyLevelArn": (str, False), + "HierarchyLevelId": (str, False), + "Name": (str, True), + } + + +class LevelOne(AWSProperty): + """ + `LevelOne `__ + """ + + props: PropsDictType = { + "HierarchyLevelArn": (str, False), + "HierarchyLevelId": (str, False), + "Name": (str, True), + } + + +class LevelThree(AWSProperty): + """ + `LevelThree `__ + """ + + props: PropsDictType = { + "HierarchyLevelArn": (str, False), + "HierarchyLevelId": (str, False), + "Name": (str, True), + } + + +class LevelTwo(AWSProperty): + """ + `LevelTwo `__ + """ + + props: PropsDictType = { + "HierarchyLevelArn": (str, False), + "HierarchyLevelId": (str, False), + "Name": (str, True), + } + + +class UserHierarchyStructureProperty(AWSProperty): + """ + `UserHierarchyStructureProperty `__ + """ + + props: PropsDictType = { + "LevelFive": (LevelFive, False), + "LevelFour": (LevelFour, False), + "LevelOne": (LevelOne, False), + "LevelThree": (LevelThree, False), + "LevelTwo": (LevelTwo, False), + } + + +class UserHierarchyStructure(AWSObject): + """ + `UserHierarchyStructure `__ + """ + + resource_type = "AWS::Connect::UserHierarchyStructure" + + props: PropsDictType = { + "InstanceArn": (str, True), + "UserHierarchyStructure": (UserHierarchyStructureProperty, False), + } + + class View(AWSObject): """ `View `__ diff --git a/troposphere/datazone.py b/troposphere/datazone.py index ce39377b1..4241c4862 100644 --- a/troposphere/datazone.py +++ b/troposphere/datazone.py @@ -216,7 +216,10 @@ class Environment(AWSObject): props: PropsDictType = { "Description": (str, False), "DomainIdentifier": (str, True), - "EnvironmentProfileIdentifier": (str, True), + "EnvironmentAccountIdentifier": (str, False), + "EnvironmentAccountRegion": (str, False), + "EnvironmentProfileIdentifier": (str, False), + "EnvironmentRoleArn": (str, False), "GlossaryTerms": ([str], False), "Name": (str, True), "ProjectIdentifier": (str, True), @@ -224,6 +227,33 @@ class Environment(AWSObject): } +class AwsConsoleLinkParameters(AWSProperty): + """ + `AwsConsoleLinkParameters `__ + """ + + props: PropsDictType = { + "Uri": (str, False), + } + + +class EnvironmentActions(AWSObject): + """ + `EnvironmentActions `__ + """ + + resource_type = "AWS::DataZone::EnvironmentActions" + + props: PropsDictType = { + "Description": (str, False), + "DomainIdentifier": (str, False), + "EnvironmentIdentifier": (str, False), + "Identifier": (str, False), + "Name": (str, True), + "Parameters": (AwsConsoleLinkParameters, False), + } + + class RegionalParameter(AWSProperty): """ `RegionalParameter `__ diff --git a/troposphere/ec2.py b/troposphere/ec2.py index b67ef919b..c7a9424f5 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -2939,7 +2939,7 @@ class VPNGateway(AWSObject): class VPNGatewayRoutePropagation(AWSObject): """ - `VPNGatewayRoutePropagation `__ + `VPNGatewayRoutePropagation `__ """ resource_type = "AWS::EC2::VPNGatewayRoutePropagation" diff --git a/troposphere/elasticloadbalancingv2.py b/troposphere/elasticloadbalancingv2.py index e77ebb69c..421b95475 100644 --- a/troposphere/elasticloadbalancingv2.py +++ b/troposphere/elasticloadbalancingv2.py @@ -160,6 +160,17 @@ class Certificate(AWSProperty): } +class ListenerAttribute(AWSProperty): + """ + `ListenerAttribute `__ + """ + + props: PropsDictType = { + "Key": (str, False), + "Value": (str, False), + } + + class MutualAuthentication(AWSProperty): """ `MutualAuthentication `__ @@ -183,6 +194,7 @@ class Listener(AWSObject): "AlpnPolicy": ([str], False), "Certificates": ([Certificate], False), "DefaultActions": ([Action], True), + "ListenerAttributes": ([ListenerAttribute], False), "LoadBalancerArn": (str, True), "MutualAuthentication": (MutualAuthentication, False), "Port": (validate_network_port, False), diff --git a/troposphere/glue.py b/troposphere/glue.py index b364801dd..7420d37c4 100644 --- a/troposphere/glue.py +++ b/troposphere/glue.py @@ -548,6 +548,7 @@ class Job(AWSObject): "ExecutionClass": (str, False), "ExecutionProperty": (ExecutionProperty, False), "GlueVersion": (str, False), + "JobMode": (str, False), "LogUri": (str, False), "MaintenanceWindow": (str, False), "MaxCapacity": (double, False), diff --git a/troposphere/iotfleetwise.py b/troposphere/iotfleetwise.py index efcb2be63..577624e0f 100644 --- a/troposphere/iotfleetwise.py +++ b/troposphere/iotfleetwise.py @@ -91,6 +91,51 @@ class DataDestinationConfig(AWSProperty): } +class ConditionBasedSignalFetchConfig(AWSProperty): + """ + `ConditionBasedSignalFetchConfig `__ + """ + + props: PropsDictType = { + "ConditionExpression": (str, True), + "TriggerMode": (str, True), + } + + +class TimeBasedSignalFetchConfig(AWSProperty): + """ + `TimeBasedSignalFetchConfig `__ + """ + + props: PropsDictType = { + "ExecutionFrequencyMs": (double, True), + } + + +class SignalFetchConfig(AWSProperty): + """ + `SignalFetchConfig `__ + """ + + props: PropsDictType = { + "ConditionBased": (ConditionBasedSignalFetchConfig, False), + "TimeBased": (TimeBasedSignalFetchConfig, False), + } + + +class SignalFetchInformation(AWSProperty): + """ + `SignalFetchInformation `__ + """ + + props: PropsDictType = { + "Actions": ([str], True), + "ConditionLanguageVersion": (double, False), + "FullyQualifiedName": (str, True), + "SignalFetchConfig": (SignalFetchConfig, True), + } + + class SignalInformation(AWSProperty): """ `SignalInformation `__ @@ -124,6 +169,7 @@ class Campaign(AWSObject): "Priority": (integer, False), "SignalCatalogArn": (str, True), "SignalsToCollect": ([SignalInformation], False), + "SignalsToFetch": ([SignalFetchInformation], False), "SpoolingMode": (str, False), "StartTime": (str, False), "Tags": (Tags, False), @@ -131,6 +177,114 @@ class Campaign(AWSObject): } +class CanInterface(AWSProperty): + """ + `CanInterface `__ + """ + + props: PropsDictType = { + "Name": (str, True), + "ProtocolName": (str, False), + "ProtocolVersion": (str, False), + } + + +class ObdInterface(AWSProperty): + """ + `ObdInterface `__ + """ + + props: PropsDictType = { + "DtcRequestIntervalSeconds": (str, False), + "HasTransmissionEcu": (str, False), + "Name": (str, True), + "ObdStandard": (str, False), + "PidRequestIntervalSeconds": (str, False), + "RequestMessageId": (str, True), + "UseExtendedIds": (str, False), + } + + +class NetworkInterfacesItems(AWSProperty): + """ + `NetworkInterfacesItems `__ + """ + + props: PropsDictType = { + "CanInterface": (CanInterface, False), + "InterfaceId": (str, True), + "ObdInterface": (ObdInterface, False), + "Type": (str, True), + } + + +class CanSignal(AWSProperty): + """ + `CanSignal `__ + """ + + props: PropsDictType = { + "Factor": (str, True), + "IsBigEndian": (str, True), + "IsSigned": (str, True), + "Length": (str, True), + "MessageId": (str, True), + "Name": (str, False), + "Offset": (str, True), + "StartBit": (str, True), + } + + +class ObdSignal(AWSProperty): + """ + `ObdSignal `__ + """ + + props: PropsDictType = { + "BitMaskLength": (str, False), + "BitRightShift": (str, False), + "ByteLength": (str, True), + "Offset": (str, True), + "Pid": (str, True), + "PidResponseLength": (str, True), + "Scaling": (str, True), + "ServiceMode": (str, True), + "StartByte": (str, True), + } + + +class SignalDecodersItems(AWSProperty): + """ + `SignalDecodersItems `__ + """ + + props: PropsDictType = { + "CanSignal": (CanSignal, False), + "FullyQualifiedName": (str, True), + "InterfaceId": (str, True), + "ObdSignal": (ObdSignal, False), + "Type": (str, True), + } + + +class DecoderManifest(AWSObject): + """ + `DecoderManifest `__ + """ + + resource_type = "AWS::IoTFleetWise::DecoderManifest" + + props: PropsDictType = { + "Description": (str, False), + "ModelManifestArn": (str, True), + "Name": (str, True), + "NetworkInterfaces": ([NetworkInterfacesItems], False), + "SignalDecoders": ([SignalDecodersItems], False), + "Status": (str, False), + "Tags": (Tags, False), + } + + class Fleet(AWSObject): """ `Fleet `__ diff --git a/troposphere/mediaconnect.py b/troposphere/mediaconnect.py index 54aa49eec..fbb528859 100644 --- a/troposphere/mediaconnect.py +++ b/troposphere/mediaconnect.py @@ -318,6 +318,16 @@ class Source(AWSProperty): } +class SourceMonitoringConfig(AWSProperty): + """ + `SourceMonitoringConfig `__ + """ + + props: PropsDictType = { + "ThumbnailState": (str, True), + } + + class VpcInterface(AWSProperty): """ `VpcInterface `__ @@ -347,6 +357,7 @@ class Flow(AWSObject): "Name": (str, True), "Source": (Source, True), "SourceFailoverConfig": (FailoverConfig, False), + "SourceMonitoringConfig": (SourceMonitoringConfig, False), "VpcInterfaces": ([VpcInterface], False), } diff --git a/troposphere/medialive.py b/troposphere/medialive.py index e08d883b2..2a8e16179 100644 --- a/troposphere/medialive.py +++ b/troposphere/medialive.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import double, integer +from .validators import boolean, double, integer class CdiInputSpecification(AWSProperty): @@ -2216,6 +2216,138 @@ class Channel(AWSObject): } +class ChannelPlacementGroup(AWSObject): + """ + `ChannelPlacementGroup `__ + """ + + resource_type = "AWS::MediaLive::ChannelPlacementGroup" + + props: PropsDictType = { + "ClusterId": (str, False), + "Name": (str, False), + "Nodes": ([str], False), + "Tags": (Tags, False), + } + + +class CloudWatchAlarmTemplate(AWSObject): + """ + `CloudWatchAlarmTemplate `__ + """ + + resource_type = "AWS::MediaLive::CloudWatchAlarmTemplate" + + props: PropsDictType = { + "ComparisonOperator": (str, True), + "DatapointsToAlarm": (double, False), + "Description": (str, False), + "EvaluationPeriods": (double, True), + "GroupIdentifier": (str, True), + "MetricName": (str, True), + "Name": (str, True), + "Period": (double, True), + "Statistic": (str, True), + "Tags": (dict, False), + "TargetResourceType": (str, True), + "Threshold": (double, True), + "TreatMissingData": (str, True), + } + + +class CloudWatchAlarmTemplateGroup(AWSObject): + """ + `CloudWatchAlarmTemplateGroup `__ + """ + + resource_type = "AWS::MediaLive::CloudWatchAlarmTemplateGroup" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Tags": (dict, False), + } + + +class InterfaceMapping(AWSProperty): + """ + `InterfaceMapping `__ + """ + + props: PropsDictType = { + "LogicalInterfaceName": (str, False), + "NetworkId": (str, False), + } + + +class ClusterNetworkSettings(AWSProperty): + """ + `ClusterNetworkSettings `__ + """ + + props: PropsDictType = { + "DefaultRoute": (str, False), + "InterfaceMappings": ([InterfaceMapping], False), + } + + +class Cluster(AWSObject): + """ + `Cluster `__ + """ + + resource_type = "AWS::MediaLive::Cluster" + + props: PropsDictType = { + "ClusterType": (str, False), + "InstanceRoleArn": (str, False), + "Name": (str, False), + "NetworkSettings": (ClusterNetworkSettings, False), + "Tags": (Tags, False), + } + + +class EventBridgeRuleTemplateTarget(AWSProperty): + """ + `EventBridgeRuleTemplateTarget `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + } + + +class EventBridgeRuleTemplate(AWSObject): + """ + `EventBridgeRuleTemplate `__ + """ + + resource_type = "AWS::MediaLive::EventBridgeRuleTemplate" + + props: PropsDictType = { + "Description": (str, False), + "EventTargets": ([EventBridgeRuleTemplateTarget], False), + "EventType": (str, True), + "GroupIdentifier": (str, True), + "Name": (str, True), + "Tags": (dict, False), + } + + +class EventBridgeRuleTemplateGroup(AWSObject): + """ + `EventBridgeRuleTemplateGroup `__ + """ + + resource_type = "AWS::MediaLive::EventBridgeRuleTemplateGroup" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Tags": (dict, False), + } + + class InputDestinationRequest(AWSProperty): """ `InputDestinationRequest `__ @@ -2498,6 +2630,75 @@ class Multiplexprogram(AWSObject): } +class IpPool(AWSProperty): + """ + `IpPool `__ + """ + + props: PropsDictType = { + "Cidr": (str, False), + } + + +class Route(AWSProperty): + """ + `Route `__ + """ + + props: PropsDictType = { + "Cidr": (str, False), + "Gateway": (str, False), + } + + +class Network(AWSObject): + """ + `Network `__ + """ + + resource_type = "AWS::MediaLive::Network" + + props: PropsDictType = { + "IpPools": ([IpPool], True), + "Name": (str, True), + "Routes": ([Route], False), + "Tags": (Tags, False), + } + + +class SdiSource(AWSObject): + """ + `SdiSource `__ + """ + + resource_type = "AWS::MediaLive::SdiSource" + + props: PropsDictType = { + "Mode": (str, False), + "Name": (str, True), + "Tags": (Tags, False), + "Type": (str, True), + } + + +class SignalMap(AWSObject): + """ + `SignalMap `__ + """ + + resource_type = "AWS::MediaLive::SignalMap" + + props: PropsDictType = { + "CloudWatchAlarmTemplateGroupIdentifiers": ([str], False), + "Description": (str, False), + "DiscoveryEntryPointArn": (str, True), + "EventBridgeRuleTemplateGroupIdentifiers": ([str], False), + "ForceRediscovery": (boolean, False), + "Name": (str, True), + "Tags": (dict, False), + } + + class InputDeviceRequest(AWSProperty): """ `InputDeviceRequest `__ @@ -2518,3 +2719,49 @@ class MaintenanceUpdateSettings(AWSProperty): "MaintenanceScheduledDate": (str, False), "MaintenanceStartTime": (str, False), } + + +class MediaResourceNeighbor(AWSProperty): + """ + `MediaResourceNeighbor `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + "Name": (str, False), + } + + +class MediaResource(AWSProperty): + """ + `MediaResource `__ + """ + + props: PropsDictType = { + "Destinations": ([MediaResourceNeighbor], False), + "Name": (str, False), + "Sources": ([MediaResourceNeighbor], False), + } + + +class MonitorDeployment(AWSProperty): + """ + `MonitorDeployment `__ + """ + + props: PropsDictType = { + "DetailsUri": (str, False), + "ErrorMessage": (str, False), + "Status": (str, True), + } + + +class SuccessfulMonitorDeployment(AWSProperty): + """ + `SuccessfulMonitorDeployment `__ + """ + + props: PropsDictType = { + "DetailsUri": (str, True), + "Status": (str, True), + } diff --git a/troposphere/mediapackagev2.py b/troposphere/mediapackagev2.py index b8163b87f..1da001405 100644 --- a/troposphere/mediapackagev2.py +++ b/troposphere/mediapackagev2.py @@ -245,7 +245,7 @@ class OriginEndpoint(AWSObject): props: PropsDictType = { "ChannelGroupName": (str, True), "ChannelName": (str, True), - "ContainerType": (str, False), + "ContainerType": (str, True), "DashManifests": ([DashManifestConfiguration], False), "Description": (str, False), "ForceEndpointErrorConfiguration": (ForceEndpointErrorConfiguration, False), diff --git a/troposphere/opensearchservice.py b/troposphere/opensearchservice.py index 16a9e2730..6ca30c92e 100644 --- a/troposphere/opensearchservice.py +++ b/troposphere/opensearchservice.py @@ -11,6 +11,19 @@ from .validators.opensearchservice import validate_search_service_engine_version +class JWTOptions(AWSProperty): + """ + `JWTOptions `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + "PublicKey": (str, False), + "RolesKey": (str, False), + "SubjectKey": (str, False), + } + + class MasterUserOptions(AWSProperty): """ `MasterUserOptions `__ @@ -60,6 +73,7 @@ class AdvancedSecurityOptionsInput(AWSProperty): "AnonymousAuthEnabled": (boolean, False), "Enabled": (boolean, False), "InternalUserDatabaseEnabled": (boolean, False), + "JWTOptions": (JWTOptions, False), "MasterUserOptions": (MasterUserOptions, False), "SAMLOptions": (SAMLOptions, False), } @@ -264,6 +278,7 @@ class Domain(AWSObject): "LogPublishingOptions": (dict, False), "NodeToNodeEncryptionOptions": (NodeToNodeEncryptionOptions, False), "OffPeakWindowOptions": (OffPeakWindowOptions, False), + "SkipShardMigrationWait": (boolean, False), "SnapshotOptions": (SnapshotOptions, False), "SoftwareUpdateOptions": (SoftwareUpdateOptions, False), "Tags": (Tags, False), diff --git a/troposphere/pipes.py b/troposphere/pipes.py index 89f0a08f4..4634ff6c1 100644 --- a/troposphere/pipes.py +++ b/troposphere/pipes.py @@ -745,6 +745,7 @@ class Pipe(AWSObject): "DesiredState": (str, False), "Enrichment": (str, False), "EnrichmentParameters": (PipeEnrichmentParameters, False), + "KmsKeyIdentifier": (str, False), "LogConfiguration": (PipeLogConfiguration, False), "Name": (str, False), "RoleArn": (str, True), diff --git a/troposphere/quicksight.py b/troposphere/quicksight.py index 55ed2e8ec..bbabd4e4a 100644 --- a/troposphere/quicksight.py +++ b/troposphere/quicksight.py @@ -1263,6 +1263,16 @@ class ParameterDeclaration(AWSProperty): } +class QueryExecutionOptions(AWSProperty): + """ + `QueryExecutionOptions `__ + """ + + props: PropsDictType = { + "QueryExecutionMode": (str, False), + } + + class CascadingControlSource(AWSProperty): """ `CascadingControlSource `__ @@ -2440,6 +2450,7 @@ class ColumnTooltipItem(AWSProperty): "Aggregation": (AggregationFunction, False), "Column": (ColumnIdentifier, True), "Label": (str, False), + "TooltipTarget": (str, False), "Visibility": (str, False), } @@ -2452,6 +2463,7 @@ class FieldTooltipItem(AWSProperty): props: PropsDictType = { "FieldId": (str, True), "Label": (str, False), + "TooltipTarget": (str, False), "Visibility": (str, False), } @@ -3017,6 +3029,26 @@ class ComboChartSortConfiguration(AWSProperty): } +class YAxisOptions(AWSProperty): + """ + `YAxisOptions `__ + """ + + props: PropsDictType = { + "YAxis": (str, True), + } + + +class SingleAxisOptions(AWSProperty): + """ + `SingleAxisOptions `__ + """ + + props: PropsDictType = { + "YAxisOptions": (YAxisOptions, False), + } + + class ComboChartConfiguration(AWSProperty): """ `ComboChartConfiguration `__ @@ -3036,6 +3068,7 @@ class ComboChartConfiguration(AWSProperty): "ReferenceLines": ([ReferenceLine], False), "SecondaryYAxisDisplayOptions": (AxisDisplayOptions, False), "SecondaryYAxisLabelOptions": (ChartAxisLabelOptions, False), + "SingleAxisOptions": (SingleAxisOptions, False), "SortConfiguration": (ComboChartSortConfiguration, False), "Tooltip": (TooltipOptions, False), "VisualPalette": (VisualPalette, False), @@ -4498,6 +4531,7 @@ class LineChartConfiguration(AWSProperty): "SecondaryYAxisDisplayOptions": (LineSeriesAxisDisplayOptions, False), "SecondaryYAxisLabelOptions": (ChartAxisLabelOptions, False), "Series": ([SeriesItem], False), + "SingleAxisOptions": (SingleAxisOptions, False), "SmallMultiplesOptions": (SmallMultiplesOptions, False), "SortConfiguration": (LineChartSortConfiguration, False), "Tooltip": (TooltipOptions, False), @@ -5872,6 +5906,7 @@ class AnalysisDefinition(AWSProperty): "FilterGroups": ([FilterGroup], False), "Options": (AssetOptions, False), "ParameterDeclarations": ([ParameterDeclaration], False), + "QueryExecutionOptions": (QueryExecutionOptions, False), "Sheets": ([SheetDefinition], False), } @@ -6669,7 +6704,7 @@ class LogicalTable(AWSProperty): props: PropsDictType = { "Alias": (str, True), "DataTransforms": ([TransformOperation], False), - "Source": (LogicalTableSource, True), + "Source": (LogicalTableSource, False), } @@ -6805,6 +6840,7 @@ class DataSet(AWSObject): "DataSetUsageConfiguration": (DataSetUsageConfiguration, False), "DatasetParameters": ([DatasetParameter], False), "FieldFolders": (dict, False), + "FolderArns": ([str], False), "ImportMode": (str, False), "IngestionWaitPolicy": (IngestionWaitPolicy, False), "LogicalTableMap": (dict, False), @@ -7348,6 +7384,7 @@ class TemplateVersionDefinition(AWSProperty): "FilterGroups": ([FilterGroup], False), "Options": (AssetOptions, False), "ParameterDeclarations": ([ParameterDeclaration], False), + "QueryExecutionOptions": (QueryExecutionOptions, False), "Sheets": ([SheetDefinition], False), } diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index 42544015f..ac6ee03e8 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -136,6 +136,103 @@ class AppImageConfig(AWSObject): } +class ClusterEbsVolumeConfig(AWSProperty): + """ + `ClusterEbsVolumeConfig `__ + """ + + props: PropsDictType = { + "VolumeSizeInGB": (integer, False), + } + + +class ClusterInstanceStorageConfig(AWSProperty): + """ + `ClusterInstanceStorageConfig `__ + """ + + props: PropsDictType = { + "EbsVolumeConfig": (ClusterEbsVolumeConfig, False), + } + + +class ClusterLifeCycleConfig(AWSProperty): + """ + `ClusterLifeCycleConfig `__ + """ + + props: PropsDictType = { + "OnCreate": (str, True), + "SourceS3Uri": (str, True), + } + + +class ClusterInstanceGroup(AWSProperty): + """ + `ClusterInstanceGroup `__ + """ + + props: PropsDictType = { + "CurrentCount": (integer, False), + "ExecutionRole": (str, True), + "InstanceCount": (integer, True), + "InstanceGroupName": (str, True), + "InstanceStorageConfigs": ([ClusterInstanceStorageConfig], False), + "InstanceType": (str, True), + "LifeCycleConfig": (ClusterLifeCycleConfig, True), + "OnStartDeepHealthChecks": ([str], False), + "ThreadsPerCore": (integer, False), + } + + +class ClusterOrchestratorEksConfig(AWSProperty): + """ + `ClusterOrchestratorEksConfig `__ + """ + + props: PropsDictType = { + "ClusterArn": (str, True), + } + + +class Orchestrator(AWSProperty): + """ + `Orchestrator `__ + """ + + props: PropsDictType = { + "Eks": (ClusterOrchestratorEksConfig, True), + } + + +class VpcConfig(AWSProperty): + """ + `VpcConfig `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "Subnets": ([str], True), + } + + +class Cluster(AWSObject): + """ + `Cluster `__ + """ + + resource_type = "AWS::SageMaker::Cluster" + + props: PropsDictType = { + "ClusterName": (str, False), + "InstanceGroups": ([ClusterInstanceGroup], True), + "NodeRecovery": (str, False), + "Orchestrator": (Orchestrator, False), + "Tags": (Tags, False), + "VpcConfig": (VpcConfig, False), + } + + class GitConfig(AWSProperty): """ `GitConfig `__ @@ -337,17 +434,6 @@ class MonitoringResources(AWSProperty): } -class VpcConfig(AWSProperty): - """ - `VpcConfig `__ - """ - - props: PropsDictType = { - "SecurityGroupIds": ([str], True), - "Subnets": ([str], True), - } - - class NetworkConfig(AWSProperty): """ `NetworkConfig `__ @@ -498,6 +584,29 @@ class DefaultSpaceStorageSettings(AWSProperty): } +class IdleSettings(AWSProperty): + """ + `IdleSettings `__ + """ + + props: PropsDictType = { + "IdleTimeoutInMinutes": (integer, False), + "LifecycleManagement": (str, False), + "MaxIdleTimeoutInMinutes": (integer, False), + "MinIdleTimeoutInMinutes": (integer, False), + } + + +class AppLifecycleManagement(AWSProperty): + """ + `AppLifecycleManagement `__ + """ + + props: PropsDictType = { + "IdleSettings": (IdleSettings, False), + } + + class CodeRepositoryProperty(AWSProperty): """ `CodeRepositoryProperty `__ @@ -526,6 +635,7 @@ class JupyterLabAppSettings(AWSProperty): """ props: PropsDictType = { + "AppLifecycleManagement": (AppLifecycleManagement, False), "CodeRepositories": ([CodeRepositoryProperty], False), "CustomImages": ([CustomImage], False), "DefaultResourceSpec": (ResourceSpec, False), @@ -615,6 +725,7 @@ class CodeEditorAppSettings(AWSProperty): """ props: PropsDictType = { + "AppLifecycleManagement": (AppLifecycleManagement, False), "CustomImages": ([CustomImage], False), "DefaultResourceSpec": (ResourceSpec, False), "LifecycleConfigArns": ([str], False), @@ -2784,12 +2895,33 @@ class CustomFileSystem(AWSProperty): } +class SpaceIdleSettings(AWSProperty): + """ + `SpaceIdleSettings `__ + """ + + props: PropsDictType = { + "IdleTimeoutInMinutes": (integer, False), + } + + +class SpaceAppLifecycleManagement(AWSProperty): + """ + `SpaceAppLifecycleManagement `__ + """ + + props: PropsDictType = { + "IdleSettings": (SpaceIdleSettings, False), + } + + class SpaceCodeEditorAppSettings(AWSProperty): """ `SpaceCodeEditorAppSettings `__ """ props: PropsDictType = { + "AppLifecycleManagement": (SpaceAppLifecycleManagement, False), "DefaultResourceSpec": (ResourceSpec, False), } @@ -2800,6 +2932,7 @@ class SpaceJupyterLabAppSettings(AWSProperty): """ props: PropsDictType = { + "AppLifecycleManagement": (SpaceAppLifecycleManagement, False), "CodeRepositories": ([CodeRepositoryProperty], False), "DefaultResourceSpec": (ResourceSpec, False), } @@ -2961,6 +3094,17 @@ class Workteam(AWSObject): } +class AdditionalModelDataSource(AWSProperty): + """ + `AdditionalModelDataSource `__ + """ + + props: PropsDictType = { + "ChannelName": (str, True), + "S3DataSource": (S3DataSource, True), + } + + class Container(AWSProperty): """ `Container `__ @@ -2987,7 +3131,7 @@ class EndpointMetadata(AWSProperty): class HubAccessConfig(AWSProperty): """ - `HubAccessConfig `__ + `HubAccessConfig `__ """ props: PropsDictType = {