From 05fb8a25bea9e95945a29388d96abd2917156320 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 07:34:29 -0700 Subject: [PATCH] Updates from spec version 182.0.0 (#2257) --- troposphere/awslambda.py | 2 +- troposphere/batch.py | 1 + troposphere/bedrock.py | 443 +++++++++++++++++++++++++++++++ troposphere/dms.py | 12 +- troposphere/ecr.py | 1 + troposphere/eks.py | 11 + troposphere/globalaccelerator.py | 3 +- troposphere/iam.py | 2 +- troposphere/mediaconnect.py | 1 + troposphere/mediapackagev2.py | 12 + troposphere/sagemaker.py | 41 +++ troposphere/stepfunctions.py | 14 + troposphere/workspacesweb.py | 1 + 13 files changed, 535 insertions(+), 9 deletions(-) diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index b9d7084f7..7a4cb8886 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -36,7 +36,7 @@ class AliasRoutingConfiguration(AWSProperty): """ props: PropsDictType = { - "AdditionalVersionWeights": ([VersionWeight], True), + "AdditionalVersionWeights": ([VersionWeight], False), } diff --git a/troposphere/batch.py b/troposphere/batch.py index 5d38f0cf9..7e1fc6568 100644 --- a/troposphere/batch.py +++ b/troposphere/batch.py @@ -584,6 +584,7 @@ class NodeRangeProperty(AWSProperty): props: PropsDictType = { "Container": (ContainerProperties, False), "EcsProperties": (EcsProperties, False), + "EksProperties": (EksProperties, False), "InstanceTypes": ([str], False), "TargetNodes": (str, True), } diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index 8f0beedd4..456c37b64 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -292,6 +292,340 @@ class DataSource(AWSObject): } +class FlowConditionalConnectionConfiguration(AWSProperty): + """ + `FlowConditionalConnectionConfiguration `__ + """ + + props: PropsDictType = { + "Condition": (str, True), + } + + +class FlowDataConnectionConfiguration(AWSProperty): + """ + `FlowDataConnectionConfiguration `__ + """ + + props: PropsDictType = { + "SourceOutput": (str, True), + "TargetInput": (str, True), + } + + +class FlowConnectionConfiguration(AWSProperty): + """ + `FlowConnectionConfiguration `__ + """ + + props: PropsDictType = { + "Conditional": (FlowConditionalConnectionConfiguration, False), + "Data": (FlowDataConnectionConfiguration, False), + } + + +class FlowConnection(AWSProperty): + """ + `FlowConnection `__ + """ + + props: PropsDictType = { + "Configuration": (FlowConnectionConfiguration, False), + "Name": (str, True), + "Source": (str, True), + "Target": (str, True), + "Type": (str, True), + } + + +class FlowCondition(AWSProperty): + """ + `FlowCondition `__ + """ + + props: PropsDictType = { + "Expression": (str, False), + "Name": (str, True), + } + + +class ConditionFlowNodeConfiguration(AWSProperty): + """ + `ConditionFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "Conditions": ([FlowCondition], True), + } + + +class KnowledgeBaseFlowNodeConfiguration(AWSProperty): + """ + `KnowledgeBaseFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "KnowledgeBaseId": (str, True), + "ModelId": (str, False), + } + + +class LambdaFunctionFlowNodeConfiguration(AWSProperty): + """ + `LambdaFunctionFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "LambdaArn": (str, True), + } + + +class LexFlowNodeConfiguration(AWSProperty): + """ + `LexFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "BotAliasArn": (str, True), + "LocaleId": (str, True), + } + + +class PromptModelInferenceConfiguration(AWSProperty): + """ + `PromptModelInferenceConfiguration `__ + """ + + props: PropsDictType = { + "MaxTokens": (double, False), + "StopSequences": ([str], False), + "Temperature": (double, False), + "TopK": (double, False), + "TopP": (double, False), + } + + +class PromptInferenceConfiguration(AWSProperty): + """ + `PromptInferenceConfiguration `__ + """ + + props: PropsDictType = { + "Text": (PromptModelInferenceConfiguration, True), + } + + +class PromptInputVariable(AWSProperty): + """ + `PromptInputVariable `__ + """ + + props: PropsDictType = { + "Name": (str, False), + } + + +class TextPromptTemplateConfiguration(AWSProperty): + """ + `TextPromptTemplateConfiguration `__ + """ + + props: PropsDictType = { + "InputVariables": ([PromptInputVariable], False), + "Text": (str, True), + } + + +class PromptTemplateConfiguration(AWSProperty): + """ + `PromptTemplateConfiguration `__ + """ + + props: PropsDictType = { + "Text": (TextPromptTemplateConfiguration, True), + } + + +class PromptFlowNodeInlineConfiguration(AWSProperty): + """ + `PromptFlowNodeInlineConfiguration `__ + """ + + props: PropsDictType = { + "InferenceConfiguration": (PromptInferenceConfiguration, False), + "ModelId": (str, True), + "TemplateConfiguration": (PromptTemplateConfiguration, True), + "TemplateType": (str, True), + } + + +class PromptFlowNodeResourceConfiguration(AWSProperty): + """ + `PromptFlowNodeResourceConfiguration `__ + """ + + props: PropsDictType = { + "PromptArn": (str, True), + } + + +class PromptFlowNodeSourceConfiguration(AWSProperty): + """ + `PromptFlowNodeSourceConfiguration `__ + """ + + props: PropsDictType = { + "Inline": (PromptFlowNodeInlineConfiguration, False), + "Resource": (PromptFlowNodeResourceConfiguration, False), + } + + +class PromptFlowNodeConfiguration(AWSProperty): + """ + `PromptFlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "SourceConfiguration": (PromptFlowNodeSourceConfiguration, True), + } + + +class FlowNodeConfiguration(AWSProperty): + """ + `FlowNodeConfiguration `__ + """ + + props: PropsDictType = { + "Condition": (ConditionFlowNodeConfiguration, False), + "Input": (dict, False), + "KnowledgeBase": (KnowledgeBaseFlowNodeConfiguration, False), + "LambdaFunction": (LambdaFunctionFlowNodeConfiguration, False), + "Lex": (LexFlowNodeConfiguration, False), + "Output": (dict, False), + "Prompt": (PromptFlowNodeConfiguration, False), + } + + +class FlowNodeInput(AWSProperty): + """ + `FlowNodeInput `__ + """ + + props: PropsDictType = { + "Expression": (str, True), + "Name": (str, True), + "Type": (str, True), + } + + +class FlowNodeOutput(AWSProperty): + """ + `FlowNodeOutput `__ + """ + + props: PropsDictType = { + "Name": (str, True), + "Type": (str, True), + } + + +class FlowNode(AWSProperty): + """ + `FlowNode `__ + """ + + props: PropsDictType = { + "Configuration": (FlowNodeConfiguration, False), + "Inputs": ([FlowNodeInput], False), + "Name": (str, True), + "Outputs": ([FlowNodeOutput], False), + "Type": (str, True), + } + + +class FlowDefinition(AWSProperty): + """ + `FlowDefinition `__ + """ + + props: PropsDictType = { + "Connections": ([FlowConnection], False), + "Nodes": ([FlowNode], False), + } + + +class S3Location(AWSProperty): + """ + `S3Location `__ + """ + + props: PropsDictType = { + "Bucket": (str, True), + "Key": (str, True), + "Version": (str, False), + } + + +class Flow(AWSObject): + """ + `Flow `__ + """ + + resource_type = "AWS::Bedrock::Flow" + + props: PropsDictType = { + "CustomerEncryptionKeyArn": (str, False), + "Definition": (FlowDefinition, False), + "DefinitionS3Location": (S3Location, False), + "DefinitionString": (str, False), + "DefinitionSubstitutions": (dict, False), + "Description": (str, False), + "ExecutionRoleArn": (str, True), + "Name": (str, True), + "Tags": (dict, False), + "TestAliasTags": (dict, False), + } + + +class FlowAliasRoutingConfigurationListItem(AWSProperty): + """ + `FlowAliasRoutingConfigurationListItem `__ + """ + + props: PropsDictType = { + "FlowVersion": (str, False), + } + + +class FlowAlias(AWSObject): + """ + `FlowAlias `__ + """ + + resource_type = "AWS::Bedrock::FlowAlias" + + props: PropsDictType = { + "Description": (str, False), + "FlowArn": (str, True), + "Name": (str, True), + "RoutingConfiguration": ([FlowAliasRoutingConfigurationListItem], True), + "Tags": (dict, False), + } + + +class FlowVersion(AWSObject): + """ + `FlowVersion `__ + """ + + resource_type = "AWS::Bedrock::FlowVersion" + + props: PropsDictType = { + "Description": (str, False), + "FlowArn": (str, True), + } + + class ContentFilterConfig(AWSProperty): """ `ContentFilterConfig `__ @@ -437,6 +771,29 @@ class GuardrailVersion(AWSObject): } +class BedrockEmbeddingModelConfiguration(AWSProperty): + """ + `BedrockEmbeddingModelConfiguration `__ + """ + + props: PropsDictType = { + "Dimensions": (integer, False), + } + + +class EmbeddingModelConfiguration(AWSProperty): + """ + `EmbeddingModelConfiguration `__ + """ + + props: PropsDictType = { + "BedrockEmbeddingModelConfiguration": ( + BedrockEmbeddingModelConfiguration, + False, + ), + } + + class VectorKnowledgeBaseConfiguration(AWSProperty): """ `VectorKnowledgeBaseConfiguration `__ @@ -444,6 +801,7 @@ class VectorKnowledgeBaseConfiguration(AWSProperty): props: PropsDictType = { "EmbeddingModelArn": (str, True), + "EmbeddingModelConfiguration": (EmbeddingModelConfiguration, False), } @@ -458,6 +816,34 @@ class KnowledgeBaseConfiguration(AWSProperty): } +class MongoDbAtlasFieldMapping(AWSProperty): + """ + `MongoDbAtlasFieldMapping `__ + """ + + props: PropsDictType = { + "MetadataField": (str, True), + "TextField": (str, True), + "VectorField": (str, True), + } + + +class MongoDbAtlasConfiguration(AWSProperty): + """ + `MongoDbAtlasConfiguration `__ + """ + + props: PropsDictType = { + "CollectionName": (str, True), + "CredentialsSecretArn": (str, True), + "DatabaseName": (str, True), + "Endpoint": (str, True), + "EndpointServiceName": (str, False), + "FieldMapping": (MongoDbAtlasFieldMapping, True), + "VectorIndexName": (str, True), + } + + class OpenSearchServerlessFieldMapping(AWSProperty): """ `OpenSearchServerlessFieldMapping `__ @@ -539,6 +925,7 @@ class StorageConfiguration(AWSProperty): """ props: PropsDictType = { + "MongoDbAtlasConfiguration": (MongoDbAtlasConfiguration, False), "OpensearchServerlessConfiguration": (OpenSearchServerlessConfiguration, False), "PineconeConfiguration": (PineconeConfiguration, False), "RdsConfiguration": (RdsConfiguration, False), @@ -563,6 +950,50 @@ class KnowledgeBase(AWSObject): } +class PromptVariant(AWSProperty): + """ + `PromptVariant `__ + """ + + props: PropsDictType = { + "InferenceConfiguration": (PromptInferenceConfiguration, False), + "ModelId": (str, False), + "Name": (str, True), + "TemplateConfiguration": (PromptTemplateConfiguration, False), + "TemplateType": (str, True), + } + + +class Prompt(AWSObject): + """ + `Prompt `__ + """ + + resource_type = "AWS::Bedrock::Prompt" + + props: PropsDictType = { + "CustomerEncryptionKeyArn": (str, False), + "DefaultVariant": (str, False), + "Description": (str, False), + "Name": (str, True), + "Tags": (dict, False), + "Variants": ([PromptVariant], False), + } + + +class PromptVersion(AWSObject): + """ + `PromptVersion `__ + """ + + resource_type = "AWS::Bedrock::PromptVersion" + + props: PropsDictType = { + "Description": (str, False), + "PromptArn": (str, True), + } + + class AgentAliasHistoryEvent(AWSProperty): """ `AgentAliasHistoryEvent `__ @@ -573,3 +1004,15 @@ class AgentAliasHistoryEvent(AWSProperty): "RoutingConfiguration": ([AgentAliasRoutingConfigurationListItem], False), "StartDate": (str, False), } + + +class TextS3Location(AWSProperty): + """ + `TextS3Location `__ + """ + + props: PropsDictType = { + "Bucket": (str, True), + "Key": (str, True), + "Version": (str, False), + } diff --git a/troposphere/dms.py b/troposphere/dms.py index 8011c6da2..dd77646f9 100644 --- a/troposphere/dms.py +++ b/troposphere/dms.py @@ -602,16 +602,16 @@ class ReplicationConfig(AWSObject): resource_type = "AWS::DMS::ReplicationConfig" props: PropsDictType = { - "ComputeConfig": (ComputeConfig, False), - "ReplicationConfigIdentifier": (str, False), + "ComputeConfig": (ComputeConfig, True), + "ReplicationConfigIdentifier": (str, True), "ReplicationSettings": (dict, False), - "ReplicationType": (str, False), + "ReplicationType": (str, True), "ResourceIdentifier": (str, False), - "SourceEndpointArn": (str, False), + "SourceEndpointArn": (str, True), "SupplementalSettings": (dict, False), - "TableMappings": (dict, False), + "TableMappings": (dict, True), "Tags": (Tags, False), - "TargetEndpointArn": (str, False), + "TargetEndpointArn": (str, True), } diff --git a/troposphere/ecr.py b/troposphere/ecr.py index 6185691e3..1ddc3f1e8 100644 --- a/troposphere/ecr.py +++ b/troposphere/ecr.py @@ -182,6 +182,7 @@ class RepositoryCreationTemplate(AWSObject): props: PropsDictType = { "AppliedFor": ([str], True), + "CustomRoleArn": (str, False), "Description": (str, False), "EncryptionConfiguration": (EncryptionConfiguration, False), "ImageTagMutability": (str, False), diff --git a/troposphere/eks.py b/troposphere/eks.py index 406e67232..b22b42765 100644 --- a/troposphere/eks.py +++ b/troposphere/eks.py @@ -201,6 +201,16 @@ class ResourcesVpcConfig(AWSProperty): } +class UpgradePolicy(AWSProperty): + """ + `UpgradePolicy `__ + """ + + props: PropsDictType = { + "SupportType": (str, False), + } + + class Cluster(AWSObject): """ `Cluster `__ @@ -219,6 +229,7 @@ class Cluster(AWSObject): "ResourcesVpcConfig": (ResourcesVpcConfig, True), "RoleArn": (str, True), "Tags": (Tags, False), + "UpgradePolicy": (UpgradePolicy, False), "Version": (str, False), } diff --git a/troposphere/globalaccelerator.py b/troposphere/globalaccelerator.py index 46e689664..c6d313b04 100644 --- a/troposphere/globalaccelerator.py +++ b/troposphere/globalaccelerator.py @@ -38,7 +38,8 @@ class Resource(AWSProperty): """ props: PropsDictType = { - "EndpointId": (str, True), + "Cidr": (str, False), + "EndpointId": (str, False), "Region": (str, False), } diff --git a/troposphere/iam.py b/troposphere/iam.py index 9e656b6c3..4b27fd708 100644 --- a/troposphere/iam.py +++ b/troposphere/iam.py @@ -117,7 +117,7 @@ class OIDCProvider(AWSObject): props: PropsDictType = { "ClientIdList": ([str], False), "Tags": (Tags, False), - "ThumbprintList": ([str], True), + "ThumbprintList": ([str], False), "Url": (str, False), } diff --git a/troposphere/mediaconnect.py b/troposphere/mediaconnect.py index bbc7c389e..54aa49eec 100644 --- a/troposphere/mediaconnect.py +++ b/troposphere/mediaconnect.py @@ -435,6 +435,7 @@ class FlowOutput(AWSObject): "MediaStreamOutputConfigurations": ([MediaStreamOutputConfiguration], False), "MinLatency": (integer, False), "Name": (str, False), + "OutputStatus": (str, False), "Port": (integer, False), "Protocol": (str, True), "RemoteId": (str, False), diff --git a/troposphere/mediapackagev2.py b/troposphere/mediapackagev2.py index 04415248e..b8163b87f 100644 --- a/troposphere/mediapackagev2.py +++ b/troposphere/mediapackagev2.py @@ -21,6 +21,7 @@ class Channel(AWSObject): "ChannelGroupName": (str, True), "ChannelName": (str, True), "Description": (str, False), + "InputType": (str, False), "Tags": (Tags, False), } @@ -107,6 +108,16 @@ class DashManifestConfiguration(AWSProperty): } +class ForceEndpointErrorConfiguration(AWSProperty): + """ + `ForceEndpointErrorConfiguration `__ + """ + + props: PropsDictType = { + "EndpointErrorConditions": ([str], False), + } + + class ScteHls(AWSProperty): """ `ScteHls `__ @@ -237,6 +248,7 @@ class OriginEndpoint(AWSObject): "ContainerType": (str, False), "DashManifests": ([DashManifestConfiguration], False), "Description": (str, False), + "ForceEndpointErrorConfiguration": (ForceEndpointErrorConfiguration, False), "HlsManifests": ([HlsManifestConfiguration], False), "LowLatencyHlsManifests": ([LowLatencyHlsManifestConfiguration], False), "OriginEndpointName": (str, True), diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index 9fcbcbfc3..9316fa835 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -641,6 +641,17 @@ class SharingSettings(AWSProperty): } +class StudioWebPortalSettings(AWSProperty): + """ + `StudioWebPortalSettings `__ + """ + + props: PropsDictType = { + "HiddenAppTypes": ([str], False), + "HiddenMlTools": ([str], False), + } + + class UserSettings(AWSProperty): """ `UserSettings `__ @@ -660,6 +671,7 @@ class UserSettings(AWSProperty): "SharingSettings": (SharingSettings, False), "SpaceStorageSettings": (DefaultSpaceStorageSettings, False), "StudioWebPortal": (str, False), + "StudioWebPortalSettings": (StudioWebPortalSettings, False), } @@ -1383,6 +1395,25 @@ class InferenceExperiment(AWSObject): } +class MlflowTrackingServer(AWSObject): + """ + `MlflowTrackingServer `__ + """ + + resource_type = "AWS::SageMaker::MlflowTrackingServer" + + props: PropsDictType = { + "ArtifactStoreUri": (str, True), + "AutomaticModelRegistration": (boolean, False), + "MlflowVersion": (str, False), + "RoleArn": (str, True), + "Tags": (Tags, False), + "TrackingServerName": (str, True), + "TrackingServerSize": (str, False), + "WeeklyMaintenanceWindowStart": (str, False), + } + + class RepositoryAuthConfig(AWSProperty): """ `RepositoryAuthConfig `__ @@ -2898,6 +2929,16 @@ class EndpointMetadata(AWSProperty): } +class HubAccessConfig(AWSProperty): + """ + `HubAccessConfig `__ + """ + + props: PropsDictType = { + "HubContentArn": (str, True), + } + + class ModelAccessConfig(AWSProperty): """ `ModelAccessConfig `__ diff --git a/troposphere/stepfunctions.py b/troposphere/stepfunctions.py index 1d577adc5..92a69267f 100644 --- a/troposphere/stepfunctions.py +++ b/troposphere/stepfunctions.py @@ -10,6 +10,18 @@ from .validators import boolean, integer +class EncryptionConfiguration(AWSProperty): + """ + `EncryptionConfiguration `__ + """ + + props: PropsDictType = { + "KmsDataKeyReusePeriodSeconds": (integer, False), + "KmsKeyId": (str, False), + "Type": (str, True), + } + + class Activity(AWSObject): """ `Activity `__ @@ -18,6 +30,7 @@ class Activity(AWSObject): resource_type = "AWS::StepFunctions::Activity" props: PropsDictType = { + "EncryptionConfiguration": (EncryptionConfiguration, False), "Name": (str, True), "Tags": (Tags, False), } @@ -89,6 +102,7 @@ class StateMachine(AWSObject): "DefinitionS3Location": (S3Location, False), "DefinitionString": (str, False), "DefinitionSubstitutions": (dict, False), + "EncryptionConfiguration": (EncryptionConfiguration, False), "LoggingConfiguration": (LoggingConfiguration, False), "RoleArn": (str, True), "StateMachineName": (str, False), diff --git a/troposphere/workspacesweb.py b/troposphere/workspacesweb.py index 239efcfd4..ad0b161e8 100644 --- a/troposphere/workspacesweb.py +++ b/troposphere/workspacesweb.py @@ -171,6 +171,7 @@ class UserSettings(AWSObject): ), "CopyAllowed": (str, True), "CustomerManagedKey": (str, False), + "DeepLinkAllowed": (str, False), "DisconnectTimeoutInMinutes": (double, False), "DownloadAllowed": (str, True), "IdleDisconnectTimeoutInMinutes": (double, False),