From 2b4c3afa0d6e260409bf7abb58831b38c1428da1 Mon Sep 17 00:00:00 2001 From: markpeek <638982+markpeek@users.noreply.github.com> Date: Wed, 19 Aug 2026 13:34:37 +0000 Subject: [PATCH] Updates from spec version 261.0.0 --- troposphere/accessanalyzer.py | 33 +- troposphere/amazonmq.py | 1 + troposphere/amplify.py | 13 + troposphere/apigatewayv2.py | 16 +- troposphere/appconfig.py | 51 + troposphere/appstream.py | 27 + troposphere/aps.py | 13 +- troposphere/athena.py | 34 +- troposphere/auditmanager.py | 37 + troposphere/awslambda.py | 2 + troposphere/backup.py | 49 + troposphere/batch.py | 99 +- troposphere/bcmdataexports.py | 24 + troposphere/bedrock.py | 195 +++- troposphere/bedrockagentcore.py | 975 ++++++++++++++++--- troposphere/cassandra.py | 14 + troposphere/certificatemanager.py | 125 ++- troposphere/cleanrooms.py | 89 +- troposphere/cloudformation.py | 74 +- troposphere/cloudfront.py | 1 + troposphere/cloudwatch.py | 27 +- troposphere/codeartifact.py | 16 + troposphere/codebuild.py | 25 + troposphere/cognito.py | 86 +- troposphere/comprehend.py | 85 ++ troposphere/config.py | 67 +- troposphere/connect.py | 233 ++++- troposphere/customerprofiles.py | 30 + troposphere/devopsagent.py | 98 +- troposphere/dynamodb.py | 20 +- troposphere/ec2.py | 148 ++- troposphere/ecs.py | 87 +- troposphere/eks.py | 102 ++ troposphere/elasticache.py | 50 +- troposphere/elasticloadbalancingv2.py | 3 + troposphere/emr.py | 52 + troposphere/emrcontainers.py | 2 + troposphere/entityresolution.py | 1 + troposphere/events.py | 26 + troposphere/evs.py | 8 +- troposphere/fis.py | 35 + troposphere/globalaccelerator.py | 3 + troposphere/glue.py | 94 +- troposphere/grafana.py | 12 + troposphere/greengrassv2.py | 36 + troposphere/healthlake.py | 60 ++ troposphere/identitystore.py | 32 +- troposphere/imagebuilder.py | 111 +++ troposphere/inspectorv2.py | 80 +- troposphere/internetmonitor.py | 27 + troposphere/iot.py | 60 +- troposphere/iottwinmaker.py | 56 ++ troposphere/ivs.py | 144 ++- troposphere/kafkaconnect.py | 52 + troposphere/lex.py | 16 + troposphere/licensemanager.py | 105 ++ troposphere/lightsail.py | 72 ++ troposphere/location.py | 60 ++ troposphere/mediaconnect.py | 90 ++ troposphere/medialive.py | 27 + troposphere/mediapackage.py | 28 + troposphere/mediapackagev2.py | 96 ++ troposphere/mediatailor.py | 96 ++ troposphere/memorydb.py | 33 +- troposphere/msk.py | 255 ++++- troposphere/neptunegraph.py | 52 + troposphere/observabilityadmin.py | 1 + troposphere/omics.py | 147 ++- troposphere/opensearchserverless.py | 28 + troposphere/opensearchservice.py | 3 + troposphere/osis.py | 12 + troposphere/pcs.py | 49 + troposphere/personalize.py | 76 +- troposphere/quicksight.py | 489 +++++++++- troposphere/rds.py | 23 + troposphere/redshift.py | 38 + troposphere/redshiftserverless.py | 12 + troposphere/rekognition.py | 14 + troposphere/route53resolver.py | 25 + troposphere/sagemaker.py | 1295 +++++++++++++++++++++---- troposphere/securityhub.py | 50 + troposphere/servicecatalog.py | 15 +- troposphere/signer.py | 55 ++ troposphere/smsvoice.py | 13 + troposphere/ssm.py | 142 +++ troposphere/sso.py | 43 + troposphere/stepfunctions.py | 50 + troposphere/synthetics.py | 57 +- troposphere/timestream.py | 23 +- troposphere/transfer.py | 15 + troposphere/vpclattice.py | 1 + troposphere/wafv2.py | 17 + troposphere/workspaces.py | 26 + 93 files changed, 6971 insertions(+), 518 deletions(-) diff --git a/troposphere/accessanalyzer.py b/troposphere/accessanalyzer.py index f9cf7c873..da92e831d 100644 --- a/troposphere/accessanalyzer.py +++ b/troposphere/accessanalyzer.py @@ -99,9 +99,9 @@ class Filter(AWSProperty): } -class ArchiveRule(AWSProperty): +class ArchiveRuleProperty(AWSProperty): """ - `ArchiveRule `__ + `ArchiveRuleProperty `__ """ props: PropsDictType = { @@ -120,7 +120,34 @@ class Analyzer(AWSObject): props: PropsDictType = { "AnalyzerConfiguration": (AnalyzerConfiguration, False), "AnalyzerName": (str, False), - "ArchiveRules": ([ArchiveRule], False), + "ArchiveRules": ([ArchiveRuleProperty], False), "Tags": (Tags, False), "Type": (str, True), } + + +class FilterItems(AWSProperty): + """ + `FilterItems `__ + """ + + props: PropsDictType = { + "Contains": ([str], False), + "Eq": ([str], False), + "Exists": (boolean, False), + "Neq": ([str], False), + } + + +class ArchiveRule(AWSObject): + """ + `ArchiveRule `__ + """ + + resource_type = "AWS::AccessAnalyzer::ArchiveRule" + + props: PropsDictType = { + "AnalyzerName": (str, True), + "Filter": (dict, True), + "RuleName": (str, True), + } diff --git a/troposphere/amazonmq.py b/troposphere/amazonmq.py index d181c5e2d..d69a23467 100644 --- a/troposphere/amazonmq.py +++ b/troposphere/amazonmq.py @@ -115,6 +115,7 @@ class Broker(AWSObject): "PubliclyAccessible": (boolean, True), "ResourceShareArns": ([str], False), "SecurityGroups": ([str], False), + "StorageSize": (integer, False), "StorageType": (str, False), "SubnetIds": ([str], False), "Tags": (validate_tags_or_list, False), diff --git a/troposphere/amplify.py b/troposphere/amplify.py index 43f9e9e54..a66ef08a6 100644 --- a/troposphere/amplify.py +++ b/troposphere/amplify.py @@ -192,6 +192,19 @@ class Domain(AWSObject): } +class Jobs(AWSObject): + """ + `Jobs `__ + """ + + resource_type = "AWS::Amplify::Jobs" + + props: PropsDictType = { + "AppId": (str, True), + "BranchName": (str, True), + } + + class Certificate(AWSProperty): """ `Certificate `__ diff --git a/troposphere/apigatewayv2.py b/troposphere/apigatewayv2.py index 1fa3c7aba..4f809fbec 100644 --- a/troposphere/apigatewayv2.py +++ b/troposphere/apigatewayv2.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.apigatewayv2 import ( dict_or_string, @@ -361,6 +361,20 @@ def validate(self): validate_model(self) +class PortalProduct(AWSObject): + """ + `PortalProduct `__ + """ + + resource_type = "AWS::ApiGatewayV2::PortalProduct" + + props: PropsDictType = { + "Description": (str, False), + "DisplayName": (str, True), + "Tags": (Tags, False), + } + + class Route(AWSObject): """ `Route `__ diff --git a/troposphere/appconfig.py b/troposphere/appconfig.py index 9b422329d..ecbaac017 100644 --- a/troposphere/appconfig.py +++ b/troposphere/appconfig.py @@ -140,6 +140,57 @@ class Environment(AWSObject): } +class AttributeValue(AWSProperty): + """ + `AttributeValue `__ + """ + + props: PropsDictType = { + "BooleanValue": (boolean, False), + "NumberArray": ([double], False), + "NumberValue": (double, False), + "StringArray": ([str], False), + "StringValue": (str, False), + } + + +class Treatment(AWSProperty): + """ + `Treatment `__ + """ + + props: PropsDictType = { + "AttributeValues": (dict, False), + "Description": (str, False), + "Enabled": (boolean, True), + "Key": (str, False), + "Weight": (double, True), + } + + +class ExperimentDefinition(AWSObject): + """ + `ExperimentDefinition `__ + """ + + resource_type = "AWS::AppConfig::ExperimentDefinition" + + props: PropsDictType = { + "ApplicationIdentifier": (str, True), + "AudienceDescription": (str, False), + "AudienceRule": (str, True), + "ConfigurationProfileIdentifier": (str, True), + "Control": (Treatment, True), + "EnvironmentIdentifier": (str, True), + "FlagKey": (str, True), + "Hypothesis": (str, False), + "LaunchCriteria": (str, False), + "Name": (str, True), + "Tags": (Tags, False), + "Treatments": ([Treatment], True), + } + + class Parameter(AWSProperty): """ `Parameter `__ diff --git a/troposphere/appstream.py b/troposphere/appstream.py index 13a754c95..d8bc9707f 100644 --- a/troposphere/appstream.py +++ b/troposphere/appstream.py @@ -306,6 +306,32 @@ class ImageBuilder(AWSObject): } +class AgentAccessSetting(AWSProperty): + """ + `AgentAccessSetting `__ + """ + + props: PropsDictType = { + "AgentAction": (str, True), + "Permission": (str, True), + } + + +class AgentAccessConfig(AWSProperty): + """ + `AgentAccessConfig `__ + """ + + props: PropsDictType = { + "S3BucketArn": (str, False), + "ScreenImageFormat": (str, True), + "ScreenResolution": (str, True), + "ScreenshotsUploadEnabled": (boolean, False), + "Settings": ([AgentAccessSetting], True), + "UserControlMode": (str, False), + } + + class ApplicationSettings(AWSProperty): """ `ApplicationSettings `__ @@ -382,6 +408,7 @@ class Stack(AWSObject): props: PropsDictType = { "AccessEndpoints": ([AccessEndpoint], False), + "AgentAccessConfig": (AgentAccessConfig, False), "ApplicationSettings": (ApplicationSettings, False), "AttributesToDelete": ([str], False), "ContentRedirection": (ContentRedirection, False), diff --git a/troposphere/aps.py b/troposphere/aps.py index e68ba0e41..7feb73d1c 100644 --- a/troposphere/aps.py +++ b/troposphere/aps.py @@ -123,13 +123,24 @@ class AmpConfiguration(AWSProperty): } +class CloudWatchConfiguration(AWSProperty): + """ + `CloudWatchConfiguration `__ + """ + + props: PropsDictType = { + "DatasetArn": (str, True), + } + + class Destination(AWSProperty): """ `Destination `__ """ props: PropsDictType = { - "AmpConfiguration": (AmpConfiguration, True), + "AmpConfiguration": (AmpConfiguration, False), + "CloudWatchConfiguration": (CloudWatchConfiguration, False), } diff --git a/troposphere/athena.py b/troposphere/athena.py index b663edaac..cffa4a8ab 100644 --- a/troposphere/athena.py +++ b/troposphere/athena.py @@ -96,16 +96,6 @@ class PreparedStatement(AWSObject): } -class CustomerContentEncryptionConfiguration(AWSProperty): - """ - `CustomerContentEncryptionConfiguration `__ - """ - - props: PropsDictType = { - "KmsKey": (str, True), - } - - class Classification(AWSProperty): """ `Classification `__ @@ -132,6 +122,30 @@ class EngineConfiguration(AWSProperty): } +class Session(AWSObject): + """ + `Session `__ + """ + + resource_type = "AWS::Athena::Session" + + props: PropsDictType = { + "EngineConfiguration": (EngineConfiguration, True), + "ExecutionRole": (str, False), + "WorkGroup": (str, True), + } + + +class CustomerContentEncryptionConfiguration(AWSProperty): + """ + `CustomerContentEncryptionConfiguration `__ + """ + + props: PropsDictType = { + "KmsKey": (str, True), + } + + class EngineVersion(AWSProperty): """ `EngineVersion `__ diff --git a/troposphere/auditmanager.py b/troposphere/auditmanager.py index e8f7317a0..1f859d903 100644 --- a/troposphere/auditmanager.py +++ b/troposphere/auditmanager.py @@ -104,3 +104,40 @@ class Assessment(AWSObject): "Status": (str, False), "Tags": (Tags, False), } + + +class ControlSetControl(AWSProperty): + """ + `ControlSetControl `__ + """ + + props: PropsDictType = { + "Id": (str, True), + } + + +class ControlSet(AWSProperty): + """ + `ControlSet `__ + """ + + props: PropsDictType = { + "Controls": ([ControlSetControl], True), + "Name": (str, True), + } + + +class AssessmentFramework(AWSObject): + """ + `AssessmentFramework `__ + """ + + resource_type = "AWS::AuditManager::AssessmentFramework" + + props: PropsDictType = { + "ComplianceType": (str, False), + "ControlSets": ([ControlSet], True), + "Description": (str, False), + "Name": (str, True), + "Tags": (Tags, False), + } diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py index 0f74a5187..546e0e047 100644 --- a/troposphere/awslambda.py +++ b/troposphere/awslambda.py @@ -497,6 +497,7 @@ class Code(AWSProperty): "ImageUri": (str, False), "S3Bucket": (str, False), "S3Key": (str, False), + "S3ObjectStorageMode": (str, False), "S3ObjectVersion": (str, False), "SourceKMSKeyArn": (str, False), "ZipFile": (str, False), @@ -523,6 +524,7 @@ class DurableConfig(AWSProperty): props: PropsDictType = { "ExecutionTimeout": (integer, True), + "KMSKeyArn": (str, False), "RetentionPeriodInDays": (integer, False), } diff --git a/troposphere/backup.py b/troposphere/backup.py index bae97fa2f..902c16cf3 100644 --- a/troposphere/backup.py +++ b/troposphere/backup.py @@ -287,6 +287,55 @@ class Framework(AWSObject): } +class DateRange(AWSProperty): + """ + `DateRange `__ + """ + + props: PropsDictType = { + "FromDate": (str, True), + "ToDate": (str, True), + } + + +class RecoveryPointSelection(AWSProperty): + """ + `RecoveryPointSelection `__ + """ + + props: PropsDictType = { + "DateRange": (DateRange, False), + "ResourceIdentifiers": ([str], False), + "VaultNames": ([str], False), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class LegalHold(AWSObject): + """ + `LegalHold `__ + """ + + resource_type = "AWS::Backup::LegalHold" + + props: PropsDictType = { + "Description": (str, True), + "RecoveryPointSelection": (RecoveryPointSelection, True), + "Tags": ([TagsItems], False), + "Title": (str, True), + } + + class LogicallyAirGappedBackupVault(AWSObject): """ `LogicallyAirGappedBackupVault `__ diff --git a/troposphere/batch.py b/troposphere/batch.py index 0f8781c23..28688723c 100644 --- a/troposphere/batch.py +++ b/troposphere/batch.py @@ -70,6 +70,100 @@ def validate(self): validate_launch_template_specification(self) +class InfrastructureOptimization(AWSProperty): + """ + `InfrastructureOptimization `__ + """ + + props: PropsDictType = { + "ScaleInAfter": (integer, False), + } + + +class CapacityReservations(AWSProperty): + """ + `CapacityReservations `__ + """ + + props: PropsDictType = { + "ReservationGroupArn": (str, False), + "ReservationPreference": (str, False), + } + + +class InstanceRequirements(AWSProperty): + """ + `InstanceRequirements `__ + """ + + props: PropsDictType = { + "AllowedInstanceTypes": ([str], False), + } + + +class ManagedInstancesLocalStorageConfiguration(AWSProperty): + """ + `ManagedInstancesLocalStorageConfiguration `__ + """ + + props: PropsDictType = { + "UseLocalStorage": (boolean, False), + } + + +class ManagedInstancesNetworkConfiguration(AWSProperty): + """ + `ManagedInstancesNetworkConfiguration `__ + """ + + props: PropsDictType = { + "SecurityGroups": ([str], True), + "Subnets": ([str], True), + } + + +class ManagedInstancesStorageConfiguration(AWSProperty): + """ + `ManagedInstancesStorageConfiguration `__ + """ + + props: PropsDictType = { + "StorageSizeGiB": (integer, False), + } + + +class InstanceLaunchTemplate(AWSProperty): + """ + `InstanceLaunchTemplate `__ + """ + + props: PropsDictType = { + "CapacityOptionType": (str, False), + "CapacityReservations": (CapacityReservations, False), + "Ec2InstanceProfileArn": (str, True), + "FipsEnabled": (boolean, False), + "InstanceMetadataTagsPropagation": (boolean, False), + "InstanceRequirements": (InstanceRequirements, False), + "LocalStorageConfiguration": (ManagedInstancesLocalStorageConfiguration, False), + "Monitoring": (str, False), + "NetworkConfiguration": (ManagedInstancesNetworkConfiguration, True), + "StorageConfiguration": (ManagedInstancesStorageConfiguration, False), + } + + +class ManagedInstancesProvider(AWSProperty): + """ + `ManagedInstancesProvider `__ + """ + + props: PropsDictType = { + "InfrastructureOptimization": (InfrastructureOptimization, False), + "InfrastructureRoleArn": (str, True), + "InstanceLaunchTemplate": (InstanceLaunchTemplate, True), + "PropagateTags": (str, False), + } + + class ComputeResources(AWSProperty): """ `ComputeResources `__ @@ -78,6 +172,7 @@ class ComputeResources(AWSProperty): props: PropsDictType = { "AllocationStrategy": (validate_allocation_strategy, False), "BidPercentage": (integer, False), + "CapacityTags": (dict, False), "DesiredvCpus": (integer, False), "Ec2Configuration": ([Ec2ConfigurationObject], False), "Ec2KeyPair": (str, False), @@ -85,13 +180,14 @@ class ComputeResources(AWSProperty): "InstanceRole": (str, False), "InstanceTypes": ([str], False), "LaunchTemplate": (LaunchTemplateSpecification, False), + "ManagedInstancesProvider": (ManagedInstancesProvider, False), "MaxvCpus": (integer, True), "MinvCpus": (integer, False), "PlacementGroup": (str, False), "ScalingPolicy": (ComputeScalingPolicy, False), "SecurityGroupIds": ([str], False), "SpotIamFleetRole": (str, False), - "Subnets": ([str], True), + "Subnets": ([str], False), "Tags": (dict, False), "Type": (str, True), "UpdateToLatestImageVersion": (boolean, False), @@ -492,6 +588,7 @@ class EcsTaskProperties(AWSProperty): "ExecutionRoleArn": (str, False), "IpcMode": (str, False), "NetworkConfiguration": (NetworkConfiguration, False), + "NetworkMode": (str, False), "PidMode": (str, False), "PlatformVersion": (str, False), "RuntimePlatform": (RuntimePlatform, False), diff --git a/troposphere/bcmdataexports.py b/troposphere/bcmdataexports.py index 1625ae1fa..bc01777fe 100644 --- a/troposphere/bcmdataexports.py +++ b/troposphere/bcmdataexports.py @@ -104,3 +104,27 @@ class Export(AWSObject): "Export": (ExportProperty, True), "Tags": ([ResourceTag], False), } + + +class Table(AWSObject): + """ + `Table `__ + """ + + resource_type = "AWS::BCMDataExports::Table" + + props: PropsDictType = { + "TableName": (str, True), + } + + +class Column(AWSProperty): + """ + `Column `__ + """ + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, False), + "Type": (str, False), + } diff --git a/troposphere/bedrock.py b/troposphere/bedrock.py index cac634ce7..1d872db0c 100644 --- a/troposphere/bedrock.py +++ b/troposphere/bedrock.py @@ -307,6 +307,18 @@ class ApplicationInferenceProfile(AWSObject): } +class AsyncInvoke(AWSObject): + """ + `AsyncInvoke `__ + """ + + resource_type = "AWS::Bedrock::AsyncInvoke" + + props: PropsDictType = { + "Tags": (Tags, False), + } + + class PolicyDefinitionRule(AWSProperty): """ `PolicyDefinitionRule `__ @@ -1445,6 +1457,16 @@ class DataSource(AWSObject): } +class DefaultPromptRouter(AWSObject): + """ + `DefaultPromptRouter `__ + """ + + resource_type = "AWS::Bedrock::DefaultPromptRouter" + + props: PropsDictType = {} + + class ModelEnforcement(AWSProperty): """ `ModelEnforcement `__ @@ -2188,6 +2210,16 @@ class FlowVersion(AWSObject): } +class FoundationModel(AWSObject): + """ + `FoundationModel `__ + """ + + resource_type = "AWS::Bedrock::FoundationModel" + + props: PropsDictType = {} + + class AutomatedReasoningPolicyConfig(AWSProperty): """ `AutomatedReasoningPolicyConfig `__ @@ -2557,7 +2589,7 @@ class ManagedKnowledgeBaseConfiguration(AWSProperty): """ props: PropsDictType = { - "EmbeddingModelArn": (str, True), + "EmbeddingModelArn": (str, False), "EmbeddingModelConfiguration": (EmbeddingModelConfiguration, False), "EmbeddingModelType": (str, False), "ServerSideEncryptionConfiguration": ( @@ -3004,6 +3036,76 @@ class KnowledgeBase(AWSObject): } +class KnowledgeBasePolicy(AWSObject): + """ + `KnowledgeBasePolicy `__ + """ + + resource_type = "AWS::Bedrock::KnowledgeBasePolicy" + + props: PropsDictType = { + "KnowledgeBaseId": (str, True), + "PolicyDocument": (dict, True), + } + + +class S3DataSource(AWSProperty): + """ + `S3DataSource `__ + """ + + props: PropsDictType = { + "S3Uri": (str, True), + } + + +class ModelDataSource(AWSProperty): + """ + `ModelDataSource `__ + """ + + props: PropsDictType = { + "S3DataSource": (S3DataSource, True), + } + + +class VpcConfig(AWSProperty): + """ + `VpcConfig `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "SubnetIds": ([str], True), + } + + +class ModelImportJob(AWSObject): + """ + `ModelImportJob `__ + """ + + resource_type = "AWS::Bedrock::ModelImportJob" + + props: PropsDictType = { + "ImportedModelKmsKeyArn": (str, False), + "ModelDataSource": (ModelDataSource, True), + "RoleArn": (str, True), + "Tags": (Tags, False), + "VpcConfig": (VpcConfig, False), + } + + +class ModelInvocationJob(AWSObject): + """ + `ModelInvocationJob `__ + """ + + resource_type = "AWS::Bedrock::ModelInvocationJob" + + props: PropsDictType = {} + + class PromptAgentResource(AWSProperty): """ `PromptAgentResource `__ @@ -3096,6 +3198,20 @@ class ResourcePolicy(AWSObject): } +class Session(AWSObject): + """ + `Session `__ + """ + + resource_type = "AWS::Bedrock::Session" + + props: PropsDictType = { + "EncryptionKeyArn": (str, False), + "SessionMetadata": (dict, False), + "Tags": (Tags, False), + } + + class AgentAliasHistoryEvent(AWSProperty): """ `AgentAliasHistoryEvent `__ @@ -3108,6 +3224,26 @@ class AgentAliasHistoryEvent(AWSProperty): } +class AsyncInvokeS3OutputDataConfig(AWSProperty): + """ + `AsyncInvokeS3OutputDataConfig `__ + """ + + props: PropsDictType = { + "S3Uri": (str, True), + } + + +class AsyncInvokeOutputDataConfig(AWSProperty): + """ + `AsyncInvokeOutputDataConfig `__ + """ + + props: PropsDictType = { + "S3OutputDataConfig": (AsyncInvokeS3OutputDataConfig, True), + } + + class EntityTypeInfo(AWSProperty): """ `EntityTypeInfo `__ @@ -3137,3 +3273,60 @@ class InferenceProfileModel(AWSProperty): props: PropsDictType = { "ModelArn": (str, False), } + + +class ModelInvocationJobS3InputDataConfig(AWSProperty): + """ + `ModelInvocationJobS3InputDataConfig `__ + """ + + props: PropsDictType = { + "S3BucketOwner": (str, False), + "S3Uri": (str, True), + } + + +class ModelInvocationJobInputDataConfig(AWSProperty): + """ + `ModelInvocationJobInputDataConfig `__ + """ + + props: PropsDictType = { + "S3InputDataConfig": (ModelInvocationJobS3InputDataConfig, True), + } + + +class ModelInvocationJobS3OutputDataConfig(AWSProperty): + """ + `ModelInvocationJobS3OutputDataConfig `__ + """ + + props: PropsDictType = { + "S3BucketOwner": (str, False), + "S3EncryptionKeyId": (str, False), + "S3Uri": (str, True), + } + + +class ModelInvocationJobOutputDataConfig(AWSProperty): + """ + `ModelInvocationJobOutputDataConfig `__ + """ + + props: PropsDictType = { + "S3OutputDataConfig": (ModelInvocationJobS3OutputDataConfig, True), + } + + +class ModelLifecycle(AWSProperty): + """ + `ModelLifecycle `__ + """ + + props: PropsDictType = { + "EndOfLifeTime": (str, False), + "LegacyTime": (str, False), + "PublicExtendedAccessTime": (str, False), + "StartOfLifeTime": (str, False), + "Status": (str, True), + } diff --git a/troposphere/bedrockagentcore.py b/troposphere/bedrockagentcore.py index f16064e03..0563781c6 100644 --- a/troposphere/bedrockagentcore.py +++ b/troposphere/bedrockagentcore.py @@ -167,6 +167,230 @@ class BrowserProfile(AWSObject): } +class InstanceLifecycleConfiguration(AWSProperty): + """ + `InstanceLifecycleConfiguration `__ + """ + + props: PropsDictType = { + "IdleInstanceTimeout": (integer, False), + "MaxLifetime": (integer, False), + } + + +class CapacityReservationTarget(AWSProperty): + """ + `CapacityReservationTarget `__ + """ + + props: PropsDictType = { + "CapacityReservationId": (str, False), + "CapacityReservationResourceGroupArn": (str, False), + } + + +class CapacityReservationSpecification(AWSProperty): + """ + `CapacityReservationSpecification `__ + """ + + props: PropsDictType = { + "CapacityReservationPreference": (str, False), + "CapacityReservationTarget": (CapacityReservationTarget, False), + } + + +class EphemeralEBSVolumeConfiguration(AWSProperty): + """ + `EphemeralEBSVolumeConfiguration `__ + """ + + props: PropsDictType = { + "EbsCardIndex": (integer, False), + "Encrypted": (boolean, False), + "Iops": (integer, False), + "KmsKeyId": (str, False), + "SnapshotId": (str, False), + "Throughput": (integer, False), + "VolumeInitializationRate": (integer, False), + "VolumeSize": (integer, False), + "VolumeType": (str, False), + } + + +class EphemeralBlockDeviceMapping(AWSProperty): + """ + `EphemeralBlockDeviceMapping `__ + """ + + props: PropsDictType = { + "DeviceName": (str, False), + "Ebs": (EphemeralEBSVolumeConfiguration, False), + "VirtualName": (str, False), + } + + +class InstanceRequirements(AWSProperty): + """ + `InstanceRequirements `__ + """ + + props: PropsDictType = { + "AllowedInstanceTypes": ([str], True), + } + + +class LicenseSpecification(AWSProperty): + """ + `LicenseSpecification `__ + """ + + props: PropsDictType = { + "LicenseConfigurationArn": (str, True), + } + + +class LaunchParameters(AWSProperty): + """ + `LaunchParameters `__ + """ + + props: PropsDictType = { + "CapacityReservationSpecification": (CapacityReservationSpecification, False), + "EphemeralVolumes": ([EphemeralBlockDeviceMapping], False), + "InstanceProfileArn": (str, False), + "InstanceRequirements": (InstanceRequirements, True), + "LicenseSpecifications": ([LicenseSpecification], False), + "Monitoring": (str, False), + "OperatingSystem": (str, True), + "PropagatedTags": (dict, False), + "SshKeyName": (str, False), + } + + +class LaunchTemplateSource(AWSProperty): + """ + `LaunchTemplateSource `__ + """ + + props: PropsDictType = { + "LaunchParameters": (LaunchParameters, True), + } + + +class RootVolumeConfiguration(AWSProperty): + """ + `RootVolumeConfiguration `__ + """ + + props: PropsDictType = { + "Encrypted": (boolean, False), + "FreeSpaceGiB": (integer, False), + "Iops": (integer, False), + "KmsKeyId": (str, False), + "Throughput": (integer, False), + "VolumeType": (str, False), + } + + +class EbsVolumeConfiguration(AWSProperty): + """ + `EbsVolumeConfiguration `__ + """ + + props: PropsDictType = { + "Encrypted": (boolean, False), + "Iops": (integer, False), + "KmsKeyId": (str, False), + "Name": (str, True), + "SizeGiB": (integer, True), + "SnapshotId": (str, False), + "Throughput": (integer, False), + "VolumeType": (str, False), + } + + +class VolumeConfiguration(AWSProperty): + """ + `VolumeConfiguration `__ + """ + + props: PropsDictType = { + "EbsConfiguration": (EbsVolumeConfiguration, True), + } + + +class VpcConfiguration(AWSProperty): + """ + `VpcConfiguration `__ + """ + + props: PropsDictType = { + "SecurityGroups": ([str], True), + "Subnets": ([str], True), + } + + +class Ec2Configuration(AWSProperty): + """ + `Ec2Configuration `__ + """ + + props: PropsDictType = { + "LaunchTemplateSource": (LaunchTemplateSource, True), + "LifecycleConfiguration": (InstanceLifecycleConfiguration, False), + "RootVolume": (RootVolumeConfiguration, False), + "Volumes": ([VolumeConfiguration], False), + "VpcConfiguration": (VpcConfiguration, True), + } + + +class ComputeConfiguration(AWSProperty): + """ + `ComputeConfiguration `__ + """ + + props: PropsDictType = { + "Ec2Configuration": (Ec2Configuration, True), + } + + +class PermissionsConfiguration(AWSProperty): + """ + `PermissionsConfiguration `__ + """ + + props: PropsDictType = { + "CapacityProviderOperatorRoleArn": (str, True), + } + + +class CapacityProvider(AWSObject): + """ + `CapacityProvider `__ + """ + + resource_type = "AWS::BedrockAgentCore::CapacityProvider" + + props: PropsDictType = { + "ComputeConfiguration": (ComputeConfiguration, True), + "Description": (str, False), + "Name": (str, True), + "PermissionsConfiguration": (PermissionsConfiguration, True), + "Tags": (Tags, False), + } + + +class CodeInterpreter(AWSObject): + """ + `CodeInterpreter `__ + """ + + resource_type = "AWS::BedrockAgentCore::CodeInterpreter" + + props: PropsDictType = {} + + class CodeInterpreterNetworkConfiguration(AWSProperty): """ `CodeInterpreterNetworkConfiguration `__ @@ -197,7 +421,7 @@ class CodeInterpreterCustom(AWSObject): class ComponentConfiguration(AWSProperty): """ - `ComponentConfiguration `__ + `ComponentConfiguration `__ """ props: PropsDictType = { @@ -207,7 +431,7 @@ class ComponentConfiguration(AWSProperty): class VersionCreatedBySource(AWSProperty): """ - `VersionCreatedBySource `__ + `VersionCreatedBySource `__ """ props: PropsDictType = { @@ -235,6 +459,21 @@ class ConfigurationBundle(AWSObject): } +class ConfigurationBundleVersion(AWSObject): + """ + `ConfigurationBundleVersion `__ + """ + + resource_type = "AWS::BedrockAgentCore::ConfigurationBundleVersion" + + props: PropsDictType = { + "BranchName": (str, False), + "CommitMessage": (str, False), + "Components": (dict, True), + "CreatedBy": (VersionCreatedBySource, False), + } + + class InlineExamplesSource(AWSProperty): """ `InlineExamplesSource `__ @@ -328,13 +567,38 @@ class BedrockEvaluatorModelConfig(AWSProperty): } +class ReasoningConfiguration(AWSProperty): + """ + `ReasoningConfiguration `__ + """ + + props: PropsDictType = { + "Effort": (str, False), + } + + +class OpenResponsesEvaluatorModelConfig(AWSProperty): + """ + `OpenResponsesEvaluatorModelConfig `__ + """ + + props: PropsDictType = { + "MaxOutputTokens": (integer, False), + "ModelId": (str, True), + "Reasoning": (ReasoningConfiguration, False), + "Temperature": (double, False), + "TopP": (double, False), + } + + class EvaluatorModelConfig(AWSProperty): """ `EvaluatorModelConfig `__ """ props: PropsDictType = { - "BedrockEvaluatorModelConfig": (BedrockEvaluatorModelConfig, True), + "BedrockEvaluatorModelConfig": (BedrockEvaluatorModelConfig, False), + "ResponsesEvaluatorModelConfig": (OpenResponsesEvaluatorModelConfig, False), } @@ -412,181 +676,494 @@ class Evaluator(AWSObject): } -class ClaimMatchValueType(AWSProperty): +class HostingEnvironment(AWSProperty): + """ + `HostingEnvironment `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + } + + +class AllowedWorkloadConfiguration(AWSProperty): + """ + `AllowedWorkloadConfiguration `__ + """ + + props: PropsDictType = { + "HostingEnvironments": ([HostingEnvironment], False), + "WorkloadIdentities": ([str], False), + } + + +class ClaimMatchValueType(AWSProperty): + """ + `ClaimMatchValueType `__ + """ + + props: PropsDictType = { + "MatchValueString": (str, False), + "MatchValueStringList": ([str], False), + } + + +class AuthorizingClaimMatchValueType(AWSProperty): + """ + `AuthorizingClaimMatchValueType `__ + """ + + props: PropsDictType = { + "ClaimMatchOperator": (str, True), + "ClaimMatchValue": (ClaimMatchValueType, True), + } + + +class CustomClaimValidationType(AWSProperty): + """ + `CustomClaimValidationType `__ + """ + + props: PropsDictType = { + "AuthorizingClaimMatchValue": (AuthorizingClaimMatchValueType, True), + "InboundTokenClaimName": (str, True), + "InboundTokenClaimValueType": (str, True), + } + + +class ManagedVpcResource(AWSProperty): + """ + `ManagedVpcResource `__ + """ + + props: PropsDictType = { + "EndpointIpAddressType": (str, True), + "RoutingDomain": (str, False), + "SecurityGroupIds": ([str], False), + "SubnetIds": ([str], True), + "Tags": (dict, False), + "VpcIdentifier": (str, True), + } + + +class SelfManagedLatticeResource(AWSProperty): + """ + `SelfManagedLatticeResource `__ + """ + + props: PropsDictType = { + "ResourceConfigurationIdentifier": (str, True), + } + + +class PrivateEndpoint(AWSProperty): + """ + `PrivateEndpoint `__ + """ + + props: PropsDictType = { + "ManagedVpcResource": (ManagedVpcResource, False), + "SelfManagedLatticeResource": (SelfManagedLatticeResource, False), + } + + +class PrivateEndpointOverride(AWSProperty): + """ + `PrivateEndpointOverride `__ + """ + + props: PropsDictType = { + "Domain": (str, True), + "PrivateEndpoint": (PrivateEndpoint, True), + } + + +class CustomJWTAuthorizerConfiguration(AWSProperty): + """ + `CustomJWTAuthorizerConfiguration `__ + """ + + props: PropsDictType = { + "AllowedAudience": ([str], False), + "AllowedClients": ([str], False), + "AllowedScopes": ([str], False), + "AllowedWorkloadConfiguration": (AllowedWorkloadConfiguration, False), + "CustomClaims": ([CustomClaimValidationType], False), + "DiscoveryUrl": (str, True), + "PrivateEndpoint": (PrivateEndpoint, False), + "PrivateEndpointOverrides": ([PrivateEndpointOverride], False), + } + + +class AuthorizerConfiguration(AWSProperty): + """ + `AuthorizerConfiguration `__ + """ + + props: PropsDictType = { + "CustomJWTAuthorizer": (CustomJWTAuthorizerConfiguration, False), + } + + +class LambdaInterceptorConfiguration(AWSProperty): + """ + `LambdaInterceptorConfiguration `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + } + + +class InterceptorConfiguration(AWSProperty): + """ + `InterceptorConfiguration `__ + """ + + props: PropsDictType = { + "Lambda": (LambdaInterceptorConfiguration, True), + } + + +class InterceptorPayloadExclusionSelector(AWSProperty): + """ + `InterceptorPayloadExclusionSelector `__ + """ + + props: PropsDictType = { + "Field": (str, True), + } + + +class InterceptorPayloadFilter(AWSProperty): + """ + `InterceptorPayloadFilter `__ + """ + + props: PropsDictType = { + "Exclude": ([InterceptorPayloadExclusionSelector], True), + } + + +class InterceptorInputConfiguration(AWSProperty): + """ + `InterceptorInputConfiguration `__ + """ + + props: PropsDictType = { + "PassRequestHeaders": (boolean, True), + "PayloadFilter": (InterceptorPayloadFilter, False), + } + + +class GatewayInterceptorConfiguration(AWSProperty): + """ + `GatewayInterceptorConfiguration `__ + """ + + props: PropsDictType = { + "InputConfiguration": (InterceptorInputConfiguration, False), + "InterceptionPoints": ([str], True), + "Interceptor": (InterceptorConfiguration, True), + } + + +class GatewayPolicyEngineConfiguration(AWSProperty): + """ + `GatewayPolicyEngineConfiguration `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + "Mode": (str, True), + } + + +class SessionConfiguration(AWSProperty): + """ + `SessionConfiguration `__ + """ + + props: PropsDictType = { + "SessionTimeoutInSeconds": (double, False), + } + + +class StreamingConfiguration(AWSProperty): + """ + `StreamingConfiguration `__ + """ + + props: PropsDictType = { + "EnableResponseStreaming": (boolean, False), + } + + +class MCPGatewayConfiguration(AWSProperty): + """ + `MCPGatewayConfiguration `__ + """ + + props: PropsDictType = { + "Instructions": (str, False), + "SearchType": (str, False), + "SessionConfiguration": (SessionConfiguration, False), + "StreamingConfiguration": (StreamingConfiguration, False), + "SupportedVersions": ([str], False), + } + + +class GatewayProtocolConfiguration(AWSProperty): + """ + `GatewayProtocolConfiguration `__ + """ + + props: PropsDictType = { + "Mcp": (MCPGatewayConfiguration, True), + } + + +class Gateway(AWSObject): + """ + `Gateway `__ + """ + + resource_type = "AWS::BedrockAgentCore::Gateway" + + props: PropsDictType = { + "AuthorizerConfiguration": (AuthorizerConfiguration, False), + "AuthorizerType": (str, True), + "Description": (str, False), + "ExceptionLevel": (str, False), + "InterceptorConfigurations": ([GatewayInterceptorConfiguration], False), + "KmsKeyArn": (str, False), + "Name": (str, True), + "PolicyEngineConfiguration": (GatewayPolicyEngineConfiguration, False), + "ProtocolConfiguration": (GatewayProtocolConfiguration, False), + "ProtocolType": (dict, False), + "RoleArn": (str, True), + "Tags": (dict, False), + } + + +class RateConfig(AWSProperty): + """ + `RateConfig `__ + """ + + props: PropsDictType = { + "Period": (str, True), + "Rate": (double, True), + } + + +class LimitEntry(AWSProperty): + """ + `LimitEntry `__ + """ + + props: PropsDictType = { + "Connections": ([RateConfig], False), + "Dimensions": (dict, True), + "Requests": ([RateConfig], False), + "Tokens": ([RateConfig], False), + } + + +class GatewayRateLimit(AWSObject): + """ + `GatewayRateLimit `__ + """ + + resource_type = "AWS::BedrockAgentCore::GatewayRateLimit" + + props: PropsDictType = { + "Description": (str, False), + "DimensionKeys": ([str], True), + "Entries": ([LimitEntry], True), + "GatewayIdentifier": (str, False), + "RateLimitId": (str, False), + } + + +class StaticOverride(AWSProperty): + """ + `StaticOverride `__ + """ + + props: PropsDictType = { + "BundleArn": (str, True), + "BundleVersion": (str, True), + } + + +class ConfigurationBundleReference(AWSProperty): """ - `ClaimMatchValueType `__ + `ConfigurationBundleReference `__ """ props: PropsDictType = { - "MatchValueString": (str, False), - "MatchValueStringList": ([str], False), + "BundleArn": (str, True), + "BundleVersion": (str, True), } -class AuthorizingClaimMatchValueType(AWSProperty): +class TrafficSplitEntry(AWSProperty): """ - `AuthorizingClaimMatchValueType `__ + `TrafficSplitEntry `__ """ props: PropsDictType = { - "ClaimMatchOperator": (str, True), - "ClaimMatchValue": (ClaimMatchValueType, True), + "ConfigurationBundle": (ConfigurationBundleReference, True), + "Description": (str, False), + "Metadata": (dict, False), + "Name": (str, True), + "Weight": (double, True), } -class CustomClaimValidationType(AWSProperty): +class WeightedOverride(AWSProperty): """ - `CustomClaimValidationType `__ + `WeightedOverride `__ """ props: PropsDictType = { - "AuthorizingClaimMatchValue": (AuthorizingClaimMatchValueType, True), - "InboundTokenClaimName": (str, True), - "InboundTokenClaimValueType": (str, True), + "TrafficSplit": ([TrafficSplitEntry], True), } -class CustomJWTAuthorizerConfiguration(AWSProperty): +class ConfigurationBundleAction(AWSProperty): """ - `CustomJWTAuthorizerConfiguration `__ + `ConfigurationBundleAction `__ """ props: PropsDictType = { - "AllowedAudience": ([str], False), - "AllowedClients": ([str], False), - "AllowedScopes": ([str], False), - "CustomClaims": ([CustomClaimValidationType], False), - "DiscoveryUrl": (str, True), + "StaticOverride": (StaticOverride, False), + "WeightedOverride": (WeightedOverride, False), } -class AuthorizerConfiguration(AWSProperty): +class StaticRoute(AWSProperty): """ - `AuthorizerConfiguration `__ + `StaticRoute `__ """ props: PropsDictType = { - "CustomJWTAuthorizer": (CustomJWTAuthorizerConfiguration, False), + "TargetName": (str, True), } -class LambdaInterceptorConfiguration(AWSProperty): +class TargetTrafficSplitEntry(AWSProperty): """ - `LambdaInterceptorConfiguration `__ + `TargetTrafficSplitEntry `__ """ props: PropsDictType = { - "Arn": (str, True), + "Description": (str, False), + "Metadata": (dict, False), + "Name": (str, True), + "TargetName": (str, True), + "Weight": (double, True), } -class InterceptorConfiguration(AWSProperty): +class WeightedRoute(AWSProperty): """ - `InterceptorConfiguration `__ + `WeightedRoute `__ """ props: PropsDictType = { - "Lambda": (LambdaInterceptorConfiguration, True), + "TrafficSplit": ([TargetTrafficSplitEntry], True), } -class InterceptorInputConfiguration(AWSProperty): +class RouteToTargetAction(AWSProperty): """ - `InterceptorInputConfiguration `__ + `RouteToTargetAction `__ """ props: PropsDictType = { - "PassRequestHeaders": (boolean, True), + "StaticRoute": (StaticRoute, False), + "WeightedRoute": (WeightedRoute, False), } -class GatewayInterceptorConfiguration(AWSProperty): +class Action(AWSProperty): """ - `GatewayInterceptorConfiguration `__ + `Action `__ """ props: PropsDictType = { - "InputConfiguration": (InterceptorInputConfiguration, False), - "InterceptionPoints": ([str], True), - "Interceptor": (InterceptorConfiguration, True), + "ConfigurationBundle": (ConfigurationBundleAction, False), + "RouteToTarget": (RouteToTargetAction, False), } -class GatewayPolicyEngineConfiguration(AWSProperty): +class MatchPaths(AWSProperty): """ - `GatewayPolicyEngineConfiguration `__ + `MatchPaths `__ """ props: PropsDictType = { - "Arn": (str, True), - "Mode": (str, True), + "AnyOf": ([str], True), } -class SessionConfiguration(AWSProperty): +class IamPrincipal(AWSProperty): """ - `SessionConfiguration `__ + `IamPrincipal `__ """ props: PropsDictType = { - "SessionTimeoutInSeconds": (integer, False), + "Arn": (str, True), + "Operator": (str, False), } -class StreamingConfiguration(AWSProperty): +class MatchPrincipalEntry(AWSProperty): """ - `StreamingConfiguration `__ + `MatchPrincipalEntry `__ """ props: PropsDictType = { - "EnableResponseStreaming": (boolean, False), + "IamPrincipal": (IamPrincipal, True), } -class MCPGatewayConfiguration(AWSProperty): +class MatchPrincipals(AWSProperty): """ - `MCPGatewayConfiguration `__ + `MatchPrincipals `__ """ props: PropsDictType = { - "Instructions": (str, False), - "SearchType": (str, False), - "SessionConfiguration": (SessionConfiguration, False), - "StreamingConfiguration": (StreamingConfiguration, False), - "SupportedVersions": ([str], False), + "AnyOf": ([MatchPrincipalEntry], True), } -class GatewayProtocolConfiguration(AWSProperty): +class Condition(AWSProperty): """ - `GatewayProtocolConfiguration `__ + `Condition `__ """ props: PropsDictType = { - "Mcp": (MCPGatewayConfiguration, True), + "MatchPaths": (MatchPaths, False), + "MatchPrincipals": (MatchPrincipals, False), } -class Gateway(AWSObject): +class GatewayRule(AWSObject): """ - `Gateway `__ + `GatewayRule `__ """ - resource_type = "AWS::BedrockAgentCore::Gateway" + resource_type = "AWS::BedrockAgentCore::GatewayRule" props: PropsDictType = { - "AuthorizerConfiguration": (AuthorizerConfiguration, False), - "AuthorizerType": (str, True), + "Actions": ([Action], True), + "Conditions": ([Condition], False), "Description": (str, False), - "ExceptionLevel": (str, False), - "InterceptorConfigurations": ([GatewayInterceptorConfiguration], False), - "KmsKeyArn": (str, False), - "Name": (str, True), - "PolicyEngineConfiguration": (GatewayPolicyEngineConfiguration, False), - "ProtocolConfiguration": (GatewayProtocolConfiguration, False), - "ProtocolType": (dict, False), - "RoleArn": (str, True), - "Tags": (dict, False), + "GatewayIdentifier": (str, False), + "Priority": (double, True), } @@ -663,42 +1240,6 @@ class MetadataConfiguration(AWSProperty): } -class ManagedVpcResource(AWSProperty): - """ - `ManagedVpcResource `__ - """ - - props: PropsDictType = { - "EndpointIpAddressType": (str, True), - "RoutingDomain": (str, False), - "SecurityGroupIds": ([str], False), - "SubnetIds": ([str], True), - "Tags": (dict, False), - "VpcIdentifier": (str, True), - } - - -class SelfManagedLatticeResource(AWSProperty): - """ - `SelfManagedLatticeResource `__ - """ - - props: PropsDictType = { - "ResourceConfigurationIdentifier": (str, True), - } - - -class PrivateEndpoint(AWSProperty): - """ - `PrivateEndpoint `__ - """ - - props: PropsDictType = { - "ManagedVpcResource": (ManagedVpcResource, False), - "SelfManagedLatticeResource": (SelfManagedLatticeResource, False), - } - - class S3Configuration(AWSProperty): """ `S3Configuration `__ @@ -738,7 +1279,7 @@ class StickinessConfiguration(AWSProperty): props: PropsDictType = { "Identifier": (str, True), - "Timeout": (integer, False), + "Timeout": (double, False), } @@ -778,6 +1319,92 @@ class HttpTargetConfiguration(AWSProperty): } +class InferenceConnectorSource(AWSProperty): + """ + `InferenceConnectorSource `__ + """ + + props: PropsDictType = { + "ConnectorId": (str, True), + } + + +class InferenceConnectorTargetConfiguration(AWSProperty): + """ + `InferenceConnectorTargetConfiguration `__ + """ + + props: PropsDictType = { + "Source": (InferenceConnectorSource, True), + } + + +class ModelEntry(AWSProperty): + """ + `ModelEntry `__ + """ + + props: PropsDictType = { + "Model": (str, True), + } + + +class InferenceOperationConfiguration(AWSProperty): + """ + `InferenceOperationConfiguration `__ + """ + + props: PropsDictType = { + "Models": ([ModelEntry], False), + "Path": (str, True), + "ProviderPath": (str, False), + } + + +class ProviderPrefix(AWSProperty): + """ + `ProviderPrefix `__ + """ + + props: PropsDictType = { + "Separator": (str, False), + "Strip": (boolean, False), + } + + +class ModelMapping(AWSProperty): + """ + `ModelMapping `__ + """ + + props: PropsDictType = { + "ProviderPrefix": (ProviderPrefix, False), + } + + +class InferenceProviderTargetConfiguration(AWSProperty): + """ + `InferenceProviderTargetConfiguration `__ + """ + + props: PropsDictType = { + "Endpoint": (str, True), + "ModelMapping": (ModelMapping, False), + "Operations": ([InferenceOperationConfiguration], False), + } + + +class InferenceTargetConfiguration(AWSProperty): + """ + `InferenceTargetConfiguration `__ + """ + + props: PropsDictType = { + "Connector": (InferenceConnectorTargetConfiguration, False), + "Provider": (InferenceProviderTargetConfiguration, False), + } + + class ApiGatewayToolFilter(AWSProperty): """ `ApiGatewayToolFilter `__ @@ -941,7 +1568,7 @@ class McpServerTargetConfiguration(AWSProperty): "Endpoint": (str, True), "ListingMode": (str, False), "McpToolSchema": (McpToolSchemaConfiguration, False), - "ResourcePriority": (integer, False), + "ResourcePriority": (double, False), } @@ -967,6 +1594,7 @@ class TargetConfiguration(AWSProperty): props: PropsDictType = { "Http": (HttpTargetConfiguration, False), + "Inference": (InferenceTargetConfiguration, False), "Mcp": (McpTargetConfiguration, False), } @@ -1454,6 +2082,34 @@ class Harness(AWSObject): } +class HarnessEndpoint(AWSObject): + """ + `HarnessEndpoint `__ + """ + + resource_type = "AWS::BedrockAgentCore::HarnessEndpoint" + + props: PropsDictType = { + "Description": (str, False), + "EndpointName": (str, True), + "HarnessId": (str, True), + "Tags": (Tags, False), + "TargetVersion": (str, False), + } + + +class HarnessVersion(AWSObject): + """ + `HarnessVersion `__ + """ + + resource_type = "AWS::BedrockAgentCore::HarnessVersion" + + props: PropsDictType = { + "HarnessId": (str, True), + } + + class IndexedKey(AWSProperty): """ `IndexedKey `__ @@ -2011,6 +2667,39 @@ class OnBehalfOfTokenExchangeConfig(AWSProperty): } +class KmsKeySourceType(AWSProperty): + """ + `KmsKeySourceType `__ + """ + + props: PropsDictType = { + "KmsKeyArn": (str, True), + } + + +class PrivateKeySource(AWSProperty): + """ + `PrivateKeySource `__ + """ + + props: PropsDictType = { + "KmsKeySource": (KmsKeySourceType, False), + } + + +class PrivateKeyJwtConfig(AWSProperty): + """ + `PrivateKeyJwtConfig `__ + """ + + props: PropsDictType = { + "AdditionalHeaderClaims": (dict, False), + "AdditionalPayloadClaims": (dict, False), + "PrivateKeySource": (PrivateKeySource, False), + "SigningAlgorithm": (str, False), + } + + class CustomOauth2ProviderConfigInput(AWSProperty): """ `CustomOauth2ProviderConfigInput `__ @@ -2024,6 +2713,9 @@ class CustomOauth2ProviderConfigInput(AWSProperty): "ClientSecretSource": (str, False), "OauthDiscovery": (Oauth2Discovery, True), "OnBehalfOfTokenExchangeConfig": (OnBehalfOfTokenExchangeConfig, False), + "PrivateEndpoint": (PrivateEndpoint, False), + "PrivateEndpointOverrides": ([PrivateEndpointOverride], False), + "PrivateKeyJwtConfig": (PrivateKeyJwtConfig, False), } @@ -2459,6 +3151,30 @@ class PolicyEngine(AWSObject): } +class Resource(AWSProperty): + """ + `Resource `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + } + + +class PolicyGeneration(AWSObject): + """ + `PolicyGeneration `__ + """ + + resource_type = "AWS::BedrockAgentCore::PolicyGeneration" + + props: PropsDictType = { + "Name": (str, True), + "PolicyEngineId": (str, True), + "Resource": (Resource, True), + } + + class ResourcePolicy(AWSObject): """ `ResourcePolicy `__ @@ -2554,6 +3270,16 @@ class RuntimeEndpoint(AWSObject): } +class TokenVault(AWSObject): + """ + `TokenVault `__ + """ + + resource_type = "AWS::BedrockAgentCore::TokenVault" + + props: PropsDictType = {} + + class WorkloadIdentity(AWSObject): """ `WorkloadIdentity `__ @@ -2645,6 +3371,17 @@ class CoinbaseCdpConfigurationOutput(AWSProperty): } +class KmsConfiguration(AWSProperty): + """ + `KmsConfiguration `__ + """ + + props: PropsDictType = { + "KeyType": (str, True), + "KmsKeyArn": (str, False), + } + + class ManagedResourceDetails(AWSProperty): """ `ManagedResourceDetails `__ @@ -2667,6 +3404,9 @@ class Oauth2ProviderConfigOutput(AWSProperty): "ClientId": (str, False), "OauthDiscovery": (Oauth2Discovery, False), "OnBehalfOfTokenExchangeConfig": (OnBehalfOfTokenExchangeConfig, False), + "PrivateEndpoint": (PrivateEndpoint, False), + "PrivateEndpointOverrides": ([PrivateEndpointOverride], False), + "PrivateKeyJwtConfig": (PrivateKeyJwtConfig, False), } @@ -2708,17 +3448,6 @@ class PaymentProviderConfigurationOutput(AWSProperty): } -class PrivateEndpointOverride(AWSProperty): - """ - `PrivateEndpointOverride `__ - """ - - props: PropsDictType = { - "Domain": (str, True), - "PrivateEndpoint": (PrivateEndpoint, True), - } - - class VersionLineageMetadata(AWSProperty): """ `VersionLineageMetadata `__ diff --git a/troposphere/cassandra.py b/troposphere/cassandra.py index 7e18f829b..70ac3a9f0 100644 --- a/troposphere/cassandra.py +++ b/troposphere/cassandra.py @@ -40,6 +40,20 @@ class Keyspace(AWSObject): } +class Stream(AWSObject): + """ + `Stream `__ + """ + + resource_type = "AWS::Cassandra::Stream" + + props: PropsDictType = { + "KeyspaceName": (str, False), + "StreamViewType": (str, False), + "TableName": (str, False), + } + + class TargetTrackingScalingPolicyConfiguration(AWSProperty): """ `TargetTrackingScalingPolicyConfiguration `__ diff --git a/troposphere/certificatemanager.py b/troposphere/certificatemanager.py index 3dece25e2..9fc456292 100644 --- a/troposphere/certificatemanager.py +++ b/troposphere/certificatemanager.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 integer from .validators.certificatemanager import validate_tags_or_list @@ -33,13 +33,134 @@ class Account(AWSObject): } +class DomainScope(AWSProperty): + """ + `DomainScope `__ + """ + + props: PropsDictType = { + "ExactDomain": (str, False), + "Subdomains": (str, False), + "Wildcards": (str, False), + } + + +class DnsPrevalidationOptions(AWSProperty): + """ + `DnsPrevalidationOptions `__ + """ + + props: PropsDictType = { + "DomainScope": (DomainScope, False), + "HostedZoneId": (str, False), + } + + +class PrevalidationOptions(AWSProperty): + """ + `PrevalidationOptions `__ + """ + + props: PropsDictType = { + "DnsPrevalidation": (DnsPrevalidationOptions, True), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class AcmeDomainValidation(AWSObject): + """ + `AcmeDomainValidation `__ + """ + + resource_type = "AWS::CertificateManager::AcmeDomainValidation" + + props: PropsDictType = { + "AcmeEndpointArn": (str, True), + "DomainName": (str, True), + "PrevalidationOptions": (PrevalidationOptions, True), + "Tags": ([TagsItems], False), + } + + +class PublicCertificateAuthority(AWSProperty): + """ + `PublicCertificateAuthority `__ + """ + + props: PropsDictType = { + "AllowedKeyAlgorithms": ([str], False), + } + + +class CertificateAuthority(AWSProperty): + """ + `CertificateAuthority `__ + """ + + props: PropsDictType = { + "PublicCertificateAuthority": (PublicCertificateAuthority, True), + } + + +class AcmeEndpoint(AWSObject): + """ + `AcmeEndpoint `__ + """ + + resource_type = "AWS::CertificateManager::AcmeEndpoint" + + props: PropsDictType = { + "AuthorizationBehavior": (str, True), + "CertificateAuthority": (CertificateAuthority, True), + "CertificateTags": (Tags, False), + "Contact": (str, False), + "Tags": ([TagsItems], False), + } + + +class Expiration(AWSProperty): + """ + `Expiration `__ + """ + + props: PropsDictType = { + "Type": (str, True), + "Value": (integer, True), + } + + +class AcmeExternalAccountBinding(AWSObject): + """ + `AcmeExternalAccountBinding `__ + """ + + resource_type = "AWS::CertificateManager::AcmeExternalAccountBinding" + + props: PropsDictType = { + "AcmeEndpointArn": (str, True), + "Expiration": (Expiration, False), + "RoleArn": (str, True), + "Tags": ([TagsItems], False), + } + + class DomainValidationOption(AWSProperty): """ `DomainValidationOption `__ """ props: PropsDictType = { - "DomainName": (str, True), + "DomainName": (str, False), "HostedZoneId": (str, False), "ValidationDomain": (str, False), } diff --git a/troposphere/cleanrooms.py b/troposphere/cleanrooms.py index e3146a6e2..d733b258a 100644 --- a/troposphere/cleanrooms.py +++ b/troposphere/cleanrooms.py @@ -362,7 +362,7 @@ class AnalysisRuleAggregation(AWSProperty): class DifferentialPrivacyColumn(AWSProperty): """ - `DifferentialPrivacyColumn `__ + `DifferentialPrivacyColumn `__ """ props: PropsDictType = { @@ -372,7 +372,7 @@ class DifferentialPrivacyColumn(AWSProperty): class DifferentialPrivacy(AWSProperty): """ - `DifferentialPrivacy `__ + `DifferentialPrivacy `__ """ props: PropsDictType = { @@ -687,6 +687,91 @@ class IdNamespaceAssociation(AWSObject): } +class IntermediateTableAnalysisRuleCustom(AWSProperty): + """ + `IntermediateTableAnalysisRuleCustom `__ + """ + + props: PropsDictType = { + "AdditionalAnalyses": (str, False), + "AllowedAnalyses": ([str], True), + "AllowedAnalysisProviders": ([str], False), + "AllowedResultReceivers": ([str], False), + "DifferentialPrivacy": (DifferentialPrivacy, False), + "DisallowedOutputColumns": ([str], False), + } + + +class IntermediateTableAnalysisRulePolicyV1(AWSProperty): + """ + `IntermediateTableAnalysisRulePolicyV1 `__ + """ + + props: PropsDictType = { + "Custom": (IntermediateTableAnalysisRuleCustom, True), + } + + +class IntermediateTableAnalysisRulePolicy(AWSProperty): + """ + `IntermediateTableAnalysisRulePolicy `__ + """ + + props: PropsDictType = { + "V1": (IntermediateTableAnalysisRulePolicyV1, True), + } + + +class IntermediateTableAnalysisRule(AWSProperty): + """ + `IntermediateTableAnalysisRule `__ + """ + + props: PropsDictType = { + "Policy": (IntermediateTableAnalysisRulePolicy, True), + "Type": (str, True), + } + + +class PopulationAnalysisSqlParameters(AWSProperty): + """ + `PopulationAnalysisSqlParameters `__ + """ + + props: PropsDictType = { + "AnalysisTemplateArn": (str, False), + "QueryString": (str, False), + } + + +class PopulationAnalysisConfiguration(AWSProperty): + """ + `PopulationAnalysisConfiguration `__ + """ + + props: PropsDictType = { + "SqlParameters": (PopulationAnalysisSqlParameters, False), + } + + +class IntermediateTable(AWSObject): + """ + `IntermediateTable `__ + """ + + resource_type = "AWS::CleanRooms::IntermediateTable" + + props: PropsDictType = { + "AnalysisRules": ([IntermediateTableAnalysisRule], False), + "Description": (str, False), + "KmsKeyArn": (str, False), + "MembershipIdentifier": (str, True), + "Name": (str, True), + "PopulationAnalysisConfiguration": (PopulationAnalysisConfiguration, True), + "Tags": (Tags, False), + } + + class MembershipJobComputePaymentConfig(AWSProperty): """ `MembershipJobComputePaymentConfig `__ diff --git a/troposphere/cloudformation.py b/troposphere/cloudformation.py index dcf59ed08..756ac7468 100644 --- a/troposphere/cloudformation.py +++ b/troposphere/cloudformation.py @@ -36,6 +36,30 @@ class CustomResource(AWSObject): } +class TemplateConfiguration(AWSProperty): + """ + `TemplateConfiguration `__ + """ + + props: PropsDictType = { + "DeletionPolicy": (str, False), + "UpdateReplacePolicy": (str, False), + } + + +class GeneratedTemplate(AWSObject): + """ + `GeneratedTemplate `__ + """ + + resource_type = "AWS::CloudFormation::GeneratedTemplate" + + props: PropsDictType = { + "GeneratedTemplateName": (str, True), + "TemplateConfiguration": (TemplateConfiguration, False), + } + + class S3Location(AWSProperty): """ `S3Location `__ @@ -201,10 +225,12 @@ class LambdaHook(AWSObject): props: PropsDictType = { "Alias": (str, True), + "AutoUpdate": (boolean, False), "ExecutionRole": (str, True), "FailureMode": (str, True), "HookStatus": (str, True), "LambdaFunction": (str, True), + "LoggingConfig": (LoggingConfig, False), "StackFilters": (StackFilters, False), "TargetFilters": (TargetFilters, False), "TargetOperations": ([str], True), @@ -297,6 +323,28 @@ class ResourceDefaultVersion(AWSObject): } +class ScanFilter(AWSProperty): + """ + `ScanFilter `__ + """ + + props: PropsDictType = { + "Types": ([str], False), + } + + +class ResourceScan(AWSObject): + """ + `ResourceScan `__ + """ + + resource_type = "AWS::CloudFormation::ResourceScan" + + props: PropsDictType = { + "ScanFilters": ([ScanFilter], False), + } + + class ResourceVersion(AWSObject): """ `ResourceVersion `__ @@ -314,26 +362,16 @@ class ResourceVersion(AWSObject): class Stack(AWSObject): """ - `Stack `__ + `Stack `__ """ resource_type = "AWS::CloudFormation::Stack" props: PropsDictType = { - "Capabilities": ([str], False), - "Description": (str, False), - "DisableRollback": (boolean, False), - "EnableTerminationProtection": (boolean, False), "NotificationARNs": ([str], False), "Parameters": (dict, False), - "RoleARN": (str, False), - "StackName": (str, True), - "StackPolicyBody": (dict, False), - "StackPolicyURL": (str, False), - "StackStatusReason": (str, False), "Tags": (Tags, False), - "TemplateBody": (dict, False), - "TemplateURL": (str, False), + "TemplateURL": (str, True), "TimeoutInMinutes": (integer, False), } @@ -486,14 +524,14 @@ class WaitConditionHandle(AWSObject): props: PropsDictType = {} -class Output(AWSProperty): +class TemplateProgress(AWSProperty): """ - `Output `__ + `TemplateProgress `__ """ props: PropsDictType = { - "Description": (str, False), - "ExportName": (str, False), - "OutputKey": (str, False), - "OutputValue": (str, False), + "ResourcesFailed": (integer, False), + "ResourcesPending": (integer, False), + "ResourcesProcessing": (integer, False), + "ResourcesSucceeded": (integer, False), } diff --git a/troposphere/cloudfront.py b/troposphere/cloudfront.py index f096a3a15..c3690a992 100644 --- a/troposphere/cloudfront.py +++ b/troposphere/cloudfront.py @@ -1489,6 +1489,7 @@ class VpcOriginEndpointConfig(AWSProperty): "Arn": (str, True), "HTTPPort": (integer, False), "HTTPSPort": (integer, False), + "IpAddressType": (str, False), "Name": (str, True), "OriginProtocolPolicy": (str, False), "OriginSSLProtocols": ([str], False), diff --git a/troposphere/cloudwatch.py b/troposphere/cloudwatch.py index 685b400ab..1439fa453 100644 --- a/troposphere/cloudwatch.py +++ b/troposphere/cloudwatch.py @@ -39,6 +39,27 @@ class EvaluationCriteria(AWSProperty): } +class WallClockWindow(AWSProperty): + """ + `WallClockWindow `__ + """ + + props: PropsDictType = { + "Timezone": (str, False), + } + + +class EvaluationWindow(AWSProperty): + """ + `EvaluationWindow `__ + """ + + props: PropsDictType = { + "SlidingWindow": (dict, False), + "WallClockWindow": (WallClockWindow, False), + } + + class MetricDimension(AWSProperty): """ `MetricDimension `__ @@ -110,6 +131,7 @@ class Alarm(AWSObject): "EvaluationCriteria": (EvaluationCriteria, False), "EvaluationInterval": (integer, False), "EvaluationPeriods": (integer, False), + "EvaluationWindow": (EvaluationWindow, False), "ExtendedStatistic": (str, False), "InsufficientDataActions": ([str], False), "MetricName": (str, False), @@ -317,7 +339,7 @@ class ScheduleConfiguration(AWSProperty): props: PropsDictType = { "EndTimeOffset": (integer, False), "ScheduleExpression": (str, True), - "StartTimeOffset": (integer, False), + "StartTimeOffset": (integer, True), } @@ -328,10 +350,11 @@ class ScheduledQueryConfiguration(AWSProperty): props: PropsDictType = { "AggregationExpression": (str, True), - "LogGroupIdentifiers": ([str], True), + "LogGroupIdentifiers": ([str], False), "QueryString": (str, True), "ScheduleConfiguration": (ScheduleConfiguration, True), "ScheduledQueryRoleARN": (str, True), + "Tags": (Tags, False), } diff --git a/troposphere/codeartifact.py b/troposphere/codeartifact.py index 1d47d7a26..b7274f7e8 100644 --- a/troposphere/codeartifact.py +++ b/troposphere/codeartifact.py @@ -25,6 +25,22 @@ class Domain(AWSObject): } +class Package(AWSObject): + """ + `Package `__ + """ + + resource_type = "AWS::CodeArtifact::Package" + + props: PropsDictType = { + "DomainName": (str, True), + "Format": (str, True), + "Name": (str, True), + "Namespace": (str, False), + "Repository": (str, True), + } + + class RestrictionType(AWSProperty): """ `RestrictionType `__ diff --git a/troposphere/codebuild.py b/troposphere/codebuild.py index 23ba974e3..40724df52 100644 --- a/troposphere/codebuild.py +++ b/troposphere/codebuild.py @@ -37,6 +37,18 @@ class Build(AWSObject): } +class BuildBatch(AWSObject): + """ + `BuildBatch `__ + """ + + resource_type = "AWS::CodeBuild::BuildBatch" + + props: PropsDictType = { + "ProjectName": (str, False), + } + + class ComputeConfiguration(AWSProperty): """ `ComputeConfiguration `__ @@ -211,6 +223,7 @@ class Environment(AWSProperty): "DockerServer": (DockerServer, False), "EnvironmentVariables": (validate_environmentvariable_or_list, False), "Fleet": (ProjectFleet, False), + "HostKernel": (str, False), "Image": (str, True), "ImagePullCredentialsType": (validate_image_pull_credentials, False), "PrivilegedMode": (boolean, False), @@ -498,6 +511,18 @@ class ReportGroup(AWSObject): } +class Sandbox(AWSObject): + """ + `Sandbox `__ + """ + + resource_type = "AWS::CodeBuild::Sandbox" + + props: PropsDictType = { + "ProjectName": (str, False), + } + + class SourceCredential(AWSObject): """ `SourceCredential `__ diff --git a/troposphere/cognito.py b/troposphere/cognito.py index f962c7de1..f7ec76a04 100644 --- a/troposphere/cognito.py +++ b/troposphere/cognito.py @@ -297,7 +297,7 @@ class DeviceConfiguration(AWSProperty): class EmailConfiguration(AWSProperty): """ - `EmailConfiguration `__ + `EmailConfiguration `__ """ props: PropsDictType = { @@ -309,9 +309,30 @@ class EmailConfiguration(AWSProperty): } +class IssuerConfiguration(AWSProperty): + """ + `IssuerConfiguration `__ + """ + + props: PropsDictType = { + "Type": (str, False), + } + + +class KeyConfiguration(AWSProperty): + """ + `KeyConfiguration `__ + """ + + props: PropsDictType = { + "KeyType": (str, False), + "KmsKeyArn": (str, False), + } + + class CustomEmailSender(AWSProperty): """ - `CustomEmailSender `__ + `CustomEmailSender `__ """ props: PropsDictType = { @@ -322,7 +343,7 @@ class CustomEmailSender(AWSProperty): class CustomSMSSender(AWSProperty): """ - `CustomSMSSender `__ + `CustomSMSSender `__ """ props: PropsDictType = { @@ -333,7 +354,7 @@ class CustomSMSSender(AWSProperty): class InboundFederation(AWSProperty): """ - `InboundFederation `__ + `InboundFederation `__ """ props: PropsDictType = { @@ -344,7 +365,7 @@ class InboundFederation(AWSProperty): class PreTokenGenerationConfig(AWSProperty): """ - `PreTokenGenerationConfig `__ + `PreTokenGenerationConfig `__ """ props: PropsDictType = { @@ -355,7 +376,7 @@ class PreTokenGenerationConfig(AWSProperty): class LambdaConfig(AWSProperty): """ - `LambdaConfig `__ + `LambdaConfig `__ """ props: PropsDictType = { @@ -452,12 +473,29 @@ class SchemaAttribute(AWSProperty): } +class EumsSmsConfiguration(AWSProperty): + """ + `EumsSmsConfiguration `__ + """ + + props: PropsDictType = { + "CallerArn": (str, True), + "ConfigurationSetName": (str, False), + "ExternalId": (str, False), + "InEntityId": (str, False), + "InTemplateId": (str, False), + "OriginationIdentity": (str, False), + "Region": (str, False), + } + + class SmsConfiguration(AWSProperty): """ - `SmsConfiguration `__ + `SmsConfiguration `__ """ props: PropsDictType = { + "EumsSms": (EumsSmsConfiguration, False), "ExternalId": (str, False), "SnsCallerArn": (str, False), "SnsRegion": (str, False), @@ -540,6 +578,8 @@ class UserPool(AWSObject): "EmailVerificationMessage": (str, False), "EmailVerificationSubject": (str, False), "EnabledMfas": ([str], False), + "IssuerConfiguration": (IssuerConfiguration, False), + "KeyConfiguration": (KeyConfiguration, False), "LambdaConfig": (LambdaConfig, False), "MfaConfiguration": (str, False), "Policies": (Policies, False), @@ -639,6 +679,7 @@ class CustomDomainConfigType(AWSProperty): props: PropsDictType = { "CertificateArn": (str, False), + "SecurityPolicy": (str, False), } @@ -712,6 +753,37 @@ class UserPoolIdentityProvider(AWSObject): } +class UserPoolRegionalConfigurationAttachment(AWSObject): + """ + `UserPoolRegionalConfigurationAttachment `__ + """ + + resource_type = "AWS::Cognito::UserPoolRegionalConfigurationAttachment" + + props: PropsDictType = { + "EmailConfiguration": (EmailConfiguration, False), + "LambdaConfig": (LambdaConfig, False), + "SmsConfiguration": (SmsConfiguration, False), + "Status": (str, False), + "UserPoolId": (str, True), + "UserPoolTags": (dict, False), + } + + +class UserPoolReplica(AWSObject): + """ + `UserPoolReplica `__ + """ + + resource_type = "AWS::Cognito::UserPoolReplica" + + props: PropsDictType = { + "RegionName": (str, True), + "UserPoolId": (str, True), + "UserPoolTagsAtCreate": (dict, False), + } + + class ResourceServerScopeType(AWSProperty): """ `ResourceServerScopeType `__ diff --git a/troposphere/comprehend.py b/troposphere/comprehend.py index cc6db3c20..c4c17997d 100644 --- a/troposphere/comprehend.py +++ b/troposphere/comprehend.py @@ -9,6 +9,33 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags +class InputDataConfig(AWSProperty): + """ + `InputDataConfig `__ + """ + + props: PropsDictType = { + "InputFormat": (str, False), + "S3Uri": (str, True), + } + + +class DocumentClassificationJob(AWSObject): + """ + `DocumentClassificationJob `__ + """ + + resource_type = "AWS::Comprehend::DocumentClassificationJob" + + props: PropsDictType = { + "DataAccessRoleArn": (str, True), + "DocumentClassifierArn": (str, True), + "InputDataConfig": (InputDataConfig, True), + "JobName": (str, False), + "Tags": (Tags, False), + } + + class AugmentedManifestsListItem(AWSProperty): """ `AugmentedManifestsListItem `__ @@ -106,6 +133,22 @@ class DocumentClassifier(AWSObject): } +class EntitiesDetectionJob(AWSObject): + """ + `EntitiesDetectionJob `__ + """ + + resource_type = "AWS::Comprehend::EntitiesDetectionJob" + + props: PropsDictType = { + "DataAccessRoleArn": (str, True), + "InputDataConfig": (InputDataConfig, True), + "JobName": (str, False), + "LanguageCode": (str, True), + "Tags": (Tags, False), + } + + class DataSecurityConfig(AWSProperty): """ `DataSecurityConfig `__ @@ -179,3 +222,45 @@ class Flywheel(AWSObject): "Tags": (Tags, False), "TaskConfig": (TaskConfig, False), } + + +class FlywheelDataset(AWSObject): + """ + `FlywheelDataset `__ + """ + + resource_type = "AWS::Comprehend::FlywheelDataset" + + props: PropsDictType = { + "DatasetName": (str, True), + "DatasetType": (str, False), + "Description": (str, False), + "FlywheelArn": (str, True), + "Tags": (Tags, False), + } + + +class SentimentDetectionJob(AWSObject): + """ + `SentimentDetectionJob `__ + """ + + resource_type = "AWS::Comprehend::SentimentDetectionJob" + + props: PropsDictType = { + "DataAccessRoleArn": (str, True), + "InputDataConfig": (InputDataConfig, True), + "JobName": (str, False), + "LanguageCode": (str, True), + "Tags": (Tags, False), + } + + +class OutputDataConfig(AWSProperty): + """ + `OutputDataConfig `__ + """ + + props: PropsDictType = { + "S3Uri": (str, True), + } diff --git a/troposphere/config.py b/troposphere/config.py index 884815324..3b01a022e 100644 --- a/troposphere/config.py +++ b/troposphere/config.py @@ -267,12 +267,47 @@ class ConformancePack(AWSObject): "ConformancePackName": (str, True), "DeliveryS3Bucket": (str, False), "DeliveryS3KeyPrefix": (str, False), + "Tags": (Tags, False), "TemplateBody": (str, False), "TemplateS3Uri": (str, False), "TemplateSSMDocumentDetails": (TemplateSSMDocumentDetails, False), } +class AzureConnectorConfiguration(AWSProperty): + """ + `AzureConnectorConfiguration `__ + """ + + props: PropsDictType = { + "ClientIdentifier": (str, True), + "TenantIdentifier": (str, True), + } + + +class ConnectorConfiguration(AWSProperty): + """ + `ConnectorConfiguration `__ + """ + + props: PropsDictType = { + "Azure": (AzureConnectorConfiguration, False), + } + + +class Connector(AWSObject): + """ + `Connector `__ + """ + + resource_type = "AWS::Config::Connector" + + props: PropsDictType = { + "ConnectorConfiguration": (ConnectorConfiguration, True), + "Tags": (Tags, False), + } + + class ConfigSnapshotDeliveryProperties(AWSProperty): """ `ConfigSnapshotDeliveryProperties `__ @@ -387,6 +422,7 @@ class OrganizationConformancePack(AWSObject): "DeliveryS3KeyPrefix": (str, False), "ExcludedAccounts": ([str], False), "OrganizationConformancePackName": (str, True), + "Tags": (Tags, False), "TemplateBody": (str, False), "TemplateS3Uri": (str, False), } @@ -447,34 +483,3 @@ class StoredQuery(AWSObject): "QueryName": (str, True), "Tags": (Tags, False), } - - -class ResourceValue(AWSProperty): - """ - `ResourceValue `__ - """ - - props: PropsDictType = { - "Value": (str, False), - } - - -class StaticValue(AWSProperty): - """ - `StaticValue `__ - """ - - props: PropsDictType = { - "Values": ([str], False), - } - - -class RemediationParameterValue(AWSProperty): - """ - `RemediationParameterValue `__ - """ - - props: PropsDictType = { - "ResourceValue": (ResourceValue, False), - "StaticValue": (StaticValue, False), - } diff --git a/troposphere/connect.py b/troposphere/connect.py index 183c82c88..110bbeb63 100644 --- a/troposphere/connect.py +++ b/troposphere/connect.py @@ -130,6 +130,20 @@ class ContactFlowVersion(AWSObject): } +class DataLakeAssociation(AWSObject): + """ + `DataLakeAssociation `__ + """ + + resource_type = "AWS::Connect::DataLakeAssociation" + + props: PropsDictType = { + "DataSetId": (str, True), + "InstanceId": (str, True), + "TargetAccountId": (str, False), + } + + class DataTable(AWSObject): """ `DataTable `__ @@ -139,12 +153,12 @@ class DataTable(AWSObject): props: PropsDictType = { "Description": (str, False), - "InstanceArn": (str, False), - "Name": (str, False), - "Status": (str, False), + "InstanceArn": (str, True), + "Name": (str, True), + "Status": (str, True), "Tags": (Tags, False), - "TimeZone": (str, False), - "ValueLockLevel": (str, False), + "TimeZone": (str, True), + "ValueLockLevel": (str, True), } @@ -186,13 +200,13 @@ class DataTableAttribute(AWSObject): resource_type = "AWS::Connect::DataTableAttribute" props: PropsDictType = { - "DataTableArn": (str, False), + "DataTableArn": (str, True), "Description": (str, False), - "InstanceArn": (str, False), - "Name": (str, False), + "InstanceArn": (str, True), + "Name": (str, True), "Primary": (boolean, False), "Validation": (Validation, False), - "ValueType": (str, False), + "ValueType": (str, True), } @@ -226,9 +240,9 @@ class DataTableRecord(AWSObject): resource_type = "AWS::Connect::DataTableRecord" props: PropsDictType = { - "DataTableArn": (str, False), - "DataTableRecord": (DataTableRecordProperty, False), - "InstanceArn": (str, False), + "DataTableArn": (str, True), + "DataTableRecord": (DataTableRecordProperty, True), + "InstanceArn": (str, True), } @@ -336,6 +350,42 @@ class EvaluationFormItemEnablementConfiguration(AWSProperty): } +class EvaluationFormScoreThreshold(AWSProperty): + """ + `EvaluationFormScoreThreshold `__ + """ + + props: PropsDictType = { + "MaxScorePercentage": (double, False), + "MinScorePercentage": (double, False), + "PerformanceCategory": (str, True), + } + + +class QuestionPointsConfiguration(AWSProperty): + """ + `QuestionPointsConfiguration `__ + """ + + props: PropsDictType = { + "IsBonus": (boolean, False), + "MaxPointValue": (integer, False), + "MinPointValue": (integer, False), + } + + +class EvaluationFormQuestionScoringConfiguration(AWSProperty): + """ + `EvaluationFormQuestionScoringConfiguration `__ + """ + + props: PropsDictType = { + "IsExcludedFromScoring": (boolean, False), + "PointsConfiguration": (QuestionPointsConfiguration, False), + "ScoreThresholds": ([EvaluationFormScoreThreshold], False), + } + + class MultiSelectQuestionRuleCategoryAutomation(AWSProperty): """ `MultiSelectQuestionRuleCategoryAutomation `__ @@ -380,13 +430,38 @@ class EvaluationFormMultiSelectQuestionAutomation(AWSProperty): } +class AutomaticFailConfiguration(AWSProperty): + """ + `AutomaticFailConfiguration `__ + """ + + props: PropsDictType = { + "TargetSection": (str, False), + } + + +class QuestionOptionPointsConfiguration(AWSProperty): + """ + `QuestionOptionPointsConfiguration `__ + """ + + props: PropsDictType = { + "IsBonus": (boolean, False), + "PointValue": (integer, True), + } + + class EvaluationFormMultiSelectQuestionOption(AWSProperty): """ `EvaluationFormMultiSelectQuestionOption `__ """ props: PropsDictType = { + "AutomaticFail": (boolean, False), + "AutomaticFailConfiguration": (AutomaticFailConfiguration, False), + "PointsConfiguration": (QuestionOptionPointsConfiguration, False), "RefId": (str, True), + "Score": (integer, False), "Text": (str, True), } @@ -424,16 +499,6 @@ class EvaluationFormNumericQuestionAutomation(AWSProperty): } -class AutomaticFailConfiguration(AWSProperty): - """ - `AutomaticFailConfiguration `__ - """ - - props: PropsDictType = { - "TargetSection": (str, False), - } - - class EvaluationFormNumericQuestionOption(AWSProperty): """ `EvaluationFormNumericQuestionOption `__ @@ -444,6 +509,7 @@ class EvaluationFormNumericQuestionOption(AWSProperty): "AutomaticFailConfiguration": (AutomaticFailConfiguration, False), "MaxValue": (integer, True), "MinValue": (integer, True), + "PointsConfiguration": (QuestionOptionPointsConfiguration, False), "Score": (integer, False), } @@ -503,6 +569,7 @@ class EvaluationFormSingleSelectQuestionOption(AWSProperty): props: PropsDictType = { "AutomaticFail": (boolean, False), "AutomaticFailConfiguration": (AutomaticFailConfiguration, False), + "PointsConfiguration": (QuestionOptionPointsConfiguration, False), "RefId": (str, True), "Score": (integer, False), "Text": (str, True), @@ -566,6 +633,7 @@ class EvaluationFormQuestion(AWSProperty): "QuestionType": (str, True), "QuestionTypeProperties": (EvaluationFormQuestionTypeProperties, False), "RefId": (str, True), + "ScoringConfiguration": (EvaluationFormQuestionScoringConfiguration, False), "Title": (str, True), "Weight": (double, False), } @@ -589,8 +657,10 @@ class EvaluationFormSection(AWSProperty): props: PropsDictType = { "Instructions": (str, False), + "IsExcludedFromScoring": (boolean, False), "Items": ([EvaluationFormItem], False), "RefId": (str, True), + "ScoreThresholds": ([EvaluationFormScoreThreshold], False), "Title": (str, True), "Weight": (double, False), } @@ -665,6 +735,7 @@ class ScoringStrategy(AWSProperty): props: PropsDictType = { "Mode": (str, True), + "ScoreThresholds": ([EvaluationFormScoreThreshold], False), "Status": (str, True), } @@ -1097,6 +1168,16 @@ class Queue(AWSObject): } +class FlowQuickConnectConfig(AWSProperty): + """ + `FlowQuickConnectConfig `__ + """ + + props: PropsDictType = { + "ContactFlowArn": (str, True), + } + + class PhoneNumberQuickConnectConfig(AWSProperty): """ `PhoneNumberQuickConnectConfig `__ @@ -1135,6 +1216,7 @@ class QuickConnectConfig(AWSProperty): """ props: PropsDictType = { + "FlowConfig": (FlowQuickConnectConfig, False), "PhoneConfig": (PhoneNumberQuickConnectConfig, False), "QueueConfig": (QueueQuickConnectConfig, False), "QuickConnectType": (str, True), @@ -1236,6 +1318,41 @@ class RoutingProfile(AWSObject): } +class SlaTargetFieldValue(AWSProperty): + """ + `SlaTargetFieldValue `__ + """ + + props: PropsDictType = { + "StringValue": (str, False), + } + + +class CaseSlaConfiguration(AWSProperty): + """ + `CaseSlaConfiguration `__ + """ + + props: PropsDictType = { + "FieldId": (str, False), + "Name": (str, True), + "TargetFieldValues": ([SlaTargetFieldValue], False), + "TargetSlaMinutes": (double, True), + "Type": (str, True), + } + + +class AssignSlaAction(AWSProperty): + """ + `AssignSlaAction `__ + """ + + props: PropsDictType = { + "CaseSlaConfiguration": (CaseSlaConfiguration, True), + "SlaAssignmentType": (str, True), + } + + class FieldIdentifier(AWSProperty): """ `FieldIdentifier `__ @@ -1300,6 +1417,7 @@ class SendNotificationAction(AWSProperty): "Content": (str, True), "ContentType": (str, True), "DeliveryMethod": (str, True), + "Exclusion": (NotificationRecipientType, False), "Recipient": (NotificationRecipientType, True), "Subject": (str, False), } @@ -1356,6 +1474,7 @@ class Actions(AWSProperty): props: PropsDictType = { "AssignContactCategoryActions": (Tags, False), + "AssignSlaActions": ([AssignSlaAction], False), "CreateCaseActions": ([CreateCaseAction], False), "EndAssociatedTasksActions": (Tags, False), "EventBridgeActions": ([EventBridgeAction], False), @@ -1414,8 +1533,8 @@ class Application(AWSProperty): """ props: PropsDictType = { - "ApplicationPermissions": ([str], True), - "Namespace": (str, True), + "ApplicationPermissions": ([str], False), + "Namespace": (str, False), "Type": (str, False), } @@ -1426,8 +1545,8 @@ class FlowModule(AWSProperty): """ props: PropsDictType = { - "FlowModuleId": (str, True), - "Type": (str, True), + "FlowModuleId": (str, False), + "Type": (str, False), } @@ -1437,9 +1556,9 @@ class PrimaryAttributeValue(AWSProperty): """ props: PropsDictType = { - "AccessType": (str, True), - "AttributeName": (str, True), - "Values": ([str], True), + "AccessType": (str, False), + "AttributeName": (str, False), + "Values": ([str], False), } @@ -1449,7 +1568,7 @@ class PrimaryAttributeAccessControlConfigurationItem(AWSProperty): """ props: PropsDictType = { - "PrimaryAttributeValues": ([PrimaryAttributeValue], True), + "PrimaryAttributeValues": ([PrimaryAttributeValue], False), } @@ -1580,6 +1699,59 @@ class TaskTemplate(AWSObject): } +class ChatEntryPointParameters(AWSProperty): + """ + `ChatEntryPointParameters `__ + """ + + props: PropsDictType = { + "FlowId": (str, False), + } + + +class VoiceCallEntryPointParameters(AWSProperty): + """ + `VoiceCallEntryPointParameters `__ + """ + + props: PropsDictType = { + "DestinationPhoneNumber": (str, False), + "FlowId": (str, False), + "SourcePhoneNumber": (str, False), + } + + +class EntryPoint(AWSProperty): + """ + `EntryPoint `__ + """ + + props: PropsDictType = { + "ChatEntryPointParameters": (ChatEntryPointParameters, False), + "Type": (str, False), + "VoiceCallEntryPointParameters": (VoiceCallEntryPointParameters, False), + } + + +class TestCase(AWSObject): + """ + `TestCase `__ + """ + + resource_type = "AWS::Connect::TestCase" + + props: PropsDictType = { + "Content": (str, True), + "Description": (str, False), + "EntryPoint": (EntryPoint, False), + "InitializationData": (str, False), + "InstanceArn": (str, True), + "Name": (str, True), + "Status": (str, False), + "Tags": (Tags, False), + } + + class TrafficDistributionGroup(AWSObject): """ `TrafficDistributionGroup `__ @@ -1601,6 +1773,7 @@ class AfterContactWorkConfig(AWSProperty): """ props: PropsDictType = { + "AfterContactWorkMode": (str, False), "AfterContactWorkTimeLimit": (integer, False), } diff --git a/troposphere/customerprofiles.py b/troposphere/customerprofiles.py index a1fff14fb..f6e50289f 100644 --- a/troposphere/customerprofiles.py +++ b/troposphere/customerprofiles.py @@ -259,6 +259,36 @@ class Domain(AWSObject): } +class DomainObjectTypeField(AWSProperty): + """ + `DomainObjectTypeField `__ + """ + + props: PropsDictType = { + "ContentType": (str, False), + "FeatureType": (str, False), + "Source": (str, True), + "Target": (str, True), + } + + +class DomainObjectType(AWSObject): + """ + `DomainObjectType `__ + """ + + resource_type = "AWS::CustomerProfiles::DomainObjectType" + + props: PropsDictType = { + "Description": (str, False), + "DomainName": (str, True), + "EncryptionKey": (str, False), + "Fields": (dict, True), + "ObjectTypeName": (str, True), + "Tags": (Tags, False), + } + + class EventStream(AWSObject): """ `EventStream `__ diff --git a/troposphere/devopsagent.py b/troposphere/devopsagent.py index 531e8619a..1b2998a17 100644 --- a/troposphere/devopsagent.py +++ b/troposphere/devopsagent.py @@ -64,6 +64,35 @@ class AgentSpace(AWSObject): } +class AssetFile(AWSProperty): + """ + `AssetFile `__ + """ + + props: PropsDictType = { + "ContentBytes": (str, False), + "ContentText": (str, False), + "Metadata": (dict, False), + "Path": (str, True), + } + + +class Asset(AWSObject): + """ + `Asset `__ + """ + + resource_type = "AWS::DevOpsAgent::Asset" + + props: PropsDictType = { + "AgentSpaceId": (str, True), + "AssetType": (str, True), + "Files": ([AssetFile], False), + "Metadata": (dict, False), + "Zip": (str, False), + } + + class AWSResource(AWSProperty): """ `AWSResource `__ @@ -358,6 +387,7 @@ class ServiceManagedMode(AWSProperty): """ props: PropsDictType = { + "DnsResolution": (str, False), "HostAddress": (str, True), "IpAddressType": (str, False), "Ipv4AddressesPerEni": (integer, False), @@ -466,6 +496,18 @@ class ApiKeyDetails(AWSProperty): } +class BearerTokenDetails(AWSProperty): + """ + `BearerTokenDetails `__ + """ + + props: PropsDictType = { + "AuthorizationHeader": (str, False), + "TokenName": (str, True), + "TokenValue": (str, True), + } + + class MCPServerOAuthClientCredentialsConfig(AWSProperty): """ `MCPServerOAuthClientCredentialsConfig `__ @@ -488,6 +530,7 @@ class MCPServerAuthorizationConfig(AWSProperty): props: PropsDictType = { "ApiKey": (ApiKeyDetails, False), + "BearerToken": (BearerTokenDetails, False), "OAuthClientCredentials": (MCPServerOAuthClientCredentialsConfig, False), } @@ -505,18 +548,6 @@ class MCPServerDetails(AWSProperty): } -class BearerTokenDetails(AWSProperty): - """ - `BearerTokenDetails `__ - """ - - props: PropsDictType = { - "AuthorizationHeader": (str, False), - "TokenName": (str, True), - "TokenValue": (str, True), - } - - class MCPServerGrafanaAuthorizationConfig(AWSProperty): """ `MCPServerGrafanaAuthorizationConfig `__ @@ -547,8 +578,9 @@ class MCPServerSigV4AuthorizationConfig(AWSProperty): props: PropsDictType = { "CustomHeaders": (dict, False), + "McpRoleArn": (str, False), "Region": (str, True), - "RoleArn": (str, True), + "RoleArn": (str, False), "Service": (str, True), } @@ -693,10 +725,49 @@ class Service(AWSObject): resource_type = "AWS::DevOpsAgent::Service" props: PropsDictType = { + "ExchangeUrlPrivateConnectionName": (str, False), "KmsKeyArn": (str, False), + "PrivateConnectionName": (str, False), "ServiceDetails": (ServiceDetails, False), "ServiceType": (str, True), "Tags": (Tags, False), + "TargetUrlPrivateConnectionName": (str, False), + } + + +class Schedule(AWSProperty): + """ + `Schedule `__ + """ + + props: PropsDictType = { + "Expression": (str, True), + } + + +class Condition(AWSProperty): + """ + `Condition `__ + """ + + props: PropsDictType = { + "Schedule": (Schedule, True), + } + + +class Trigger(AWSObject): + """ + `Trigger `__ + """ + + resource_type = "AWS::DevOpsAgent::Trigger" + + props: PropsDictType = { + "Action": (dict, True), + "AgentSpaceId": (str, True), + "Condition": (Condition, True), + "Status": (str, False), + "Type": (str, True), } @@ -771,6 +842,7 @@ class RegisteredMCPServerSigV4Details(AWSProperty): "CustomHeaders": (dict, False), "Description": (str, False), "Endpoint": (str, True), + "McpRoleArn": (str, False), "Name": (str, True), "Region": (str, True), "RoleArn": (str, True), diff --git a/troposphere/dynamodb.py b/troposphere/dynamodb.py index a1e45b973..11b26cce9 100644 --- a/troposphere/dynamodb.py +++ b/troposphere/dynamodb.py @@ -18,6 +18,24 @@ ) +class Export(AWSObject): + """ + `Export `__ + """ + + resource_type = "AWS::DynamoDB::Export" + + props: PropsDictType = { + "ExportFormat": (str, False), + "ExportType": (str, False), + "S3Bucket": (str, True), + "S3BucketOwner": (str, False), + "S3Prefix": (str, False), + "S3SseAlgorithm": (str, False), + "TableArn": (str, True), + } + + class AttributeDefinition(AWSProperty): """ `AttributeDefinition `__ @@ -270,7 +288,7 @@ class ReplicaStreamSpecification(AWSProperty): """ props: PropsDictType = { - "ResourcePolicy": (ResourcePolicy, True), + "ResourcePolicy": (ResourcePolicy, False), } diff --git a/troposphere/ec2.py b/troposphere/ec2.py index 74bbe6fc5..00fbade0c 100644 --- a/troposphere/ec2.py +++ b/troposphere/ec2.py @@ -853,6 +853,35 @@ class EnclaveCertificateIamRoleAssociation(AWSObject): } +class ExportToS3Task(AWSProperty): + """ + `ExportToS3Task `__ + """ + + props: PropsDictType = { + "ContainerFormat": (str, False), + "DiskImageFormat": (str, False), + "S3Bucket": (str, False), + "S3Key": (str, False), + } + + +class ExportInstanceTask(AWSObject): + """ + `ExportInstanceTask `__ + """ + + resource_type = "AWS::EC2::ExportInstanceTask" + + props: PropsDictType = { + "Description": (str, False), + "ExportToS3Task": (ExportToS3Task, False), + "InstanceId": (str, True), + "Tags": (Tags, False), + "TargetEnvironment": (str, True), + } + + class DestinationOptions(AWSProperty): """ `DestinationOptions `__ @@ -2313,6 +2342,7 @@ class PlacementGroup(AWSObject): resource_type = "AWS::EC2::PlacementGroup" props: PropsDictType = { + "ParentGroupId": (str, False), "PartitionCount": (integer, False), "SpreadLevel": (validate_placement_spread_level, False), "Strategy": (validate_placement_strategy, False), @@ -3225,6 +3255,61 @@ class TransitGatewayPeeringAttachment(AWSObject): } +class TransitGatewayPolicyTable(AWSObject): + """ + `TransitGatewayPolicyTable `__ + """ + + resource_type = "AWS::EC2::TransitGatewayPolicyTable" + + props: PropsDictType = { + "Tags": (Tags, False), + "TransitGatewayId": (str, True), + } + + +class TransitGatewayPolicyTableAssociation(AWSObject): + """ + `TransitGatewayPolicyTableAssociation `__ + """ + + resource_type = "AWS::EC2::TransitGatewayPolicyTableAssociation" + + props: PropsDictType = { + "TransitGatewayAttachmentId": (str, True), + "TransitGatewayPolicyTableId": (str, True), + } + + +class TransitGatewayPolicyRule(AWSProperty): + """ + `TransitGatewayPolicyRule `__ + """ + + props: PropsDictType = { + "DestinationCidrBlock": (str, False), + "DestinationPortRange": (str, False), + "Protocol": (str, False), + "SourceCidrBlock": (str, False), + "SourcePortRange": (str, False), + } + + +class TransitGatewayPolicyTableEntry(AWSObject): + """ + `TransitGatewayPolicyTableEntry `__ + """ + + resource_type = "AWS::EC2::TransitGatewayPolicyTableEntry" + + props: PropsDictType = { + "PolicyRule": (TransitGatewayPolicyRule, True), + "PolicyRuleNumber": (str, True), + "TargetRouteTableId": (str, True), + "TransitGatewayPolicyTableId": (str, True), + } + + class TransitGatewayRoute(AWSObject): """ `TransitGatewayRoute `__ @@ -3297,6 +3382,57 @@ class TransitGatewayVpcAttachment(AWSObject): } +class VpcEncryptionControlExclusion(AWSProperty): + """ + `VpcEncryptionControlExclusion `__ + """ + + props: PropsDictType = { + "State": (str, False), + "StateMessage": (str, False), + } + + +class VpcEncryptionControlExclusions(AWSProperty): + """ + `VpcEncryptionControlExclusions `__ + """ + + props: PropsDictType = { + "EgressOnlyInternetGateway": (VpcEncryptionControlExclusion, False), + "ElasticFileSystem": (VpcEncryptionControlExclusion, False), + "InternetGateway": (VpcEncryptionControlExclusion, False), + "Lambda": (VpcEncryptionControlExclusion, False), + "NatGateway": (VpcEncryptionControlExclusion, False), + "VirtualPrivateGateway": (VpcEncryptionControlExclusion, False), + "VpcLattice": (VpcEncryptionControlExclusion, False), + "VpcPeering": (VpcEncryptionControlExclusion, False), + } + + +class VpcEncryptionControl(AWSProperty): + """ + `VpcEncryptionControl `__ + """ + + props: PropsDictType = { + "EgressOnlyInternetGatewayExclusion": (str, False), + "ElasticFileSystemExclusion": (str, False), + "InternetGatewayExclusion": (str, False), + "LambdaExclusion": (str, False), + "Mode": (str, False), + "NatGatewayExclusion": (str, False), + "ResourceExclusions": (VpcEncryptionControlExclusions, False), + "State": (str, False), + "StateMessage": (str, False), + "VirtualPrivateGatewayExclusion": (str, False), + "VpcEncryptionControlId": (str, False), + "VpcId": (str, False), + "VpcLatticeExclusion": (str, False), + "VpcPeeringExclusion": (str, False), + } + + class VPC(AWSObject): """ `VPC `__ @@ -3312,6 +3448,7 @@ class VPC(AWSObject): "Ipv4IpamPoolId": (str, False), "Ipv4NetmaskLength": (integer, False), "Tags": (validate_tags_or_list, False), + "VpcEncryptionControl": (VpcEncryptionControl, False), } @@ -4243,14 +4380,3 @@ class VolumeProperty(AWSProperty): "Device": (str, True), "VolumeId": (str, True), } - - -class VpcEncryptionControlExclusion(AWSProperty): - """ - `VpcEncryptionControlExclusion `__ - """ - - props: PropsDictType = { - "State": (str, False), - "StateMessage": (str, False), - } diff --git a/troposphere/ecs.py b/troposphere/ecs.py index cdb03e78c..5e0a8142d 100644 --- a/troposphere/ecs.py +++ b/troposphere/ecs.py @@ -425,6 +425,16 @@ class ClusterCapacityProviderAssociations(AWSObject): } +class ContainerInstance(AWSObject): + """ + `ContainerInstance `__ + """ + + resource_type = "AWS::ECS::ContainerInstance" + + props: PropsDictType = {} + + class DaemonAlarmConfiguration(AWSProperty): """ `DaemonAlarmConfiguration `__ @@ -891,15 +901,16 @@ class ExpressGatewayService(AWSObject): props: PropsDictType = { "Cluster": (str, False), "Cpu": (str, False), - "ExecutionRoleArn": (str, True), + "ExecutionRoleArn": (str, False), "HealthCheckPath": (str, False), "InfrastructureRoleArn": (str, True), "Memory": (str, False), "NetworkConfiguration": (ExpressGatewayServiceNetworkConfiguration, False), - "PrimaryContainer": (ExpressGatewayContainer, True), + "PrimaryContainer": (ExpressGatewayContainer, False), "ScalingTarget": (ExpressGatewayScalingTarget, False), "ServiceName": (str, False), "Tags": (Tags, False), + "TaskDefinitionArn": (str, False), "TaskRoleArn": (str, False), } @@ -941,6 +952,17 @@ class DeploymentAlarms(AWSProperty): } +class ThresholdConfiguration(AWSProperty): + """ + `ThresholdConfiguration `__ + """ + + props: PropsDictType = { + "Type": (str, True), + "Value": (integer, True), + } + + class DeploymentCircuitBreaker(AWSProperty): """ `DeploymentCircuitBreaker `__ @@ -948,7 +970,9 @@ class DeploymentCircuitBreaker(AWSProperty): props: PropsDictType = { "Enable": (boolean, True), + "ResetOnHealthyTask": (boolean, False), "Rollback": (boolean, True), + "ThresholdConfiguration": (ThresholdConfiguration, False), } @@ -1342,6 +1366,16 @@ class Service(AWSObject): } +class Task(AWSObject): + """ + `Task `__ + """ + + resource_type = "AWS::ECS::Task" + + props: PropsDictType = {} + + class Environment(AWSProperty): """ `Environment `__ @@ -1550,6 +1584,17 @@ class TaskSet(AWSObject): } +class Attribute(AWSProperty): + """ + `Attribute `__ + """ + + props: PropsDictType = { + "Name": (str, True), + "Value": (str, False), + } + + class AutoScalingArns(AWSProperty): """ `AutoScalingArns `__ @@ -1605,3 +1650,41 @@ class IngressPathSummary(AWSProperty): "AccessType": (str, False), "Endpoint": (str, False), } + + +class Resource(AWSProperty): + """ + `Resource `__ + """ + + props: PropsDictType = { + "DoubleValue": (double, False), + "IntegerValue": (integer, False), + "LongValue": (double, False), + "Name": (str, False), + "StringSetValue": ([str], False), + "Type": (str, False), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class VersionInfo(AWSProperty): + """ + `VersionInfo `__ + """ + + props: PropsDictType = { + "AgentHash": (str, False), + "AgentVersion": (str, False), + "DockerVersion": (str, False), + } diff --git a/troposphere/eks.py b/troposphere/eks.py index 03202ab58..bfc8b64fc 100644 --- a/troposphere/eks.py +++ b/troposphere/eks.py @@ -163,6 +163,7 @@ class CapabilityConfiguration(AWSProperty): """ props: PropsDictType = { + "Ack": (dict, False), "ArgoCd": (ArgoCd, False), } @@ -239,6 +240,93 @@ class EncryptionConfig(AWSProperty): } +class ServiceNodePortRange(AWSProperty): + """ + `ServiceNodePortRange `__ + """ + + props: PropsDictType = { + "MaxPort": (integer, False), + "MinPort": (integer, False), + } + + +class KubeApiServerConfig(AWSProperty): + """ + `KubeApiServerConfig `__ + """ + + props: PropsDictType = { + "EventTtl": (str, False), + "ServiceNodePortRange": (ServiceNodePortRange, False), + } + + +class HorizontalPodAutoscalerControllerConfig(AWSProperty): + """ + `HorizontalPodAutoscalerControllerConfig `__ + """ + + props: PropsDictType = { + "HorizontalPodAutoscalerSyncPeriod": (str, False), + } + + +class KubeControllerManagerConfig(AWSProperty): + """ + `KubeControllerManagerConfig `__ + """ + + props: PropsDictType = { + "HorizontalPodAutoscalerControllerConfig": ( + HorizontalPodAutoscalerControllerConfig, + False, + ), + } + + +class ResourceWeight(AWSProperty): + """ + `ResourceWeight `__ + """ + + props: PropsDictType = { + "Name": (str, False), + "Weight": (integer, False), + } + + +class ScoringStrategy(AWSProperty): + """ + `ScoringStrategy `__ + """ + + props: PropsDictType = { + "Resources": ([ResourceWeight], False), + "Type": (str, False), + } + + +class NodeResourcesFitConfig(AWSProperty): + """ + `NodeResourcesFitConfig `__ + """ + + props: PropsDictType = { + "ScoringStrategy": (ScoringStrategy, False), + } + + +class KubeSchedulerConfig(AWSProperty): + """ + `KubeSchedulerConfig `__ + """ + + props: PropsDictType = { + "NodeResourcesFit": (NodeResourcesFitConfig, False), + } + + class ElasticLoadBalancing(AWSProperty): """ `ElasticLoadBalancing `__ @@ -376,6 +464,16 @@ class ResourcesVpcConfig(AWSProperty): } +class RollbackConfig(AWSProperty): + """ + `RollbackConfig `__ + """ + + props: PropsDictType = { + "TimeoutMinutes": (integer, False), + } + + class BlockStorage(AWSProperty): """ `BlockStorage `__ @@ -431,6 +529,9 @@ class Cluster(AWSObject): "DeletionProtection": (boolean, False), "EncryptionConfig": ([EncryptionConfig], False), "Force": (boolean, False), + "KubeApiServerConfig": (KubeApiServerConfig, False), + "KubeControllerManagerConfig": (KubeControllerManagerConfig, False), + "KubeSchedulerConfig": (KubeSchedulerConfig, False), "KubernetesNetworkConfig": (KubernetesNetworkConfig, False), "Logging": (Logging, False), "Name": (str, False), @@ -438,6 +539,7 @@ class Cluster(AWSObject): "RemoteNetworkConfig": (RemoteNetworkConfig, False), "ResourcesVpcConfig": (ResourcesVpcConfig, True), "RoleArn": (str, True), + "RollbackConfig": (RollbackConfig, False), "StorageConfig": (StorageConfig, False), "Tags": (Tags, False), "UpgradePolicy": (UpgradePolicy, False), diff --git a/troposphere/elasticache.py b/troposphere/elasticache.py index 732e05b00..dea8038c4 100644 --- a/troposphere/elasticache.py +++ b/troposphere/elasticache.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer from .validators.elasticache import ( validate_cache_cluster, validate_network_port, @@ -236,6 +236,16 @@ def validate(self): validate_replication_group(self) +class ReservedCacheNode(AWSObject): + """ + `ReservedCacheNode `__ + """ + + resource_type = "AWS::ElastiCache::ReservedCacheNode" + + props: PropsDictType = {} + + class SecurityGroup(AWSObject): """ `SecurityGroup `__ @@ -335,6 +345,21 @@ class ServerlessCache(AWSObject): } +class ServerlessCacheSnapshot(AWSObject): + """ + `ServerlessCacheSnapshot `__ + """ + + resource_type = "AWS::ElastiCache::ServerlessCacheSnapshot" + + props: PropsDictType = { + "KmsKeyId": (str, False), + "ServerlessCacheName": (str, True), + "ServerlessCacheSnapshotName": (str, True), + "Tags": (Tags, False), + } + + class SubnetGroup(AWSObject): """ `SubnetGroup `__ @@ -406,3 +431,26 @@ class ReadEndPoint(AWSProperty): "Ports": (str, False), "PortsList": ([str], False), } + + +class RecurringCharge(AWSProperty): + """ + `RecurringCharge `__ + """ + + props: PropsDictType = { + "RecurringChargeAmount": (double, False), + "RecurringChargeFrequency": (str, False), + } + + +class ServerlessCacheConfiguration(AWSProperty): + """ + `ServerlessCacheConfiguration `__ + """ + + props: PropsDictType = { + "Engine": (str, False), + "MajorEngineVersion": (str, False), + "ServerlessCacheName": (str, False), + } diff --git a/troposphere/elasticloadbalancingv2.py b/troposphere/elasticloadbalancingv2.py index c3ad5e8c8..742959223 100644 --- a/troposphere/elasticloadbalancingv2.py +++ b/troposphere/elasticloadbalancingv2.py @@ -226,6 +226,7 @@ class Listener(AWSObject): "Port": (validate_network_port, False), "Protocol": (str, False), "SslPolicy": (str, False), + "Tags": (Tags, False), } @@ -313,6 +314,7 @@ class SourceIpConfig(AWSProperty): """ props: PropsDictType = { + "IpAddressType": (str, False), "Values": ([str], False), } @@ -419,6 +421,7 @@ class ListenerRule(AWSObject): "Conditions": ([Condition], True), "ListenerArn": (str, False), "Priority": (integer, True), + "Tags": (Tags, False), "Transforms": ([Transform], False), } diff --git a/troposphere/emr.py b/troposphere/emr.py index 5428e79cd..4777664ec 100644 --- a/troposphere/emr.py +++ b/troposphere/emr.py @@ -539,6 +539,58 @@ class InstanceGroupConfig(AWSObject): } +class ExecutionEngineConfig(AWSProperty): + """ + `ExecutionEngineConfig `__ + """ + + props: PropsDictType = { + "Id": (str, True), + "Type": (str, False), + } + + +class NotebookS3Location(AWSProperty): + """ + `NotebookS3Location `__ + """ + + props: PropsDictType = { + "Bucket": (str, False), + "Key": (str, False), + } + + +class OutputNotebookS3Location(AWSProperty): + """ + `OutputNotebookS3Location `__ + """ + + props: PropsDictType = { + "Bucket": (str, False), + "Key": (str, False), + } + + +class NotebookExecution(AWSObject): + """ + `NotebookExecution `__ + """ + + resource_type = "AWS::EMR::NotebookExecution" + + props: PropsDictType = { + "EnvironmentVariables": (dict, False), + "ExecutionEngine": (ExecutionEngineConfig, False), + "NotebookExecutionName": (str, False), + "NotebookParams": (str, False), + "NotebookS3Location": (NotebookS3Location, False), + "OutputNotebookFormat": (str, False), + "OutputNotebookS3Location": (OutputNotebookS3Location, False), + "Tags": (Tags, False), + } + + class SecurityConfiguration(AWSObject): """ `SecurityConfiguration `__ diff --git a/troposphere/emrcontainers.py b/troposphere/emrcontainers.py index 6aa71be72..116befb59 100644 --- a/troposphere/emrcontainers.py +++ b/troposphere/emrcontainers.py @@ -90,6 +90,7 @@ class Endpoint(AWSObject): "ExecutionRoleArn": (str, True), "Name": (str, False), "ReleaseLabel": (str, True), + "SessionIdleTimeoutInMinutes": (integer, False), "Tags": (Tags, False), "Type": (str, True), "VirtualClusterId": (str, True), @@ -299,6 +300,7 @@ class VirtualCluster(AWSObject): "ContainerProvider": (ContainerProvider, True), "Name": (str, True), "SecurityConfigurationId": (str, False), + "SessionEnabled": (boolean, False), "Tags": (Tags, False), } diff --git a/troposphere/entityresolution.py b/troposphere/entityresolution.py index 49ebc1bba..bd93454f4 100644 --- a/troposphere/entityresolution.py +++ b/troposphere/entityresolution.py @@ -297,6 +297,7 @@ class ResolutionTechniques(AWSProperty): """ props: PropsDictType = { + "EnableRealTimeMatching": (boolean, False), "ProviderProperties": (ProviderProperties, False), "ResolutionType": (str, False), "RuleBasedProperties": (RuleBasedProperties, False), diff --git a/troposphere/events.py b/troposphere/events.py index c883e60d5..6c7a13a69 100644 --- a/troposphere/events.py +++ b/troposphere/events.py @@ -308,6 +308,32 @@ class EventBusPolicy(AWSObject): } +class Destination(AWSProperty): + """ + `Destination `__ + """ + + props: PropsDictType = { + "Arn": (str, True), + } + + +class Replay(AWSObject): + """ + `Replay `__ + """ + + resource_type = "AWS::Events::Replay" + + props: PropsDictType = { + "Destination": (Destination, True), + "EventEndTime": (str, True), + "EventSourceArn": (str, True), + "EventStartTime": (str, True), + "ReplayName": (str, True), + } + + class AppSyncParameters(AWSProperty): """ `AppSyncParameters `__ diff --git a/troposphere/evs.py b/troposphere/evs.py index 0bf5a8b23..518f1b68b 100644 --- a/troposphere/evs.py +++ b/troposphere/evs.py @@ -112,18 +112,18 @@ class Environment(AWSObject): resource_type = "AWS::EVS::Environment" props: PropsDictType = { - "ConnectivityInfo": (ConnectivityInfo, True), + "ConnectivityInfo": (ConnectivityInfo, False), "EnvironmentName": (str, False), "Hosts": ([HostInfoForCreate], False), "InitialVlans": (InitialVlans, False), "KmsKeyId": (str, False), - "LicenseInfo": (LicenseInfo, True), + "LicenseInfo": (LicenseInfo, False), "ServiceAccessSecurityGroups": (ServiceAccessSecurityGroups, False), "ServiceAccessSubnetId": (str, True), - "SiteId": (str, True), + "SiteId": (str, False), "Tags": (Tags, False), "TermsAccepted": (boolean, True), - "VcfHostnames": (VcfHostnames, True), + "VcfHostnames": (VcfHostnames, False), "VcfVersion": (str, True), "VpcId": (str, True), } diff --git a/troposphere/fis.py b/troposphere/fis.py index dda772c4d..9d38fc14f 100644 --- a/troposphere/fis.py +++ b/troposphere/fis.py @@ -10,6 +10,29 @@ from .validators import integer +class ExperimentOptions(AWSProperty): + """ + `ExperimentOptions `__ + """ + + props: PropsDictType = { + "ActionsMode": (str, False), + } + + +class Experiment(AWSObject): + """ + `Experiment `__ + """ + + resource_type = "AWS::FIS::Experiment" + + props: PropsDictType = { + "ExperimentOptions": (ExperimentOptions, False), + "ExperimentTemplateId": (str, False), + } + + class ExperimentTemplateAction(AWSProperty): """ `ExperimentTemplateAction `__ @@ -182,6 +205,18 @@ class ExperimentTemplate(AWSObject): } +class SafetyLever(AWSObject): + """ + `SafetyLever `__ + """ + + resource_type = "AWS::FIS::SafetyLever" + + props: PropsDictType = { + "Id": (str, False), + } + + class TargetAccountConfiguration(AWSObject): """ `TargetAccountConfiguration `__ diff --git a/troposphere/globalaccelerator.py b/troposphere/globalaccelerator.py index 8fdc943ee..12456d2f6 100644 --- a/troposphere/globalaccelerator.py +++ b/troposphere/globalaccelerator.py @@ -25,6 +25,9 @@ class Accelerator(AWSObject): props: PropsDictType = { "Enabled": (boolean, False), + "FlowLogsEnabled": (boolean, False), + "FlowLogsS3Bucket": (str, False), + "FlowLogsS3Prefix": (str, False), "IpAddressType": (accelerator_ipaddresstype, False), "IpAddresses": ([str], False), "Name": (str, True), diff --git a/troposphere/glue.py b/troposphere/glue.py index ec0155ae8..8283cf00a 100644 --- a/troposphere/glue.py +++ b/troposphere/glue.py @@ -18,6 +18,21 @@ ) +class Blueprint(AWSObject): + """ + `Blueprint `__ + """ + + resource_type = "AWS::Glue::Blueprint" + + props: PropsDictType = { + "BlueprintLocation": (str, True), + "Description": (str, False), + "Name": (str, True), + "Tags": (Tags, False), + } + + class DataLakeAccessProperties(AWSProperty): """ `DataLakeAccessProperties `__ @@ -557,8 +572,8 @@ class DataQualityTargetTable(AWSProperty): """ props: PropsDictType = { - "DatabaseName": (str, False), - "TableName": (str, False), + "DatabaseName": (str, True), + "TableName": (str, True), } @@ -572,7 +587,7 @@ class DataQualityRuleset(AWSObject): props: PropsDictType = { "ClientToken": (str, False), "Description": (str, False), - "Name": (str, False), + "Name": (str, True), "Ruleset": (str, False), "Tags": (dict, False), "TargetTable": (DataQualityTargetTable, False), @@ -1383,9 +1398,31 @@ class Table(AWSObject): } +class IcebergCompactionConfiguration(AWSProperty): + """ + `IcebergCompactionConfiguration `__ + """ + + props: PropsDictType = { + "DeleteFileThreshold": (integer, False), + "MinInputFiles": (integer, False), + "Strategy": (str, False), + } + + +class CompactionConfiguration(AWSProperty): + """ + `CompactionConfiguration `__ + """ + + props: PropsDictType = { + "IcebergConfiguration": (IcebergCompactionConfiguration, False), + } + + class IcebergConfiguration(AWSProperty): """ - `IcebergConfiguration `__ + `IcebergConfiguration `__ """ props: PropsDictType = { @@ -1396,7 +1433,7 @@ class IcebergConfiguration(AWSProperty): class OrphanFileDeletionConfiguration(AWSProperty): """ - `OrphanFileDeletionConfiguration `__ + `OrphanFileDeletionConfiguration `__ """ props: PropsDictType = { @@ -1418,7 +1455,7 @@ class IcebergRetentionConfiguration(AWSProperty): class RetentionConfiguration(AWSProperty): """ - `RetentionConfiguration `__ + `RetentionConfiguration `__ """ props: PropsDictType = { @@ -1428,7 +1465,7 @@ class RetentionConfiguration(AWSProperty): class VpcConfiguration(AWSProperty): """ - `VpcConfiguration `__ + `VpcConfiguration `__ """ props: PropsDictType = { @@ -1442,6 +1479,7 @@ class TableOptimizerConfiguration(AWSProperty): """ props: PropsDictType = { + "CompactionConfiguration": (CompactionConfiguration, False), "Enabled": (boolean, True), "OrphanFileDeletionConfiguration": (OrphanFileDeletionConfiguration, False), "RetentionConfiguration": (RetentionConfiguration, False), @@ -1466,6 +1504,19 @@ class TableOptimizer(AWSObject): } +class TableVersion(AWSObject): + """ + `TableVersion `__ + """ + + resource_type = "AWS::Glue::TableVersion" + + props: PropsDictType = { + "DatabaseName": (str, False), + "TableName": (str, False), + } + + class Action(AWSProperty): """ `Action `__ @@ -1577,6 +1628,35 @@ class UsageProfile(AWSObject): } +class ResourceUri(AWSProperty): + """ + `ResourceUri `__ + """ + + props: PropsDictType = { + "ResourceType": (str, False), + "Uri": (str, False), + } + + +class UserDefinedFunction(AWSObject): + """ + `UserDefinedFunction `__ + """ + + resource_type = "AWS::Glue::UserDefinedFunction" + + props: PropsDictType = { + "ClassName": (str, False), + "DatabaseName": (str, True), + "FunctionName": (str, True), + "FunctionType": (str, False), + "OwnerName": (str, False), + "OwnerType": (str, False), + "ResourceUris": ([ResourceUri], False), + } + + class Workflow(AWSObject): """ `Workflow `__ diff --git a/troposphere/grafana.py b/troposphere/grafana.py index 2969d6fb7..a0f8bf318 100644 --- a/troposphere/grafana.py +++ b/troposphere/grafana.py @@ -72,6 +72,17 @@ class SamlConfiguration(AWSProperty): } +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + class VpcConfiguration(AWSProperty): """ `VpcConfiguration `__ @@ -107,5 +118,6 @@ class Workspace(AWSObject): "RoleArn": (str, False), "SamlConfiguration": (SamlConfiguration, False), "StackSetName": (str, False), + "Tags": ([TagsItems], False), "VpcConfiguration": (VpcConfiguration, False), } diff --git a/troposphere/greengrassv2.py b/troposphere/greengrassv2.py index a45fb13f3..4e19b3a9a 100644 --- a/troposphere/greengrassv2.py +++ b/troposphere/greengrassv2.py @@ -10,6 +10,30 @@ from .validators import boolean, double, integer +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class Component(AWSObject): + """ + `Component `__ + """ + + resource_type = "AWS::GreengrassV2::Component" + + props: PropsDictType = { + "ComponentName": (str, False), + "Tags": ([TagsItems], False), + } + + class ComponentDependencyRequirement(AWSProperty): """ `ComponentDependencyRequirement `__ @@ -141,6 +165,18 @@ class ComponentVersion(AWSObject): } +class CoreDevice(AWSObject): + """ + `CoreDevice `__ + """ + + resource_type = "AWS::GreengrassV2::CoreDevice" + + props: PropsDictType = { + "CoreDeviceThingName": (str, False), + } + + class ComponentConfigurationUpdate(AWSProperty): """ `ComponentConfigurationUpdate `__ diff --git a/troposphere/healthlake.py b/troposphere/healthlake.py index e0ed3304a..c7fba9904 100644 --- a/troposphere/healthlake.py +++ b/troposphere/healthlake.py @@ -10,6 +10,66 @@ from .validators import boolean, integer +class ExistingVersionedProfileSource(AWSProperty): + """ + `ExistingVersionedProfileSource `__ + """ + + props: PropsDictType = { + "ProfileId": (str, True), + "Version": (integer, True), + } + + +class ProfileMappingSource(AWSProperty): + """ + `ProfileMappingSource `__ + """ + + props: PropsDictType = { + "ProfileMapping": (dict, True), + } + + +class StarterProfileSource(AWSProperty): + """ + `StarterProfileSource `__ + """ + + props: PropsDictType = { + "StarterProfileName": (str, True), + } + + +class Source(AWSProperty): + """ + `Source `__ + """ + + props: PropsDictType = { + "ExistingVersionedProfileId": (ExistingVersionedProfileSource, False), + "ProfileMapping": (ProfileMappingSource, False), + "StarterProfile": (StarterProfileSource, False), + } + + +class DataTransformationProfile(AWSObject): + """ + `DataTransformationProfile `__ + """ + + resource_type = "AWS::HealthLake::DataTransformationProfile" + + props: PropsDictType = { + "KmsKeyId": (str, False), + "ProfileDescription": (str, False), + "ProfileName": (str, True), + "Source": (Source, False), + "SourceFormat": (str, True), + "Tags": (Tags, False), + } + + class IdentityProviderConfiguration(AWSProperty): """ `IdentityProviderConfiguration `__ diff --git a/troposphere/identitystore.py b/troposphere/identitystore.py index c629f8533..198731fd1 100644 --- a/troposphere/identitystore.py +++ b/troposphere/identitystore.py @@ -9,27 +9,41 @@ from . import AWSObject, AWSProperty, PropsDictType -class Group(AWSObject): +class MemberId(AWSProperty): """ - `Group `__ + `MemberId `__ """ - resource_type = "AWS::IdentityStore::Group" + props: PropsDictType = { + "UserId": (str, True), + } + + +class AllGroupMemberships(AWSObject): + """ + `AllGroupMemberships `__ + """ + + resource_type = "AWS::IdentityStore::AllGroupMemberships" props: PropsDictType = { - "Description": (str, False), - "DisplayName": (str, True), - "IdentityStoreId": (str, True), + "GroupId": (str, False), + "IdentityStoreId": (str, False), + "MemberId": (MemberId, False), } -class MemberId(AWSProperty): +class Group(AWSObject): """ - `MemberId `__ + `Group `__ """ + resource_type = "AWS::IdentityStore::Group" + props: PropsDictType = { - "UserId": (str, True), + "Description": (str, False), + "DisplayName": (str, True), + "IdentityStoreId": (str, True), } diff --git a/troposphere/imagebuilder.py b/troposphere/imagebuilder.py index 6b7b05932..4da044c46 100644 --- a/troposphere/imagebuilder.py +++ b/troposphere/imagebuilder.py @@ -16,6 +16,26 @@ ) +class AllImageBuildVersions(AWSObject): + """ + `AllImageBuildVersions `__ + """ + + resource_type = "AWS::ImageBuilder::AllImageBuildVersions" + + props: PropsDictType = {} + + +class AllWorkflowBuildVersions(AWSObject): + """ + `AllWorkflowBuildVersions `__ + """ + + resource_type = "AWS::ImageBuilder::AllWorkflowBuildVersions" + + props: PropsDictType = {} + + class Component(AWSObject): """ `Component `__ @@ -416,6 +436,7 @@ class Schedule(AWSProperty): False, ), "ScheduleExpression": (str, False), + "Timezone": (str, False), } @@ -434,6 +455,7 @@ class ImagePipeline(AWSObject): "ExecutionRole": (str, False), "ImageRecipeArn": (str, False), "ImageScanningConfiguration": (ImageScanningConfiguration, False), + "ImageTags": (dict, False), "ImageTestsConfiguration": (ImageTestsConfiguration, False), "InfrastructureConfigurationArn": (str, True), "LoggingConfiguration": (PipelineLoggingConfiguration, False), @@ -487,6 +509,7 @@ class ImageRecipe(AWSObject): props: PropsDictType = { "AdditionalInstanceConfiguration": (AdditionalInstanceConfiguration, False), "AmiTags": (dict, False), + "AmiWatermarks": ([str], False), "BlockDeviceMappings": ([InstanceBlockDeviceMapping], False), "Components": ([ComponentConfiguration], False), "Description": (str, False), @@ -568,6 +591,18 @@ class InfrastructureConfiguration(AWSObject): } +class LifecycleExecution(AWSObject): + """ + `LifecycleExecution `__ + """ + + resource_type = "AWS::ImageBuilder::LifecycleExecution" + + props: PropsDictType = { + "ResourceArn": (str, False), + } + + class IncludeResources(AWSProperty): """ `IncludeResources `__ @@ -713,6 +748,28 @@ class Workflow(AWSObject): } +class WorkflowExecution(AWSObject): + """ + `WorkflowExecution `__ + """ + + resource_type = "AWS::ImageBuilder::WorkflowExecution" + + props: PropsDictType = { + "ImageBuildVersionArn": (str, False), + } + + +class WorkflowStepExecution(AWSObject): + """ + `WorkflowStepExecution `__ + """ + + resource_type = "AWS::ImageBuilder::WorkflowStepExecution" + + props: PropsDictType = {} + + class LatestVersion(AWSProperty): """ `LatestVersion `__ @@ -724,3 +781,57 @@ class LatestVersion(AWSProperty): "Minor": (str, False), "Patch": (str, False), } + + +class LifecycleExecutionResourcesImpactedSummary(AWSProperty): + """ + `LifecycleExecutionResourcesImpactedSummary `__ + """ + + props: PropsDictType = { + "HasImpactedResources": (boolean, False), + } + + +class LifecycleExecutionState(AWSProperty): + """ + `LifecycleExecutionState `__ + """ + + props: PropsDictType = { + "Status": (str, False), + } + + +class ParametersItems(AWSProperty): + """ + `ParametersItems `__ + """ + + props: PropsDictType = { + "DefaultValue": ([str], False), + "Description": (str, False), + "Name": (str, True), + "Type": (str, True), + } + + +class State(AWSProperty): + """ + `State `__ + """ + + props: PropsDictType = { + "Status": (str, False), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } diff --git a/troposphere/inspectorv2.py b/troposphere/inspectorv2.py index 2202476aa..8763e3362 100644 --- a/troposphere/inspectorv2.py +++ b/troposphere/inspectorv2.py @@ -6,8 +6,8 @@ # *** Do not modify - this file is autogenerated *** -from . import AWSObject, AWSProperty, PropsDictType -from .validators import double, integer +from . import AWSObject, AWSProperty, PropsDictType, Tags +from .validators import boolean, double, integer class CisTargets(AWSProperty): @@ -224,6 +224,70 @@ class CodeSecurityScanConfiguration(AWSObject): } +class ScopeConfiguration(AWSProperty): + """ + `ScopeConfiguration `__ + """ + + props: PropsDictType = { + "ScopeType": (str, True), + "ScopeValues": ([str], False), + "State": (str, False), + "StateReason": (str, False), + } + + +class AzureScopeConfigurationMap(AWSProperty): + """ + `AzureScopeConfigurationMap `__ + """ + + props: PropsDictType = { + "ContainerImageScanning": (ScopeConfiguration, False), + "ServerlessScanning": (ScopeConfiguration, False), + "VmScanning": (ScopeConfiguration, False), + } + + +class AzureProviderConfiguration(AWSProperty): + """ + `AzureProviderConfiguration `__ + """ + + props: PropsDictType = { + "AutoInstallVMScanner": (boolean, False), + "AwsConfigConnectorArn": (str, True), + "AzureRegions": ([str], True), + "ScopeConfiguration": (AzureScopeConfigurationMap, True), + } + + +class ProviderConfiguration(AWSProperty): + """ + `ProviderConfiguration `__ + """ + + props: PropsDictType = { + "Azure": (AzureProviderConfiguration, True), + } + + +class Connector(AWSObject): + """ + `Connector `__ + """ + + resource_type = "AWS::InspectorV2::Connector" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Provider": (str, True), + "ProviderConfiguration": (ProviderConfiguration, True), + "Tags": (Tags, False), + } + + class DateFilter(AWSProperty): """ `DateFilter `__ @@ -362,3 +426,15 @@ class Filter(AWSObject): "Name": (str, True), "Tags": (dict, False), } + + +class ConnectorHealth(AWSProperty): + """ + `ConnectorHealth `__ + """ + + props: PropsDictType = { + "ConnectorStatus": (str, False), + "LastCheckedAt": (str, False), + "Message": (str, False), + } diff --git a/troposphere/internetmonitor.py b/troposphere/internetmonitor.py index b3f4add7a..448b842f3 100644 --- a/troposphere/internetmonitor.py +++ b/troposphere/internetmonitor.py @@ -10,6 +10,16 @@ from .validators import boolean, double, integer +class InternetEvent(AWSObject): + """ + `InternetEvent `__ + """ + + resource_type = "AWS::InternetMonitor::InternetEvent" + + props: PropsDictType = {} + + class LocalHealthEventsConfig(AWSProperty): """ `LocalHealthEventsConfig `__ @@ -78,3 +88,20 @@ class Monitor(AWSObject): "Tags": (Tags, False), "TrafficPercentageToMonitor": (integer, False), } + + +class ClientLocation(AWSProperty): + """ + `ClientLocation `__ + """ + + props: PropsDictType = { + "ASName": (str, True), + "ASNumber": (integer, True), + "City": (str, True), + "Country": (str, True), + "Latitude": (double, True), + "Longitude": (double, True), + "Metro": (str, False), + "Subdivision": (str, False), + } diff --git a/troposphere/iot.py b/troposphere/iot.py index 922eb03c2..ce6241997 100644 --- a/troposphere/iot.py +++ b/troposphere/iot.py @@ -515,6 +515,18 @@ class FleetMetric(AWSObject): } +class Index(AWSObject): + """ + `Index `__ + """ + + resource_type = "AWS::IoT::Index" + + props: PropsDictType = { + "IndexName": (str, False), + } + + class AbortCriteria(AWSProperty): """ `AbortCriteria `__ @@ -593,6 +605,17 @@ class JobExecutionsRolloutConfig(AWSProperty): } +class PresignedUrlConfig(AWSProperty): + """ + `PresignedUrlConfig `__ + """ + + props: PropsDictType = { + "ExpiresInSec": (integer, False), + "RoleArn": (str, True), + } + + class MaintenanceWindow(AWSProperty): """ `MaintenanceWindow `__ @@ -604,14 +627,16 @@ class MaintenanceWindow(AWSProperty): } -class PresignedUrlConfig(AWSProperty): +class SchedulingConfig(AWSProperty): """ - `PresignedUrlConfig `__ + `SchedulingConfig `__ """ props: PropsDictType = { - "ExpiresInSec": (integer, False), - "RoleArn": (str, True), + "EndBehavior": (str, False), + "EndTime": (str, False), + "MaintenanceWindows": ([MaintenanceWindow], False), + "StartTime": (str, False), } @@ -625,6 +650,33 @@ class TimeoutConfig(AWSProperty): } +class Job(AWSObject): + """ + `Job `__ + """ + + resource_type = "AWS::IoT::Job" + + props: PropsDictType = { + "AbortConfig": (AbortConfig, False), + "Description": (str, False), + "DestinationPackageVersions": ([str], False), + "Document": (str, False), + "DocumentParameters": (dict, False), + "DocumentSource": (str, False), + "JobExecutionsRetryConfig": (JobExecutionsRetryConfig, False), + "JobExecutionsRolloutConfig": (JobExecutionsRolloutConfig, False), + "JobId": (str, True), + "JobTemplateArn": (str, False), + "PresignedUrlConfig": (PresignedUrlConfig, False), + "SchedulingConfig": (SchedulingConfig, False), + "Tags": (Tags, False), + "TargetSelection": (str, False), + "Targets": ([str], True), + "TimeoutConfig": (TimeoutConfig, False), + } + + class JobTemplate(AWSObject): """ `JobTemplate `__ diff --git a/troposphere/iottwinmaker.py b/troposphere/iottwinmaker.py index 9289e8a5b..113a4efb1 100644 --- a/troposphere/iottwinmaker.py +++ b/troposphere/iottwinmaker.py @@ -259,6 +259,52 @@ class Entity(AWSObject): } +class S3DestinationConfiguration(AWSProperty): + """ + `S3DestinationConfiguration `__ + """ + + props: PropsDictType = { + "Location": (str, True), + } + + +class DestinationConfiguration(AWSProperty): + """ + `DestinationConfiguration `__ + """ + + props: PropsDictType = { + "S3Configuration": (S3DestinationConfiguration, False), + "Type": (str, True), + } + + +class SourceConfiguration(AWSProperty): + """ + `SourceConfiguration `__ + """ + + props: PropsDictType = { + "Type": (str, True), + } + + +class MetadataTransferJob(AWSObject): + """ + `MetadataTransferJob `__ + """ + + resource_type = "AWS::IoTTwinMaker::MetadataTransferJob" + + props: PropsDictType = { + "Description": (str, False), + "Destination": (DestinationConfiguration, True), + "MetadataTransferJobId": (str, False), + "Sources": ([SourceConfiguration], True), + } + + class Scene(AWSObject): """ `Scene `__ @@ -306,3 +352,13 @@ class Workspace(AWSObject): "Tags": (dict, False), "WorkspaceId": (str, True), } + + +class MetadataTransferJobStatus(AWSProperty): + """ + `MetadataTransferJobStatus `__ + """ + + props: PropsDictType = { + "State": (str, False), + } diff --git a/troposphere/ivs.py b/troposphere/ivs.py index 0b6a9e41b..402cc36ec 100644 --- a/troposphere/ivs.py +++ b/troposphere/ivs.py @@ -43,6 +43,87 @@ class Channel(AWSObject): } +class S3DestinationConfiguration(AWSProperty): + """ + `S3DestinationConfiguration `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + } + + +class DestinationConfiguration(AWSProperty): + """ + `DestinationConfiguration `__ + """ + + props: PropsDictType = { + "S3": (S3DestinationConfiguration, False), + } + + +class GridConfiguration(AWSProperty): + """ + `GridConfiguration `__ + """ + + props: PropsDictType = { + "FeaturedParticipantAttribute": (str, False), + "GridGap": (integer, False), + "OmitStoppedVideo": (boolean, False), + "ParticipantOrderAttribute": (str, False), + "VideoAspectRatio": (str, False), + "VideoFillMode": (str, False), + } + + +class PipConfiguration(AWSProperty): + """ + `PipConfiguration `__ + """ + + props: PropsDictType = { + "FeaturedParticipantAttribute": (str, False), + "GridGap": (integer, False), + "OmitStoppedVideo": (boolean, False), + "ParticipantOrderAttribute": (str, False), + "PipBehavior": (str, False), + "PipHeight": (integer, False), + "PipOffset": (integer, False), + "PipParticipantAttribute": (str, False), + "PipPosition": (str, False), + "PipWidth": (integer, False), + "VideoFillMode": (str, False), + } + + +class LayoutConfiguration(AWSProperty): + """ + `LayoutConfiguration `__ + """ + + props: PropsDictType = { + "Grid": (GridConfiguration, False), + "Pip": (PipConfiguration, False), + } + + +class Composition(AWSObject): + """ + `Composition `__ + """ + + resource_type = "AWS::IVS::Composition" + + props: PropsDictType = { + "Destinations": ([DestinationConfiguration], True), + "Layout": (LayoutConfiguration, False), + "StageArn": (str, True), + "Tags": (Tags, False), + } + + class Video(AWSProperty): """ `Video `__ @@ -131,26 +212,6 @@ class PublicKey(AWSObject): } -class S3DestinationConfiguration(AWSProperty): - """ - `S3DestinationConfiguration `__ - """ - - props: PropsDictType = { - "BucketName": (str, True), - } - - -class DestinationConfiguration(AWSProperty): - """ - `DestinationConfiguration `__ - """ - - props: PropsDictType = { - "S3": (S3DestinationConfiguration, False), - } - - class RenditionConfiguration(AWSProperty): """ `RenditionConfiguration `__ @@ -290,3 +351,46 @@ class StreamKey(AWSObject): "ChannelArn": (str, True), "Tags": (Tags, False), } + + +class ChannelDestinationConfiguration(AWSProperty): + """ + `ChannelDestinationConfiguration `__ + """ + + props: PropsDictType = { + "ChannelArn": (str, True), + "EncoderConfigurationArn": (str, False), + } + + +class CompositionRecordingHlsConfiguration(AWSProperty): + """ + `CompositionRecordingHlsConfiguration `__ + """ + + props: PropsDictType = { + "TargetSegmentDurationSeconds": (integer, False), + } + + +class CompositionThumbnailConfiguration(AWSProperty): + """ + `CompositionThumbnailConfiguration `__ + """ + + props: PropsDictType = { + "Storage": ([str], False), + "TargetIntervalSeconds": (integer, False), + } + + +class RecordingConfigurationProperty(AWSProperty): + """ + `RecordingConfigurationProperty `__ + """ + + props: PropsDictType = { + "Format": (str, False), + "HlsConfiguration": (CompositionRecordingHlsConfiguration, False), + } diff --git a/troposphere/kafkaconnect.py b/troposphere/kafkaconnect.py index 46e9445ef..490baaf7c 100644 --- a/troposphere/kafkaconnect.py +++ b/troposphere/kafkaconnect.py @@ -232,6 +232,16 @@ class Connector(AWSObject): } +class ConnectorOperation(AWSObject): + """ + `ConnectorOperation `__ + """ + + resource_type = "AWS::KafkaConnect::ConnectorOperation" + + props: PropsDictType = {} + + class S3Location(AWSProperty): """ `S3Location `__ @@ -285,6 +295,38 @@ class WorkerConfiguration(AWSObject): } +class ProvisionedCapacityDescription(AWSProperty): + """ + `ProvisionedCapacityDescription `__ + """ + + props: PropsDictType = { + "McuCount": (integer, False), + "WorkerCount": (integer, False), + } + + +class CapacityDescription(AWSProperty): + """ + `CapacityDescription `__ + """ + + props: PropsDictType = { + "ProvisionedCapacity": (ProvisionedCapacityDescription, False), + } + + +class ConnectorOperationStep(AWSProperty): + """ + `ConnectorOperationStep `__ + """ + + props: PropsDictType = { + "StepState": (str, False), + "StepType": (str, False), + } + + class CustomPluginFileDescription(AWSProperty): """ `CustomPluginFileDescription `__ @@ -294,3 +336,13 @@ class CustomPluginFileDescription(AWSProperty): "FileMd5": (str, False), "FileSize": (integer, False), } + + +class WorkerSetting(AWSProperty): + """ + `WorkerSetting `__ + """ + + props: PropsDictType = { + "Capacity": (CapacityDescription, False), + } diff --git a/troposphere/lex.py b/troposphere/lex.py index 0bf282cd7..d2903fbe1 100644 --- a/troposphere/lex.py +++ b/troposphere/lex.py @@ -1221,6 +1221,20 @@ class BotLocale(AWSProperty): } +class BotMember(AWSProperty): + """ + `BotMember `__ + """ + + props: PropsDictType = { + "BotMemberAliasId": (str, True), + "BotMemberAliasName": (str, True), + "BotMemberId": (str, True), + "BotMemberName": (str, True), + "BotMemberVersion": (str, True), + } + + class DataPrivacy(AWSProperty): """ `DataPrivacy `__ @@ -1416,7 +1430,9 @@ class Bot(AWSObject): "AutoBuildBotLocales": (boolean, False), "BotFileS3Location": (S3Location, False), "BotLocales": ([BotLocale], False), + "BotMembers": ([BotMember], False), "BotTags": (Tags, False), + "BotType": (str, False), "DataPrivacy": (DataPrivacy, True), "Description": (str, False), "ErrorLogSettings": (ErrorLogSettings, False), diff --git a/troposphere/licensemanager.py b/troposphere/licensemanager.py index 32a979be8..893152172 100644 --- a/troposphere/licensemanager.py +++ b/troposphere/licensemanager.py @@ -130,3 +130,108 @@ class License(AWSObject): "Tags": (Tags, False), "Validity": (ValidityDateFormat, True), } + + +class MatchingRuleStatement(AWSProperty): + """ + `MatchingRuleStatement `__ + """ + + props: PropsDictType = { + "Constraint": (str, True), + "KeyToMatch": (str, True), + "ValueToMatch": ([str], True), + } + + +class AndRuleStatement(AWSProperty): + """ + `AndRuleStatement `__ + """ + + props: PropsDictType = { + "MatchingRuleStatements": ([MatchingRuleStatement], False), + } + + +class OrRuleStatement(AWSProperty): + """ + `OrRuleStatement `__ + """ + + props: PropsDictType = { + "MatchingRuleStatements": ([MatchingRuleStatement], False), + } + + +class InstanceRuleStatement(AWSProperty): + """ + `InstanceRuleStatement `__ + """ + + props: PropsDictType = { + "AndRuleStatement": (AndRuleStatement, False), + "MatchingRuleStatement": (MatchingRuleStatement, False), + "OrRuleStatement": (OrRuleStatement, False), + } + + +class LicenseConfigurationRuleStatement(AWSProperty): + """ + `LicenseConfigurationRuleStatement `__ + """ + + props: PropsDictType = { + "AndRuleStatement": (AndRuleStatement, False), + "MatchingRuleStatement": (MatchingRuleStatement, False), + "OrRuleStatement": (OrRuleStatement, False), + } + + +class LicenseRuleStatement(AWSProperty): + """ + `LicenseRuleStatement `__ + """ + + props: PropsDictType = { + "AndRuleStatement": (AndRuleStatement, False), + "MatchingRuleStatement": (MatchingRuleStatement, False), + "OrRuleStatement": (OrRuleStatement, False), + } + + +class RuleStatement(AWSProperty): + """ + `RuleStatement `__ + """ + + props: PropsDictType = { + "InstanceRuleStatement": (InstanceRuleStatement, False), + "LicenseConfigurationRuleStatement": (LicenseConfigurationRuleStatement, False), + "LicenseRuleStatement": (LicenseRuleStatement, False), + } + + +class LicenseAssetRule(AWSProperty): + """ + `LicenseAssetRule `__ + """ + + props: PropsDictType = { + "RuleStatement": (RuleStatement, True), + } + + +class LicenseAssetRuleSet(AWSObject): + """ + `LicenseAssetRuleSet `__ + """ + + resource_type = "AWS::LicenseManager::LicenseAssetRuleSet" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Rules": ([LicenseAssetRule], True), + "Tags": (Tags, False), + } diff --git a/troposphere/lightsail.py b/troposphere/lightsail.py index 4e1352ee5..4becaf0ac 100644 --- a/troposphere/lightsail.py +++ b/troposphere/lightsail.py @@ -454,6 +454,16 @@ class Domain(AWSObject): } +class ExportSnapshotRecord(AWSObject): + """ + `ExportSnapshotRecord `__ + """ + + resource_type = "AWS::Lightsail::ExportSnapshotRecord" + + props: PropsDictType = {} + + class DiskProperty(AWSProperty): """ `DiskProperty `__ @@ -618,3 +628,65 @@ class StaticIp(AWSObject): "AttachedTo": (str, False), "StaticIpName": (str, True), } + + +class DestinationInfo(AWSProperty): + """ + `DestinationInfo `__ + """ + + props: PropsDictType = { + "Id": (str, False), + "Service": (str, False), + } + + +class DiskInfo(AWSProperty): + """ + `DiskInfo `__ + """ + + props: PropsDictType = { + "IsSystemDisk": (boolean, False), + "Path": (str, False), + "SizeInGb": (integer, False), + } + + +class InstanceSnapshotInfo(AWSProperty): + """ + `InstanceSnapshotInfo `__ + """ + + props: PropsDictType = { + "FromBlueprintId": (str, False), + "FromBundleId": (str, False), + "FromDiskInfo": ([DiskInfo], False), + } + + +class ExportSnapshotRecordSourceInfo(AWSProperty): + """ + `ExportSnapshotRecordSourceInfo `__ + """ + + props: PropsDictType = { + "Arn": (str, False), + "CreatedAt": (str, False), + "FromResourceArn": (str, False), + "FromResourceName": (str, False), + "InstanceSnapshotInfo": (InstanceSnapshotInfo, False), + "Name": (str, False), + "ResourceType": (str, False), + } + + +class ResourceLocation(AWSProperty): + """ + `ResourceLocation `__ + """ + + props: PropsDictType = { + "AvailabilityZone": (str, False), + "RegionName": (str, False), + } diff --git a/troposphere/location.py b/troposphere/location.py index 59945a6a7..34c5c04a9 100644 --- a/troposphere/location.py +++ b/troposphere/location.py @@ -79,6 +79,66 @@ class GeofenceCollection(AWSObject): } +class ValidateAddressActionOptions(AWSProperty): + """ + `ValidateAddressActionOptions `__ + """ + + props: PropsDictType = { + "AdditionalFeatures": ([str], False), + } + + +class JobActionOptions(AWSProperty): + """ + `JobActionOptions `__ + """ + + props: PropsDictType = { + "ValidateAddress": (ValidateAddressActionOptions, False), + } + + +class JobInputOptions(AWSProperty): + """ + `JobInputOptions `__ + """ + + props: PropsDictType = { + "Format": (str, True), + "Location": (str, True), + } + + +class JobOutputOptions(AWSProperty): + """ + `JobOutputOptions `__ + """ + + props: PropsDictType = { + "Format": (str, True), + "Location": (str, True), + } + + +class Job(AWSObject): + """ + `Job `__ + """ + + resource_type = "AWS::Location::Job" + + props: PropsDictType = { + "Action": (str, True), + "ActionOptions": (JobActionOptions, False), + "ExecutionRoleArn": (str, True), + "InputOptions": (JobInputOptions, True), + "Name": (str, False), + "OutputOptions": (JobOutputOptions, True), + "Tags": (Tags, False), + } + + class MapConfiguration(AWSProperty): """ `MapConfiguration `__ diff --git a/troposphere/mediaconnect.py b/troposphere/mediaconnect.py index 3133070ed..7748b42ea 100644 --- a/troposphere/mediaconnect.py +++ b/troposphere/mediaconnect.py @@ -681,6 +681,26 @@ class Gateway(AWSObject): } +class Offering(AWSObject): + """ + `Offering `__ + """ + + resource_type = "AWS::MediaConnect::Offering" + + props: PropsDictType = {} + + +class Reservation(AWSObject): + """ + `Reservation `__ + """ + + resource_type = "AWS::MediaConnect::Reservation" + + props: PropsDictType = {} + + class PreferredDayTimeMaintenanceConfiguration(AWSProperty): """ `PreferredDayTimeMaintenanceConfiguration `__ @@ -703,6 +723,61 @@ class MaintenanceConfiguration(AWSProperty): } +class BlackFramesConfiguration(AWSProperty): + """ + `BlackFramesConfiguration `__ + """ + + props: PropsDictType = { + "State": (str, True), + "ThresholdSeconds": (integer, True), + } + + +class FrozenFramesConfiguration(AWSProperty): + """ + `FrozenFramesConfiguration `__ + """ + + props: PropsDictType = { + "State": (str, True), + "ThresholdSeconds": (integer, True), + } + + +class SilentAudioConfiguration(AWSProperty): + """ + `SilentAudioConfiguration `__ + """ + + props: PropsDictType = { + "State": (str, True), + "ThresholdSeconds": (integer, True), + } + + +class ContentQualityAnalysisFeatureConfiguration(AWSProperty): + """ + `ContentQualityAnalysisFeatureConfiguration `__ + """ + + props: PropsDictType = { + "BlackFrames": (BlackFramesConfiguration, False), + "FrozenFrames": (FrozenFramesConfiguration, False), + "SilentAudio": (SilentAudioConfiguration, False), + } + + +class RouterContentQualityAnalysisConfiguration(AWSProperty): + """ + `RouterContentQualityAnalysisConfiguration `__ + """ + + props: PropsDictType = { + "ContentLevel": (ContentQualityAnalysisFeatureConfiguration, True), + } + + class RistRouterInputConfiguration(AWSProperty): """ `RistRouterInputConfiguration `__ @@ -934,6 +1009,10 @@ class RouterInput(AWSObject): props: PropsDictType = { "AvailabilityZone": (str, False), "Configuration": (RouterInputConfiguration, True), + "ContentQualityAnalysisConfiguration": ( + RouterContentQualityAnalysisConfiguration, + False, + ), "MaintenanceConfiguration": (MaintenanceConfiguration, False), "MaximumBitrate": (integer, True), "Name": (str, True), @@ -1140,3 +1219,14 @@ class RouterOutput(AWSObject): "Tags": (Tags, False), "Tier": (str, True), } + + +class ResourceSpecification(AWSProperty): + """ + `ResourceSpecification `__ + """ + + props: PropsDictType = { + "ReservedBitrate": (integer, False), + "ResourceType": (str, True), + } diff --git a/troposphere/medialive.py b/troposphere/medialive.py index 389284c3c..cd534f0b3 100644 --- a/troposphere/medialive.py +++ b/troposphere/medialive.py @@ -3284,6 +3284,16 @@ class Node(AWSObject): } +class Offering(AWSObject): + """ + `Offering `__ + """ + + resource_type = "AWS::MediaLive::Offering" + + props: PropsDictType = {} + + class SdiSource(AWSObject): """ `SdiSource `__ @@ -3395,6 +3405,23 @@ class MulticastSettingsUpdateRequest(AWSProperty): } +class ReservationResourceSpecification(AWSProperty): + """ + `ReservationResourceSpecification `__ + """ + + props: PropsDictType = { + "ChannelClass": (str, False), + "Codec": (str, False), + "MaximumBitrate": (str, False), + "MaximumFramerate": (str, False), + "Resolution": (str, False), + "ResourceType": (str, False), + "SpecialFeature": (str, False), + "VideoQuality": (str, False), + } + + class SpecialRouterSettings(AWSProperty): """ `SpecialRouterSettings `__ diff --git a/troposphere/mediapackage.py b/troposphere/mediapackage.py index a9eca3d3c..c746c5014 100644 --- a/troposphere/mediapackage.py +++ b/troposphere/mediapackage.py @@ -89,6 +89,34 @@ class Channel(AWSObject): } +class S3Destination(AWSProperty): + """ + `S3Destination `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + "ManifestKey": (str, True), + "RoleArn": (str, True), + } + + +class HarvestJob(AWSObject): + """ + `HarvestJob `__ + """ + + resource_type = "AWS::MediaPackage::HarvestJob" + + props: PropsDictType = { + "EndTime": (str, True), + "Id": (str, True), + "OriginEndpointId": (str, True), + "S3Destination": (S3Destination, True), + "StartTime": (str, True), + } + + class Authorization(AWSProperty): """ `Authorization `__ diff --git a/troposphere/mediapackagev2.py b/troposphere/mediapackagev2.py index 50e19a852..3bca4a428 100644 --- a/troposphere/mediapackagev2.py +++ b/troposphere/mediapackagev2.py @@ -45,6 +45,7 @@ class Channel(AWSObject): "InputSwitchConfiguration": (InputSwitchConfiguration, False), "InputType": (str, False), "OutputHeaderConfiguration": (OutputHeaderConfiguration, False), + "OutputLockingMode": (str, False), "Tags": (Tags, False), } @@ -77,6 +78,100 @@ class ChannelPolicy(AWSObject): } +class S3DestinationConfig(AWSProperty): + """ + `S3DestinationConfig `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + "DestinationPath": (str, True), + } + + +class Destination(AWSProperty): + """ + `Destination `__ + """ + + props: PropsDictType = { + "S3Destination": (S3DestinationConfig, True), + } + + +class HarvestedDashManifest(AWSProperty): + """ + `HarvestedDashManifest `__ + """ + + props: PropsDictType = { + "ManifestName": (str, True), + } + + +class HarvestedHlsManifest(AWSProperty): + """ + `HarvestedHlsManifest `__ + """ + + props: PropsDictType = { + "ManifestName": (str, True), + } + + +class HarvestedLowLatencyHlsManifest(AWSProperty): + """ + `HarvestedLowLatencyHlsManifest `__ + """ + + props: PropsDictType = { + "ManifestName": (str, True), + } + + +class HarvestedManifests(AWSProperty): + """ + `HarvestedManifests `__ + """ + + props: PropsDictType = { + "DashManifests": ([HarvestedDashManifest], False), + "HlsManifests": ([HarvestedHlsManifest], False), + "LowLatencyHlsManifests": ([HarvestedLowLatencyHlsManifest], False), + } + + +class HarvesterScheduleConfiguration(AWSProperty): + """ + `HarvesterScheduleConfiguration `__ + """ + + props: PropsDictType = { + "EndTime": (str, True), + "StartTime": (str, True), + } + + +class HarvestJob(AWSObject): + """ + `HarvestJob `__ + """ + + resource_type = "AWS::MediaPackageV2::HarvestJob" + + props: PropsDictType = { + "ChannelGroupName": (str, True), + "ChannelName": (str, True), + "Description": (str, False), + "Destination": (Destination, True), + "HarvestJobName": (str, False), + "HarvestedManifests": (HarvestedManifests, True), + "OriginEndpointName": (str, True), + "ScheduleConfiguration": (HarvesterScheduleConfiguration, True), + "Tags": (Tags, False), + } + + class DashAvailabilityStartTimeConfiguration(AWSProperty): """ `DashAvailabilityStartTimeConfiguration `__ @@ -392,6 +487,7 @@ class Segment(AWSProperty): props: PropsDictType = { "Encryption": (Encryption, False), "IncludeIframeOnlyStreams": (boolean, False), + "OutputTimestampMode": (str, False), "Scte": (Scte, False), "SegmentDurationSeconds": (integer, False), "SegmentName": (str, False), diff --git a/troposphere/mediatailor.py b/troposphere/mediatailor.py index b0e775b15..cce914563 100644 --- a/troposphere/mediatailor.py +++ b/troposphere/mediatailor.py @@ -111,6 +111,75 @@ class ChannelPolicy(AWSObject): } +class CustomOutputConfiguration(AWSProperty): + """ + `CustomOutputConfiguration `__ + """ + + props: PropsDictType = { + "Output": (dict, False), + "Runtime": (str, True), + } + + +class HttpRequestConfiguration(AWSProperty): + """ + `HttpRequestConfiguration `__ + """ + + props: PropsDictType = { + "Body": (str, False), + "Headers": (dict, False), + "MethodType": (str, True), + "Output": (dict, False), + "RequestTimeoutMilliseconds": (integer, True), + "Runtime": (str, True), + "Url": (str, True), + } + + +class FunctionRef(AWSProperty): + """ + `FunctionRef `__ + """ + + props: PropsDictType = { + "FunctionId": (str, False), + "RunCondition": (str, False), + } + + +class SequentialExecutorConfiguration(AWSProperty): + """ + `SequentialExecutorConfiguration `__ + """ + + props: PropsDictType = { + "FunctionList": ([FunctionRef], True), + "Output": (dict, False), + "Runtime": (str, True), + "TimeoutMilliseconds": (integer, True), + } + + +class Function(AWSObject): + """ + `Function `__ + """ + + resource_type = "AWS::MediaTailor::Function" + + props: PropsDictType = { + "CustomOutputConfiguration": (CustomOutputConfiguration, False), + "Description": (str, False), + "FunctionId": (str, True), + "FunctionType": (str, True), + "HttpRequestConfiguration": (HttpRequestConfiguration, False), + "SequentialExecutorConfiguration": (SequentialExecutorConfiguration, False), + "Tags": (Tags, False), + } + + class HttpPackageConfiguration(AWSProperty): """ `HttpPackageConfiguration `__ @@ -171,6 +240,31 @@ class AdDecisionServerConfiguration(AWSProperty): } +class AdsPersonalizationConcurrency(AWSProperty): + """ + `AdsPersonalizationConcurrency `__ + """ + + props: PropsDictType = { + "EnableVodVastParallelization": (boolean, False), + "MaxConcurrentAdsRequests": (integer, False), + } + + +class AdsPersonalizationTimeouts(AWSProperty): + """ + `AdsPersonalizationTimeouts `__ + """ + + props: PropsDictType = { + "AdsRequestTimeoutMilliseconds": (integer, False), + "LiveMaximumAdsPersonalizationTimeMilliseconds": (integer, False), + "PrefetchAdsRequestTimeoutMilliseconds": (integer, False), + "PrefetchMaximumAdsPersonalizationTimeMilliseconds": (integer, False), + "VodMaximumAdsPersonalizationTimeMilliseconds": (integer, False), + } + + class AvailSuppression(AWSProperty): """ `AvailSuppression `__ @@ -303,6 +397,8 @@ class PlaybackConfiguration(AWSObject): "AdConditioningConfiguration": (AdConditioningConfiguration, False), "AdDecisionServerConfiguration": (AdDecisionServerConfiguration, False), "AdDecisionServerUrl": (str, True), + "AdsPersonalizationConcurrency": (AdsPersonalizationConcurrency, False), + "AdsPersonalizationTimeouts": (AdsPersonalizationTimeouts, False), "AvailSuppression": (AvailSuppression, False), "Bumper": (Bumper, False), "CdnConfiguration": (CdnConfiguration, False), diff --git a/troposphere/memorydb.py b/troposphere/memorydb.py index b58604511..2724f6c85 100644 --- a/troposphere/memorydb.py +++ b/troposphere/memorydb.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer class ACL(AWSObject): @@ -96,6 +96,16 @@ class MultiRegionCluster(AWSObject): } +class MultiRegionParameterGroup(AWSObject): + """ + `MultiRegionParameterGroup `__ + """ + + resource_type = "AWS::MemoryDB::MultiRegionParameterGroup" + + props: PropsDictType = {} + + class ParameterGroup(AWSObject): """ `ParameterGroup `__ @@ -112,6 +122,16 @@ class ParameterGroup(AWSObject): } +class ReservedNode(AWSObject): + """ + `ReservedNode `__ + """ + + resource_type = "AWS::MemoryDB::ReservedNode" + + props: PropsDictType = {} + + class SubnetGroup(AWSObject): """ `SubnetGroup `__ @@ -151,3 +171,14 @@ class User(AWSObject): "Tags": (Tags, False), "UserName": (str, True), } + + +class RecurringCharge(AWSProperty): + """ + `RecurringCharge `__ + """ + + props: PropsDictType = { + "RecurringChargeAmount": (double, False), + "RecurringChargeFrequency": (str, False), + } diff --git a/troposphere/msk.py b/troposphere/msk.py index 9995bd1e0..c1e5ae46c 100644 --- a/troposphere/msk.py +++ b/troposphere/msk.py @@ -23,6 +23,235 @@ class BatchScramSecret(AWSObject): } +class CloudWatchLogsLogDestination(AWSProperty): + """ + `CloudWatchLogsLogDestination `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, True), + "LogGroup": (str, False), + } + + +class FirehoseLogDestination(AWSProperty): + """ + `FirehoseLogDestination `__ + """ + + props: PropsDictType = { + "DeliveryStream": (str, False), + "Enabled": (boolean, True), + } + + +class S3LogDestination(AWSProperty): + """ + `S3LogDestination `__ + """ + + props: PropsDictType = { + "Bucket": (str, False), + "Enabled": (boolean, True), + "Prefix": (str, False), + } + + +class ChannelLoggingInfo(AWSProperty): + """ + `ChannelLoggingInfo `__ + """ + + props: PropsDictType = { + "CloudWatchLogs": (CloudWatchLogsLogDestination, False), + "Firehose": (FirehoseLogDestination, False), + "S3": (S3LogDestination, False), + } + + +class EncryptionConfiguration(AWSProperty): + """ + `EncryptionConfiguration `__ + """ + + props: PropsDictType = { + "KmsKeyArn": (str, True), + } + + +class Catalog(AWSProperty): + """ + `Catalog `__ + """ + + props: PropsDictType = { + "CatalogArn": (str, False), + "WarehouseLocation": (str, False), + } + + +class DeadLetterQueueS3(AWSProperty): + """ + `DeadLetterQueueS3 `__ + """ + + props: PropsDictType = { + "BucketArn": (str, True), + "ErrorOutputPrefix": (str, True), + "ExpectedBucketOwner": (str, False), + } + + +class PartitionSource(AWSProperty): + """ + `PartitionSource `__ + """ + + props: PropsDictType = { + "SourceName": (str, False), + } + + +class PartitionSpec(AWSProperty): + """ + `PartitionSpec `__ + """ + + props: PropsDictType = { + "PartitionStrategy": (str, True), + "SourceList": ([PartitionSource], False), + } + + +class DestinationTable(AWSProperty): + """ + `DestinationTable `__ + """ + + props: PropsDictType = { + "DestinationDatabaseName": (str, True), + "DestinationTableName": (str, True), + "PartitionSpec": (PartitionSpec, False), + } + + +class SchemaEvolution(AWSProperty): + """ + `SchemaEvolution `__ + """ + + props: PropsDictType = { + "EnableSchemaEvolution": (boolean, True), + } + + +class TableCreation(AWSProperty): + """ + `TableCreation `__ + """ + + props: PropsDictType = { + "EnableTableCreation": (boolean, True), + } + + +class IcebergDestinationConfiguration(AWSProperty): + """ + `IcebergDestinationConfiguration `__ + """ + + props: PropsDictType = { + "AppendOnly": (boolean, True), + "Catalog": (Catalog, False), + "CompressionType": (str, False), + "DataFreshnessInSeconds": (integer, False), + "DeadLetterQueueS3": (DeadLetterQueueS3, True), + "DestinationTableList": ([DestinationTable], True), + "SchemaEvolution": (SchemaEvolution, True), + "ServiceExecutionRoleArn": (str, True), + "TableCreation": (TableCreation, True), + } + + +class S3Storage(AWSProperty): + """ + `S3Storage `__ + """ + + props: PropsDictType = { + "BucketArn": (str, True), + "CompressionType": (str, True), + "ExpectedBucketOwner": (str, False), + "OutputKeyTemplate": (str, False), + "OutputPrefix": (str, False), + "StorageClass": (str, True), + } + + +class S3DestinationConfiguration(AWSProperty): + """ + `S3DestinationConfiguration `__ + """ + + props: PropsDictType = { + "DataFreshnessInSeconds": (integer, False), + "DeadLetterQueueS3": (DeadLetterQueueS3, True), + "ServiceExecutionRoleArn": (str, True), + "Storage": (S3Storage, True), + } + + +class RecordConverter(AWSProperty): + """ + `RecordConverter `__ + """ + + props: PropsDictType = { + "ValueConverter": (str, True), + } + + +class RecordSchema(AWSProperty): + """ + `RecordSchema `__ + """ + + props: PropsDictType = { + "GsrArn": (str, True), + } + + +class TopicConfiguration(AWSProperty): + """ + `TopicConfiguration `__ + """ + + props: PropsDictType = { + "RecordConverter": (RecordConverter, True), + "RecordSchema": (RecordSchema, False), + "TopicArn": (str, True), + } + + +class Channel(AWSObject): + """ + `Channel `__ + """ + + resource_type = "AWS::MSK::Channel" + + props: PropsDictType = { + "ChannelName": (str, True), + "ClusterArn": (str, False), + "EncryptionConfiguration": (EncryptionConfiguration, False), + "IcebergDestinationConfiguration": (IcebergDestinationConfiguration, False), + "LoggingInfo": (ChannelLoggingInfo, False), + "S3DestinationConfiguration": (S3DestinationConfiguration, False), + "Tags": (dict, False), + "TopicConfigurationList": ([TopicConfiguration], True), + } + + class PublicAccess(AWSProperty): """ `PublicAccess `__ @@ -295,6 +524,18 @@ class S3(AWSProperty): } +class AuthorizerLogs(AWSProperty): + """ + `AuthorizerLogs `__ + """ + + props: PropsDictType = { + "CloudWatchLogs": (CloudWatchLogs, False), + "Firehose": (Firehose, False), + "S3": (S3, False), + } + + class BrokerLogs(AWSProperty): """ `BrokerLogs `__ @@ -313,7 +554,8 @@ class LoggingInfo(AWSProperty): """ props: PropsDictType = { - "BrokerLogs": (BrokerLogs, True), + "AuthorizerLogs": (AuthorizerLogs, False), + "BrokerLogs": (BrokerLogs, False), } @@ -696,3 +938,14 @@ class VpcConnection(AWSObject): "TargetClusterArn": (str, True), "VpcId": (str, True), } + + +class ChannelStateInfo(AWSProperty): + """ + `ChannelStateInfo `__ + """ + + props: PropsDictType = { + "Code": (str, False), + "Message": (str, False), + } diff --git a/troposphere/neptunegraph.py b/troposphere/neptunegraph.py index 3804ed687..97a446e93 100644 --- a/troposphere/neptunegraph.py +++ b/troposphere/neptunegraph.py @@ -10,6 +10,58 @@ from .validators import boolean, integer +class ExportFilterPropertyAttributes(AWSProperty): + """ + `ExportFilterPropertyAttributes `__ + """ + + props: PropsDictType = { + "MultiValueHandling": (str, False), + "OutputType": (str, False), + "SourcePropertyName": (str, False), + } + + +class ExportFilterElement(AWSProperty): + """ + `ExportFilterElement `__ + """ + + props: PropsDictType = { + "Properties": (dict, False), + } + + +class ExportFilter(AWSProperty): + """ + `ExportFilter `__ + """ + + props: PropsDictType = { + "EdgeFilter": (dict, False), + "VertexFilter": (dict, False), + } + + +class ExportTask(AWSObject): + """ + `ExportTask `__ + """ + + resource_type = "AWS::NeptuneGraph::ExportTask" + + props: PropsDictType = { + "Destination": (str, True), + "ExportFilter": (ExportFilter, False), + "Format": (str, True), + "GraphIdentifier": (str, True), + "KmsKeyIdentifier": (str, True), + "ParquetType": (str, False), + "RoleArn": (str, True), + "Tags": (Tags, False), + } + + class VectorSearchConfiguration(AWSProperty): """ `VectorSearchConfiguration `__ diff --git a/troposphere/observabilityadmin.py b/troposphere/observabilityadmin.py index 8b0248a22..6dc35cb1f 100644 --- a/troposphere/observabilityadmin.py +++ b/troposphere/observabilityadmin.py @@ -317,6 +317,7 @@ class TelemetryDestinationConfiguration(AWSProperty): "DestinationPattern": (str, False), "DestinationType": (str, False), "ELBLoadBalancerLoggingParameters": (ELBLoadBalancerLoggingParameters, False), + "KmsKeyArn": (str, False), "LogDeliveryParameters": (LogDeliveryParameters, False), "RetentionInDays": (integer, False), "VPCFlowLogParameters": (VPCFlowLogParameters, False), diff --git a/troposphere/omics.py b/troposphere/omics.py index 841ee51a3..01248e71a 100644 --- a/troposphere/omics.py +++ b/troposphere/omics.py @@ -6,8 +6,8 @@ # *** Do not modify - this file is autogenerated *** -from . import AWSObject, AWSProperty, PropsDictType -from .validators import boolean, double +from . import AWSObject, AWSProperty, PropsDictType, Tags +from .validators import boolean, double, integer class ReferenceItem(AWSProperty): @@ -107,6 +107,50 @@ class Configuration(AWSObject): } +class ReadSet(AWSObject): + """ + `ReadSet `__ + """ + + resource_type = "AWS::Omics::ReadSet" + + props: PropsDictType = { + "Description": (str, False), + "FileType": (str, False), + "Name": (str, False), + "ReferenceArn": (str, False), + "SampleId": (str, False), + "SequenceStoreId": (str, False), + "SubjectId": (str, False), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class Reference(AWSObject): + """ + `Reference `__ + """ + + resource_type = "AWS::Omics::Reference" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, False), + "ReferenceStoreId": (str, False), + "Tags": ([TagsItems], False), + } + + class ReferenceStore(AWSObject): """ `ReferenceStore `__ @@ -122,6 +166,33 @@ class ReferenceStore(AWSObject): } +class Run(AWSObject): + """ + `Run `__ + """ + + resource_type = "AWS::Omics::Run" + + props: PropsDictType = { + "CacheBehavior": (str, False), + "CacheId": (str, False), + "LogLevel": (str, False), + "Name": (str, False), + "NetworkingMode": (str, False), + "OutputUri": (str, True), + "Priority": (integer, False), + "RetentionMode": (str, False), + "RoleArn": (str, True), + "RunGroupId": (str, False), + "StorageCapacity": (integer, False), + "StorageType": (str, False), + "Tags": (Tags, False), + "WorkflowId": (str, False), + "WorkflowOwnerId": (str, False), + "WorkflowType": (str, False), + } + + class RunGroup(AWSObject): """ `RunGroup `__ @@ -159,6 +230,18 @@ class SequenceStore(AWSObject): } +class Task(AWSObject): + """ + `Task `__ + """ + + resource_type = "AWS::Omics::Task" + + props: PropsDictType = { + "RunId": (str, False), + } + + class VariantStore(AWSObject): """ `VariantStore `__ @@ -302,3 +385,63 @@ class WorkflowVersion(AWSObject): "readmePath": (str, False), "readmeUri": (str, False), } + + +class ETag(AWSProperty): + """ + `ETag `__ + """ + + props: PropsDictType = { + "Algorithm": (str, False), + "Source1": (str, False), + "Source2": (str, False), + } + + +class ReadSetS3Access(AWSProperty): + """ + `ReadSetS3Access `__ + """ + + props: PropsDictType = { + "S3Uri": (str, False), + } + + +class FileInformation(AWSProperty): + """ + `FileInformation `__ + """ + + props: PropsDictType = { + "ContentLength": (integer, False), + "PartSize": (integer, False), + "S3Access": (ReadSetS3Access, False), + "TotalParts": (integer, False), + } + + +class ReadSetFiles(AWSProperty): + """ + `ReadSetFiles `__ + """ + + props: PropsDictType = { + "Index": (FileInformation, False), + "Source1": (FileInformation, False), + "Source2": (FileInformation, False), + } + + +class SequenceInformation(AWSProperty): + """ + `SequenceInformation `__ + """ + + props: PropsDictType = { + "Alignment": (str, False), + "GeneratedFrom": (str, False), + "TotalBaseCount": (integer, False), + "TotalReadCount": (integer, False), + } diff --git a/troposphere/opensearchserverless.py b/troposphere/opensearchserverless.py index 62496b187..56686a9c2 100644 --- a/troposphere/opensearchserverless.py +++ b/troposphere/opensearchserverless.py @@ -110,6 +110,29 @@ class CollectionIndex(AWSObject): } +class AnalyzerItems(AWSProperty): + """ + `AnalyzerItems `__ + """ + + props: PropsDictType = { + "CharFilter": ([str], False), + "Filter": ([str], False), + "Tokenizer": (str, False), + "Type": (str, False), + } + + +class Analysis(AWSProperty): + """ + `Analysis `__ + """ + + props: PropsDictType = { + "Analyzer": (dict, False), + } + + class IndexProperty(AWSProperty): """ `IndexProperty `__ @@ -128,6 +151,7 @@ class IndexSettings(AWSProperty): """ props: PropsDictType = { + "Analysis": (Analysis, False), "Index": (IndexProperty, False), } @@ -162,10 +186,14 @@ class PropertyMapping(AWSProperty): """ props: PropsDictType = { + "Analyzer": (str, False), + "CompressionLevel": (str, False), + "DataType": (str, False), "Dimension": (integer, False), "Index": (boolean, False), "Method": (Method, False), "Properties": (dict, False), + "SpaceType": (str, False), "Type": (str, True), "Value": (str, False), } diff --git a/troposphere/opensearchservice.py b/troposphere/opensearchservice.py index 1f6f8dd0a..e1bef0ba5 100644 --- a/troposphere/opensearchservice.py +++ b/troposphere/opensearchservice.py @@ -399,6 +399,7 @@ class SoftwareUpdateOptions(AWSProperty): props: PropsDictType = { "AutoSoftwareUpdateEnabled": (boolean, False), + "UseLatestServiceSoftwareForBlueGreen": (boolean, False), } @@ -434,6 +435,7 @@ class Domain(AWSObject): "DomainName": (str, False), "EBSOptions": (EBSOptions, False), "EncryptionAtRestOptions": (EncryptionAtRestOptions, False), + "EngineMode": (str, False), "EngineVersion": (validate_search_service_engine_version, False), "IPAddressType": (str, False), "IdentityCenterOptions": (IdentityCenterOptions, False), @@ -444,6 +446,7 @@ class Domain(AWSObject): "SnapshotOptions": (SnapshotOptions, False), "SoftwareUpdateOptions": (SoftwareUpdateOptions, False), "Tags": (Tags, False), + "UseCase": (str, False), "VPCOptions": (VPCOptions, False), } diff --git a/troposphere/osis.py b/troposphere/osis.py index 84c2106b7..654580bed 100644 --- a/troposphere/osis.py +++ b/troposphere/osis.py @@ -107,6 +107,18 @@ class Pipeline(AWSObject): } +class PipelineBlueprint(AWSObject): + """ + `PipelineBlueprint `__ + """ + + resource_type = "AWS::OSIS::PipelineBlueprint" + + props: PropsDictType = { + "BlueprintName": (str, False), + } + + class VpcEndpoint(AWSProperty): """ `VpcEndpoint `__ diff --git a/troposphere/pcs.py b/troposphere/pcs.py index f8e49b252..0e419ebe9 100644 --- a/troposphere/pcs.py +++ b/troposphere/pcs.py @@ -92,6 +92,54 @@ class InstanceConfig(AWSProperty): } +class ScriptSource(AWSProperty): + """ + `ScriptSource `__ + """ + + props: PropsDictType = { + "Checksum": (str, False), + "S3VersionId": (str, False), + "ScriptLocation": (str, True), + } + + +class NodeLifecycleScript(AWSProperty): + """ + `NodeLifecycleScript `__ + """ + + props: PropsDictType = { + "Arguments": ([str], False), + "ExecutionPolicy": (str, False), + "Name": (str, True), + "OnError": (str, False), + "ScriptSource": (ScriptSource, True), + } + + +class NodeLifecycleStages(AWSProperty): + """ + `NodeLifecycleStages `__ + """ + + props: PropsDictType = { + "NodeBootstrapped": ([NodeLifecycleScript], False), + "NodeReady": ([NodeLifecycleScript], False), + } + + +class NodeLifecycleActions(AWSProperty): + """ + `NodeLifecycleActions `__ + """ + + props: PropsDictType = { + "ScriptCachingPolicy": (str, False), + "Stages": (NodeLifecycleStages, True), + } + + class ScalingConfiguration(AWSProperty): """ `ScalingConfiguration `__ @@ -127,6 +175,7 @@ class ComputeNodeGroup(AWSObject): "IamInstanceProfileArn": (str, True), "InstanceConfigs": ([InstanceConfig], True), "Name": (str, False), + "NodeLifecycleActions": (NodeLifecycleActions, False), "PurchaseOption": (str, False), "ScalingConfiguration": (ScalingConfiguration, True), "SlurmConfiguration": (SlurmConfiguration, False), diff --git a/troposphere/personalize.py b/troposphere/personalize.py index 94047b749..fc15035bb 100644 --- a/troposphere/personalize.py +++ b/troposphere/personalize.py @@ -6,10 +6,58 @@ # *** Do not modify - this file is autogenerated *** -from . import AWSObject, AWSProperty, PropsDictType +from . import AWSObject, AWSProperty, PropsDictType, Tags from .validators import boolean, double, integer +class S3DataConfig(AWSProperty): + """ + `S3DataConfig `__ + """ + + props: PropsDictType = { + "Path": (str, True), + } + + +class BatchSegmentJobInput(AWSProperty): + """ + `BatchSegmentJobInput `__ + """ + + props: PropsDictType = { + "S3DataSource": (S3DataConfig, True), + } + + +class BatchSegmentJobOutput(AWSProperty): + """ + `BatchSegmentJobOutput `__ + """ + + props: PropsDictType = { + "S3DataDestination": (S3DataConfig, True), + } + + +class BatchSegmentJob(AWSObject): + """ + `BatchSegmentJob `__ + """ + + resource_type = "AWS::Personalize::BatchSegmentJob" + + props: PropsDictType = { + "JobInput": (BatchSegmentJobInput, False), + "JobName": (str, False), + "JobOutput": (BatchSegmentJobOutput, False), + "NumResults": (integer, False), + "RoleArn": (str, False), + "SolutionVersionArn": (str, False), + "Tags": (Tags, False), + } + + class DataSource(AWSProperty): """ `DataSource `__ @@ -80,6 +128,32 @@ class DatasetGroup(AWSObject): } +class EventTracker(AWSObject): + """ + `EventTracker `__ + """ + + resource_type = "AWS::Personalize::EventTracker" + + props: PropsDictType = { + "DatasetGroupArn": (str, True), + "Name": (str, True), + "Tags": (Tags, False), + } + + +class Recipe(AWSObject): + """ + `Recipe `__ + """ + + resource_type = "AWS::Personalize::Recipe" + + props: PropsDictType = { + "Name": (str, False), + } + + class Schema(AWSObject): """ `Schema `__ diff --git a/troposphere/quicksight.py b/troposphere/quicksight.py index f661a8b8e..cb717219e 100644 --- a/troposphere/quicksight.py +++ b/troposphere/quicksight.py @@ -155,7 +155,7 @@ class AuthConfig(AWSProperty): class ResourcePermission(AWSProperty): """ - `ResourcePermission `__ + `ResourcePermission `__ """ props: PropsDictType = { @@ -184,6 +184,77 @@ class ActionConnector(AWSObject): } +class AgentTag(AWSProperty): + """ + `AgentTag `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class CustomPromptInputParameters(AWSProperty): + """ + `CustomPromptInputParameters `__ + """ + + props: PropsDictType = { + "CustomInstructions": (str, False), + "Identity": (str, False), + "OutputStyle": (str, False), + "ResponseLength": (str, False), + "Tone": (str, False), + } + + +class CustomPromptProfile(AWSProperty): + """ + `CustomPromptProfile `__ + """ + + props: PropsDictType = { + "ModelProfileId": (str, True), + "QbsAwsAccountId": (str, True), + "SubscriptionId": (str, True), + } + + +class CustomPromptInput(AWSProperty): + """ + `CustomPromptInput `__ + """ + + props: PropsDictType = { + "ExistingPrompt": (CustomPromptProfile, False), + "NewPrompt": (CustomPromptInputParameters, False), + } + + +class Agent(AWSObject): + """ + `Agent `__ + """ + + resource_type = "AWS::QuickSight::Agent" + + props: PropsDictType = { + "ActionConnectors": ([str], False), + "AgentId": (str, True), + "AgentLifecycle": (str, False), + "AwsAccountId": (str, True), + "CustomPromptInput": (CustomPromptInput, False), + "Description": (str, False), + "IconId": (str, False), + "Name": (str, True), + "Spaces": ([str], False), + "StarterPrompts": ([str], False), + "Tags": ([AgentTag], False), + "WelcomeMessage": (str, False), + } + + class FreeFormLayoutScreenCanvasSizeOptions(AWSProperty): """ `FreeFormLayoutScreenCanvasSizeOptions `__ @@ -6932,12 +7003,12 @@ class AnalysisError(AWSProperty): class DataSetReference(AWSProperty): """ - `DataSetReference `__ + `DataSetReference `__ """ props: PropsDictType = { "DataSetArn": (str, True), - "DataSetPlaceholder": (str, True), + "DataSetName": (str, False), } @@ -7065,6 +7136,94 @@ class Analysis(AWSObject): } +class ApplicableTo(AWSProperty): + """ + `ApplicableTo `__ + """ + + props: PropsDictType = { + "GroupArns": ([str], False), + "Type": (dict, True), + } + + +class ApprovalPolicy(AWSObject): + """ + `ApprovalPolicy `__ + """ + + resource_type = "AWS::QuickSight::ApprovalPolicy" + + props: PropsDictType = { + "Actions": (Tags, True), + "ApplicableTo": (ApplicableTo, True), + "ApprovalGroups": ([str], True), + "AssetTypes": (Tags, True), + "Description": (str, False), + "Name": (str, True), + "PolicyId": (str, True), + } + + +class AssetBundleExportJob(AWSObject): + """ + `AssetBundleExportJob `__ + """ + + resource_type = "AWS::QuickSight::AssetBundleExportJob" + + props: PropsDictType = { + "AssetBundleExportJobId": (str, True), + "AwsAccountId": (str, False), + "ExportFormat": (str, True), + "IncludeAllDependencies": (boolean, False), + "IncludeFolderMembers": (str, False), + "IncludeFolderMemberships": (boolean, False), + "IncludePermissions": (boolean, False), + "IncludeTags": (boolean, False), + "ResourceArns": ([str], True), + } + + +class AssetBundleImportJobOverrideValidationStrategy(AWSProperty): + """ + `AssetBundleImportJobOverrideValidationStrategy `__ + """ + + props: PropsDictType = { + "StrictModeForAllResources": (boolean, False), + } + + +class AssetBundleImportSourceDescription(AWSProperty): + """ + `AssetBundleImportSourceDescription `__ + """ + + props: PropsDictType = { + "S3Uri": (str, False), + } + + +class AssetBundleImportJob(AWSObject): + """ + `AssetBundleImportJob `__ + """ + + resource_type = "AWS::QuickSight::AssetBundleImportJob" + + props: PropsDictType = { + "AssetBundleImportJobId": (str, True), + "AssetBundleImportSource": (AssetBundleImportSourceDescription, False), + "AwsAccountId": (str, False), + "FailureAction": (str, False), + "OverrideValidationStrategy": ( + AssetBundleImportJobOverrideValidationStrategy, + False, + ), + } + + class Capabilities(AWSProperty): """ `Capabilities `__ @@ -7315,6 +7474,69 @@ class CustomPermissions(AWSObject): } +class LabelActionMapping(AWSProperty): + """ + `LabelActionMapping `__ + """ + + props: PropsDictType = { + "Action": (str, True), + "LabelId": (str, True), + "LabelName": (str, True), + } + + +class MicrosoftPurviewCredentials(AWSProperty): + """ + `MicrosoftPurviewCredentials `__ + """ + + props: PropsDictType = { + "SecretArn": (str, True), + } + + +class MicrosoftPurviewProviderConfig(AWSProperty): + """ + `MicrosoftPurviewProviderConfig `__ + """ + + props: PropsDictType = { + "Credentials": (MicrosoftPurviewCredentials, True), + "LabelActionMappings": ([LabelActionMapping], True), + "UnmappedAction": (str, True), + } + + +class ProviderConfig(AWSProperty): + """ + `ProviderConfig `__ + """ + + props: PropsDictType = { + "MicrosoftPurview": (MicrosoftPurviewProviderConfig, True), + } + + +class DLPSetting(AWSObject): + """ + `DLPSetting `__ + """ + + resource_type = "AWS::QuickSight::DLPSetting" + + props: PropsDictType = { + "AwsAccountId": (str, False), + "DlpSettingId": (str, True), + "Enabled": (boolean, True), + "Name": (str, True), + "ProviderConfig": (ProviderConfig, True), + "ProviderOutageAction": (str, True), + "ProviderType": (str, True), + "Tags": (Tags, False), + } + + class AdHocFilteringOption(AWSProperty): """ `AdHocFilteringOption `__ @@ -9146,6 +9368,33 @@ class DataSource(AWSObject): } +class Permission(AWSProperty): + """ + `Permission `__ + """ + + props: PropsDictType = { + "Actions": ([str], True), + "Principal": (str, True), + } + + +class Flow(AWSObject): + """ + `Flow `__ + """ + + resource_type = "AWS::QuickSight::Flow" + + props: PropsDictType = { + "AwsAccountId": (str, True), + "Description": (str, False), + "FlowDefinition": (dict, True), + "Name": (str, True), + "Permissions": ([Permission], False), + } + + class Folder(AWSObject): """ `Folder `__ @@ -9165,6 +9414,137 @@ class Folder(AWSObject): } +class AccessControlConfiguration(AWSProperty): + """ + `AccessControlConfiguration `__ + """ + + props: PropsDictType = { + "IsACLEnabled": (boolean, False), + } + + +class KbTemplateConfiguration(AWSProperty): + """ + `KbTemplateConfiguration `__ + """ + + props: PropsDictType = { + "Template": (dict, False), + } + + +class KnowledgeBaseConfiguration(AWSProperty): + """ + `KnowledgeBaseConfiguration `__ + """ + + props: PropsDictType = { + "TemplateConfiguration": (KbTemplateConfiguration, False), + } + + +class AudioExtractionConfiguration(AWSProperty): + """ + `AudioExtractionConfiguration `__ + """ + + props: PropsDictType = { + "AudioExtractionStatus": (str, True), + } + + +class ImageExtractionConfiguration(AWSProperty): + """ + `ImageExtractionConfiguration `__ + """ + + props: PropsDictType = { + "ImageExtractionStatus": (str, True), + } + + +class VideoExtractionConfiguration(AWSProperty): + """ + `VideoExtractionConfiguration `__ + """ + + props: PropsDictType = { + "VideoExtractionStatus": (str, True), + "VideoExtractionType": (str, False), + } + + +class MediaExtractionConfiguration(AWSProperty): + """ + `MediaExtractionConfiguration `__ + """ + + props: PropsDictType = { + "AudioExtractionConfiguration": (AudioExtractionConfiguration, False), + "ImageExtractionConfiguration": (ImageExtractionConfiguration, False), + "VideoExtractionConfiguration": (VideoExtractionConfiguration, False), + } + + +class KnowledgeBase(AWSObject): + """ + `KnowledgeBase `__ + """ + + resource_type = "AWS::QuickSight::KnowledgeBase" + + props: PropsDictType = { + "AccessControlConfiguration": (AccessControlConfiguration, False), + "AwsAccountId": (str, True), + "DataSourceArn": (str, True), + "Description": (str, False), + "IsEmailNotificationOptedForIngestionFailures": (boolean, False), + "KnowledgeBaseConfiguration": (KnowledgeBaseConfiguration, True), + "KnowledgeBaseId": (str, True), + "MediaExtractionConfiguration": (MediaExtractionConfiguration, False), + "Name": (str, True), + "Permissions": ([ResourcePermission], False), + "PrimaryOwnerArn": (str, False), + "Tags": (Tags, False), + } + + +class IdentityProviderVpcConnectionProperties(AWSProperty): + """ + `IdentityProviderVpcConnectionProperties `__ + """ + + props: PropsDictType = { + "VpcConnectionArn": (str, True), + } + + +class OAuthClientApplication(AWSObject): + """ + `OAuthClientApplication `__ + """ + + resource_type = "AWS::QuickSight::OAuthClientApplication" + + props: PropsDictType = { + "ClientId": (str, False), + "ClientSecret": (str, False), + "DataSourceType": (str, False), + "IdentityProviderVpcConnectionProperties": ( + IdentityProviderVpcConnectionProperties, + False, + ), + "Name": (str, True), + "OAuthAuthorizationEndpointUrl": (str, False), + "OAuthClientApplicationId": (str, True), + "OAuthClientAuthenticationType": (str, True), + "OAuthScopes": (str, False), + "OAuthTokenEndpointUrl": (str, True), + "Tags": (Tags, False), + } + + class RefreshOnDay(AWSProperty): """ `RefreshOnDay `__ @@ -9216,6 +9596,35 @@ class RefreshSchedule(AWSObject): } +class SpaceResource(AWSProperty): + """ + `SpaceResource `__ + """ + + props: PropsDictType = { + "ResourceArn": (str, True), + "ResourceType": (str, True), + } + + +class Space(AWSObject): + """ + `Space `__ + """ + + resource_type = "AWS::QuickSight::Space" + + props: PropsDictType = { + "AwsAccountId": (str, True), + "Description": (str, False), + "Name": (str, True), + "Permissions": ([ResourcePermission], False), + "Resources": ([SpaceResource], False), + "SpaceId": (str, True), + "Tags": (Tags, False), + } + + class TemplateSourceAnalysis(AWSProperty): """ `TemplateSourceAnalysis `__ @@ -9494,7 +9903,7 @@ class Theme(AWSObject): class CustomInstructions(AWSProperty): """ - `CustomInstructions `__ + `CustomInstructions `__ """ props: PropsDictType = { @@ -9880,6 +10289,49 @@ class Topic(AWSObject): } +class DataSetRelationEndpoint(AWSProperty): + """ + `DataSetRelationEndpoint `__ + """ + + props: PropsDictType = { + "ColumnNames": ([str], True), + "DataSetArn": (str, True), + } + + +class DataSetRelation(AWSProperty): + """ + `DataSetRelation `__ + """ + + props: PropsDictType = { + "Left": (DataSetRelationEndpoint, True), + "Right": (DataSetRelationEndpoint, True), + } + + +class TopicV2(AWSObject): + """ + `TopicV2 `__ + """ + + resource_type = "AWS::QuickSight::TopicV2" + + props: PropsDictType = { + "AwsAccountId": (str, False), + "CustomInstructions": (CustomInstructions, False), + "DataSetRelations": ([DataSetRelation], False), + "DataSets": ([DataSetReference], False), + "Description": (str, False), + "FolderArns": ([str], False), + "Name": (str, False), + "Permissions": ([ResourcePermission], False), + "Tags": (Tags, False), + "TopicId": (str, False), + } + + class VPCConnection(AWSObject): """ `VPCConnection `__ @@ -9900,6 +10352,24 @@ class VPCConnection(AWSObject): } +class CustomPromptInterface(AWSProperty): + """ + `CustomPromptInterface `__ + """ + + props: PropsDictType = { + "CustomInstructions": (str, False), + "Identity": (str, False), + "ModelProfileId": (str, False), + "OutputStyle": (str, False), + "PromptSummary": (str, False), + "QbsAwsAccountId": (str, False), + "ResponseLength": (str, False), + "SubscriptionId": (str, False), + "Tone": (str, False), + } + + class DashboardError(AWSProperty): """ `DashboardError `__ @@ -9949,6 +10419,17 @@ class NetworkInterface(AWSProperty): } +class StepAliasMapping(AWSProperty): + """ + `StepAliasMapping `__ + """ + + props: PropsDictType = { + "StepAlias": (str, True), + "StepId": (str, True), + } + + class TemplateError(AWSProperty): """ `TemplateError `__ diff --git a/troposphere/rds.py b/troposphere/rds.py index fe6f0ebb1..437ef5c50 100644 --- a/troposphere/rds.py +++ b/troposphere/rds.py @@ -636,6 +636,18 @@ class OptionGroup(AWSObject): } +class ReservedDBInstance(AWSObject): + """ + `ReservedDBInstance `__ + """ + + resource_type = "AWS::RDS::ReservedDBInstance" + + props: PropsDictType = { + "DBInstanceCount": (integer, False), + } + + class DBInstanceStatusInfo(AWSProperty): """ `DBInstanceStatusInfo `__ @@ -657,3 +669,14 @@ class ReadEndpoint(AWSProperty): props: PropsDictType = { "Address": (str, False), } + + +class RecurringCharge(AWSProperty): + """ + `RecurringCharge `__ + """ + + props: PropsDictType = { + "RecurringChargeAmount": (double, False), + "RecurringChargeFrequency": (str, False), + } diff --git a/troposphere/redshift.py b/troposphere/redshift.py index 48497c185..528c44bd7 100644 --- a/troposphere/redshift.py +++ b/troposphere/redshift.py @@ -166,6 +166,16 @@ class ClusterSubnetGroup(AWSObject): } +class DataShare(AWSObject): + """ + `DataShare `__ + """ + + resource_type = "AWS::Redshift::DataShare" + + props: PropsDictType = {} + + class EndpointAccess(AWSObject): """ `EndpointAccess `__ @@ -298,6 +308,34 @@ class ScheduledAction(AWSObject): } +class SnapshotSchedule(AWSObject): + """ + `SnapshotSchedule `__ + """ + + resource_type = "AWS::Redshift::SnapshotSchedule" + + props: PropsDictType = { + "ScheduleDefinitions": ([str], True), + "ScheduleDescription": (str, False), + "ScheduleIdentifier": (str, True), + "Tags": (Tags, False), + } + + +class DataShareAssociation(AWSProperty): + """ + `DataShareAssociation `__ + """ + + props: PropsDictType = { + "ConsumerIdentifier": (str, False), + "CreatedDate": (str, False), + "Status": (str, False), + "StatusChangeDate": (str, False), + } + + class NetworkInterface(AWSProperty): """ `NetworkInterface `__ diff --git a/troposphere/redshiftserverless.py b/troposphere/redshiftserverless.py index ff4c11e67..cb3788a91 100755 --- a/troposphere/redshiftserverless.py +++ b/troposphere/redshiftserverless.py @@ -49,6 +49,18 @@ class Namespace(AWSObject): } +class RecoveryPoint(AWSObject): + """ + `RecoveryPoint `__ + """ + + resource_type = "AWS::RedshiftServerless::RecoveryPoint" + + props: PropsDictType = { + "NamespaceName": (str, False), + } + + class Snapshot(AWSObject): """ `Snapshot `__ diff --git a/troposphere/rekognition.py b/troposphere/rekognition.py index 9525464c0..59cc1a942 100644 --- a/troposphere/rekognition.py +++ b/troposphere/rekognition.py @@ -25,6 +25,20 @@ class Collection(AWSObject): } +class Dataset(AWSObject): + """ + `Dataset `__ + """ + + resource_type = "AWS::Rekognition::Dataset" + + props: PropsDictType = { + "DatasetType": (str, True), + "ProjectArn": (str, False), + "Tags": (Tags, False), + } + + class Project(AWSObject): """ `Project `__ diff --git a/troposphere/route53resolver.py b/troposphere/route53resolver.py index c2db0838c..6e7fbfadd 100644 --- a/troposphere/route53resolver.py +++ b/troposphere/route53resolver.py @@ -11,6 +11,19 @@ from .validators.route53resolver import validate_ruletype +class FirewallConfig(AWSObject): + """ + `FirewallConfig `__ + """ + + resource_type = "AWS::Route53Resolver::FirewallConfig" + + props: PropsDictType = { + "FirewallFailOpen": (str, False), + "ResourceId": (str, False), + } + + class FirewallDomainList(AWSObject): """ `FirewallDomainList `__ @@ -46,6 +59,16 @@ class FirewallAdvancedThreatCategoryConfig(AWSProperty): } +class PartnerThreatProtectionConfig(AWSProperty): + """ + `PartnerThreatProtectionConfig `__ + """ + + props: PropsDictType = { + "Partner": (str, True), + } + + class FirewallRuleType(AWSProperty): """ `FirewallRuleType `__ @@ -57,6 +80,7 @@ class FirewallRuleType(AWSProperty): False, ), "FirewallAdvancedThreatCategory": (FirewallAdvancedThreatCategoryConfig, False), + "PartnerThreatProtection": (PartnerThreatProtectionConfig, False), } @@ -79,6 +103,7 @@ class FirewallRule(AWSProperty): "FirewallThreatProtectionId": (str, False), "Priority": (integer, True), "Qtype": (str, False), + "Status": (str, False), } diff --git a/troposphere/sagemaker.py b/troposphere/sagemaker.py index 19a70e66b..35091c831 100644 --- a/troposphere/sagemaker.py +++ b/troposphere/sagemaker.py @@ -10,6 +10,50 @@ from .validators import boolean, double, integer +class ActionSource(AWSProperty): + """ + `ActionSource `__ + """ + + props: PropsDictType = { + "SourceId": (str, False), + "SourceType": (str, False), + "SourceUri": (str, True), + } + + +class MetadataProperties(AWSProperty): + """ + `MetadataProperties `__ + """ + + props: PropsDictType = { + "CommitId": (str, False), + "GeneratedBy": (str, False), + "ProjectId": (str, False), + "Repository": (str, False), + } + + +class Action(AWSObject): + """ + `Action `__ + """ + + resource_type = "AWS::SageMaker::Action" + + props: PropsDictType = { + "ActionName": (str, True), + "ActionType": (str, True), + "Description": (str, False), + "MetadataProperties": (MetadataProperties, False), + "Properties": (dict, False), + "Source": (ActionSource, True), + "Status": (str, False), + "Tags": (Tags, False), + } + + class ModelAccessConfig(AWSProperty): """ `ModelAccessConfig `__ @@ -183,7 +227,7 @@ class HyperParameterTuningJobObjective(AWSProperty): class MetricDefinition(AWSProperty): """ - `MetricDefinition `__ + `MetricDefinition `__ """ props: PropsDictType = { @@ -239,6 +283,7 @@ class ResourceSpec(AWSProperty): "LifecycleConfigArn": (str, False), "SageMakerImageArn": (str, False), "SageMakerImageVersionArn": (str, False), + "TrainingPlanArn": (str, False), } @@ -356,138 +401,208 @@ class AppImageConfig(AWSObject): } -class ClusterAutoScalingConfig(AWSProperty): +class ArtifactSourceType(AWSProperty): """ - `ClusterAutoScalingConfig `__ + `ArtifactSourceType `__ """ props: PropsDictType = { - "AutoScalerType": (str, False), - "Mode": (str, True), + "SourceIdType": (str, True), + "Value": (str, True), } -class ClusterCapacityRequirements(AWSProperty): +class ArtifactSource(AWSProperty): """ - `ClusterCapacityRequirements `__ + `ArtifactSource `__ """ props: PropsDictType = { - "OnDemand": (dict, False), - "Spot": (dict, False), + "SourceTypes": ([ArtifactSourceType], False), + "SourceUri": (str, True), } -class ClusterEbsVolumeConfig(AWSProperty): +class Artifact(AWSObject): """ - `ClusterEbsVolumeConfig `__ + `Artifact `__ """ + resource_type = "AWS::SageMaker::Artifact" + props: PropsDictType = { - "RootVolume": (boolean, False), - "VolumeKmsKeyId": (str, False), - "VolumeSizeInGB": (integer, False), + "ArtifactName": (str, False), + "ArtifactType": (str, True), + "MetadataProperties": (MetadataProperties, False), + "Properties": (dict, False), + "Source": (ArtifactSource, True), + "Tags": (Tags, False), } -class ClusterFsxLustreConfig(AWSProperty): +class AutoMLS3DataSource(AWSProperty): """ - `ClusterFsxLustreConfig `__ + `AutoMLS3DataSource `__ """ props: PropsDictType = { - "DnsName": (str, True), - "MountName": (str, True), - "MountPath": (str, False), + "S3DataType": (str, True), + "S3Uri": (str, True), } -class ClusterFsxOpenZfsConfig(AWSProperty): +class AutoMLDataSource(AWSProperty): """ - `ClusterFsxOpenZfsConfig `__ + `AutoMLDataSource `__ """ props: PropsDictType = { - "DnsName": (str, True), - "MountPath": (str, False), + "S3DataSource": (AutoMLS3DataSource, True), } -class ClusterInstanceStorageConfig(AWSProperty): +class AutoMLChannel(AWSProperty): """ - `ClusterInstanceStorageConfig `__ + `AutoMLChannel `__ """ props: PropsDictType = { - "EbsVolumeConfig": (ClusterEbsVolumeConfig, False), - "FsxLustreConfig": (ClusterFsxLustreConfig, False), - "FsxOpenZfsConfig": (ClusterFsxOpenZfsConfig, False), + "ChannelType": (str, False), + "CompressionType": (str, False), + "ContentType": (str, False), + "DataSource": (AutoMLDataSource, False), + "TargetAttributeName": (str, True), } -class ClusterKubernetesTaint(AWSProperty): +class AutoMLAlgorithmConfig(AWSProperty): """ - `ClusterKubernetesTaint `__ + `AutoMLAlgorithmConfig `__ """ props: PropsDictType = { - "Effect": (str, True), - "Key": (str, True), - "Value": (str, False), + "AutoMLAlgorithms": ([str], True), } -class ClusterKubernetesConfig(AWSProperty): +class AutoMLCandidateGenerationConfig(AWSProperty): """ - `ClusterKubernetesConfig `__ + `AutoMLCandidateGenerationConfig `__ """ props: PropsDictType = { - "Labels": (dict, False), - "Taints": ([ClusterKubernetesTaint], False), + "AlgorithmsConfig": ([AutoMLAlgorithmConfig], False), + "FeatureSpecificationS3Uri": (str, False), } -class ClusterLifeCycleConfig(AWSProperty): +class AutoMLDataSplitConfig(AWSProperty): """ - `ClusterLifeCycleConfig `__ + `AutoMLDataSplitConfig `__ """ props: PropsDictType = { - "OnCreate": (str, False), - "OnInitComplete": (str, False), - "SourceS3Uri": (str, False), + "ValidationFraction": (double, False), } -class ClusterNetworkInterface(AWSProperty): +class AutoMLJobCompletionCriteria(AWSProperty): """ - `ClusterNetworkInterface `__ + `AutoMLJobCompletionCriteria `__ """ props: PropsDictType = { - "InterfaceType": (str, True), + "MaxAutoMLJobRuntimeInSeconds": (integer, False), + "MaxCandidates": (integer, False), + "MaxRuntimePerTrainingJobInSeconds": (integer, False), } -class ClusterSlurmConfig(AWSProperty): +class VpcConfig(AWSProperty): """ - `ClusterSlurmConfig `__ + `VpcConfig `__ """ props: PropsDictType = { - "NodeType": (str, True), - "PartitionNames": ([str], False), + "SecurityGroupIds": ([str], True), + "Subnets": ([str], True), } -class InstanceRequirements(AWSProperty): +class AutoMLSecurityConfig(AWSProperty): """ - `InstanceRequirements `__ + `AutoMLSecurityConfig `__ """ props: PropsDictType = { - "InstanceTypes": ([str], True), + "EnableInterContainerTrafficEncryption": (boolean, False), + "VolumeKmsKeyId": (str, False), + "VpcConfig": (VpcConfig, False), + } + + +class AutoMLJobConfig(AWSProperty): + """ + `AutoMLJobConfig `__ + """ + + props: PropsDictType = { + "CandidateGenerationConfig": (AutoMLCandidateGenerationConfig, False), + "CompletionCriteria": (AutoMLJobCompletionCriteria, False), + "DataSplitConfig": (AutoMLDataSplitConfig, False), + "Mode": (str, False), + "SecurityConfig": (AutoMLSecurityConfig, False), + } + + +class AutoMLJobObjective(AWSProperty): + """ + `AutoMLJobObjective `__ + """ + + props: PropsDictType = { + "MetricName": (str, True), + } + + +class AutoMLOutputDataConfig(AWSProperty): + """ + `AutoMLOutputDataConfig `__ + """ + + props: PropsDictType = { + "KmsKeyId": (str, False), + "S3OutputPath": (str, True), + } + + +class AutoMLJob(AWSObject): + """ + `AutoMLJob `__ + """ + + resource_type = "AWS::SageMaker::AutoMLJob" + + props: PropsDictType = { + "AutoMLJobConfig": (AutoMLJobConfig, False), + "AutoMLJobObjective": (AutoMLJobObjective, False), + "GenerateCandidateDefinitionsOnly": (boolean, False), + "InputDataConfig": ([AutoMLChannel], False), + "OutputDataConfig": (AutoMLOutputDataConfig, False), + "ProblemType": (str, False), + "RoleArn": (str, False), + "Tags": (Tags, False), + } + + +class ClusterAutoScalingConfig(AWSProperty): + """ + `ClusterAutoScalingConfig `__ + """ + + props: PropsDictType = { + "AutoScalerType": (str, False), + "Mode": (str, True), } @@ -572,157 +687,293 @@ class DeploymentConfig(AWSProperty): } -class ScheduledUpdateConfig(AWSProperty): +class PatchSchedule(AWSProperty): """ - `ScheduledUpdateConfig `__ + `PatchSchedule `__ """ props: PropsDictType = { - "DeploymentConfig": (DeploymentConfig, False), - "ScheduleExpression": (str, True), + "NextPatchDate": (str, False), } -class VpcConfig(AWSProperty): +class AutoPatchConfig(AWSProperty): """ - `VpcConfig `__ + `AutoPatchConfig `__ """ props: PropsDictType = { - "SecurityGroupIds": ([str], True), - "Subnets": ([str], True), + "DeploymentConfig": (DeploymentConfig, False), + "PatchSchedule": (PatchSchedule, False), + "PatchingStrategy": (str, True), } -class ClusterInstanceGroup(AWSProperty): +class ClusterCapacityRequirements(AWSProperty): """ - `ClusterInstanceGroup `__ + `ClusterCapacityRequirements `__ """ props: PropsDictType = { - "CapacityRequirements": (ClusterCapacityRequirements, False), - "CurrentCount": (integer, False), - "ExecutionRole": (str, True), - "ImageId": (str, False), - "InstanceCount": (integer, True), - "InstanceGroupName": (str, True), - "InstanceRequirements": (InstanceRequirements, False), - "InstanceStorageConfigs": ([ClusterInstanceStorageConfig], False), - "InstanceType": (str, False), - "KubernetesConfig": (ClusterKubernetesConfig, False), - "LifeCycleConfig": (ClusterLifeCycleConfig, False), - "MinInstanceCount": (integer, False), - "NetworkInterface": (ClusterNetworkInterface, False), - "OnStartDeepHealthChecks": ([str], False), - "OverrideVpcConfig": (VpcConfig, False), - "ScheduledUpdateConfig": (ScheduledUpdateConfig, False), - "SlurmConfig": (ClusterSlurmConfig, False), - "ThreadsPerCore": (integer, False), - "TrainingPlanArn": (str, False), + "OnDemand": (dict, False), + "Spot": (dict, False), } -class FSxLustreConfig(AWSProperty): +class ClusterEbsVolumeConfig(AWSProperty): """ - `FSxLustreConfig `__ + `ClusterEbsVolumeConfig `__ """ props: PropsDictType = { - "PerUnitStorageThroughput": (integer, True), - "SizeInGiB": (integer, True), + "RootVolume": (boolean, False), + "VolumeKmsKeyId": (str, False), + "VolumeSizeInGB": (integer, False), } -class EnvironmentConfig(AWSProperty): +class ClusterFsxLustreConfig(AWSProperty): """ - `EnvironmentConfig `__ + `ClusterFsxLustreConfig `__ """ props: PropsDictType = { - "FSxLustreConfig": (FSxLustreConfig, False), + "DnsName": (str, True), + "MountName": (str, True), + "MountPath": (str, False), } -class ClusterRestrictedInstanceGroup(AWSProperty): +class ClusterFsxOpenZfsConfig(AWSProperty): """ - `ClusterRestrictedInstanceGroup `__ + `ClusterFsxOpenZfsConfig `__ """ props: PropsDictType = { - "CurrentCount": (integer, False), - "EnvironmentConfig": (EnvironmentConfig, False), - "ExecutionRole": (str, True), - "InstanceCount": (integer, True), - "InstanceGroupName": (str, True), - "InstanceStorageConfigs": ([ClusterInstanceStorageConfig], False), - "InstanceType": (str, True), - "OnStartDeepHealthChecks": ([str], False), - "OverrideVpcConfig": (VpcConfig, False), - "ThreadsPerCore": (integer, False), - "TrainingPlanArn": (str, False), + "DnsName": (str, True), + "MountPath": (str, False), } -class ClusterOrchestratorEksConfig(AWSProperty): +class ClusterInstanceStorageConfig(AWSProperty): """ - `ClusterOrchestratorEksConfig `__ + `ClusterInstanceStorageConfig `__ """ props: PropsDictType = { - "ClusterArn": (str, True), + "EbsVolumeConfig": (ClusterEbsVolumeConfig, False), + "FsxLustreConfig": (ClusterFsxLustreConfig, False), + "FsxOpenZfsConfig": (ClusterFsxOpenZfsConfig, False), } -class ClusterOrchestratorSlurmConfig(AWSProperty): +class ClusterKubernetesTaint(AWSProperty): """ - `ClusterOrchestratorSlurmConfig `__ + `ClusterKubernetesTaint `__ """ props: PropsDictType = { - "SlurmConfigStrategy": (str, False), + "Effect": (str, True), + "Key": (str, True), + "Value": (str, False), } -class Orchestrator(AWSProperty): +class ClusterKubernetesConfig(AWSProperty): """ - `Orchestrator `__ + `ClusterKubernetesConfig `__ """ props: PropsDictType = { - "Eks": (ClusterOrchestratorEksConfig, False), - "Slurm": (ClusterOrchestratorSlurmConfig, False), + "Labels": (dict, False), + "Taints": ([ClusterKubernetesTaint], False), } -class SharedEnvironmentConfig(AWSProperty): +class ClusterLifeCycleConfig(AWSProperty): """ - `SharedEnvironmentConfig `__ + `ClusterLifeCycleConfig `__ """ props: PropsDictType = { - "FSxLustreConfig": (FSxLustreConfig, False), - "FSxLustreDeletionPolicy": (str, True), + "OnCreate": (str, False), + "OnInitComplete": (str, False), + "SourceS3Uri": (str, False), } -class RestrictedInstanceGroupsConfig(AWSProperty): +class ClusterNetworkInterface(AWSProperty): """ - `RestrictedInstanceGroupsConfig `__ + `ClusterNetworkInterface `__ """ props: PropsDictType = { - "SharedEnvironmentConfig": (SharedEnvironmentConfig, True), + "InterfaceType": (str, True), } -class TieredStorageConfig(AWSProperty): +class ClusterSlurmConfig(AWSProperty): """ - `TieredStorageConfig `__ + `ClusterSlurmConfig `__ """ props: PropsDictType = { - "InstanceMemoryAllocationPercentage": (integer, False), - "Mode": (str, True), + "NodeType": (str, True), + "PartitionNames": ([str], False), + } + + +class InstanceRequirements(AWSProperty): + """ + `InstanceRequirements `__ + """ + + props: PropsDictType = { + "InstanceTypes": ([str], True), + } + + +class ScheduledUpdateConfig(AWSProperty): + """ + `ScheduledUpdateConfig `__ + """ + + props: PropsDictType = { + "DeploymentConfig": (DeploymentConfig, False), + "ScheduleExpression": (str, True), + } + + +class ClusterInstanceGroup(AWSProperty): + """ + `ClusterInstanceGroup `__ + """ + + props: PropsDictType = { + "AutoPatchConfig": (AutoPatchConfig, False), + "CapacityRequirements": (ClusterCapacityRequirements, False), + "CurrentCount": (integer, False), + "ExecutionRole": (str, True), + "ImageId": (str, False), + "InstanceCount": (integer, True), + "InstanceGroupName": (str, True), + "InstanceRequirements": (InstanceRequirements, False), + "InstanceStorageConfigs": ([ClusterInstanceStorageConfig], False), + "InstanceType": (str, False), + "KubernetesConfig": (ClusterKubernetesConfig, False), + "LifeCycleConfig": (ClusterLifeCycleConfig, False), + "MinInstanceCount": (integer, False), + "NetworkInterface": (ClusterNetworkInterface, False), + "OnStartDeepHealthChecks": ([str], False), + "OverrideVpcConfig": (VpcConfig, False), + "ScheduledUpdateConfig": (ScheduledUpdateConfig, False), + "SlurmConfig": (ClusterSlurmConfig, False), + "ThreadsPerCore": (integer, False), + "TrainingPlanArn": (str, False), + } + + +class FSxLustreConfig(AWSProperty): + """ + `FSxLustreConfig `__ + """ + + props: PropsDictType = { + "PerUnitStorageThroughput": (integer, True), + "SizeInGiB": (integer, True), + } + + +class EnvironmentConfig(AWSProperty): + """ + `EnvironmentConfig `__ + """ + + props: PropsDictType = { + "FSxLustreConfig": (FSxLustreConfig, False), + } + + +class ClusterRestrictedInstanceGroup(AWSProperty): + """ + `ClusterRestrictedInstanceGroup `__ + """ + + props: PropsDictType = { + "CurrentCount": (integer, False), + "EnvironmentConfig": (EnvironmentConfig, False), + "ExecutionRole": (str, True), + "InstanceCount": (integer, True), + "InstanceGroupName": (str, True), + "InstanceStorageConfigs": ([ClusterInstanceStorageConfig], False), + "InstanceType": (str, True), + "OnStartDeepHealthChecks": ([str], False), + "OverrideVpcConfig": (VpcConfig, False), + "ThreadsPerCore": (integer, False), + "TrainingPlanArn": (str, False), + } + + +class ClusterOrchestratorEksConfig(AWSProperty): + """ + `ClusterOrchestratorEksConfig `__ + """ + + props: PropsDictType = { + "ClusterArn": (str, True), + } + + +class ClusterOrchestratorSlurmConfig(AWSProperty): + """ + `ClusterOrchestratorSlurmConfig `__ + """ + + props: PropsDictType = { + "SlurmConfigStrategy": (str, False), + } + + +class Orchestrator(AWSProperty): + """ + `Orchestrator `__ + """ + + props: PropsDictType = { + "Eks": (ClusterOrchestratorEksConfig, False), + "Slurm": (ClusterOrchestratorSlurmConfig, False), + } + + +class SharedEnvironmentConfig(AWSProperty): + """ + `SharedEnvironmentConfig `__ + """ + + props: PropsDictType = { + "FSxLustreConfig": (FSxLustreConfig, False), + "FSxLustreDeletionPolicy": (str, True), + } + + +class RestrictedInstanceGroupsConfig(AWSProperty): + """ + `RestrictedInstanceGroupsConfig `__ + """ + + props: PropsDictType = { + "SharedEnvironmentConfig": (SharedEnvironmentConfig, True), + } + + +class TieredStorageConfig(AWSProperty): + """ + `TieredStorageConfig `__ + """ + + props: PropsDictType = { + "InstanceMemoryAllocationPercentage": (integer, False), + "Mode": (str, True), } @@ -775,6 +1026,46 @@ class CodeRepository(AWSObject): } +class Source(AWSProperty): + """ + `Source `__ + """ + + props: PropsDictType = { + "SourceId": (str, False), + "SourceType": (str, False), + "SourceUri": (str, True), + } + + +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class Context(AWSObject): + """ + `Context `__ + """ + + resource_type = "AWS::SageMaker::Context" + + props: PropsDictType = { + "ContextName": (str, True), + "ContextType": (str, True), + "Description": (str, False), + "Properties": (dict, False), + "Source": (Source, True), + "Tags": ([TagsItems], False), + } + + class DataQualityAppSpecification(AWSProperty): """ `DataQualityAppSpecification `__ @@ -964,11 +1255,13 @@ class NetworkConfig(AWSProperty): class StoppingCondition(AWSProperty): """ - `StoppingCondition `__ + `StoppingCondition `__ """ props: PropsDictType = { - "MaxRuntimeInSeconds": (integer, True), + "MaxPendingTimeInSeconds": (integer, False), + "MaxRuntimeInSeconds": (integer, False), + "MaxWaitTimeInSeconds": (integer, False), } @@ -1169,6 +1462,17 @@ class CustomImage(AWSProperty): } +class EmrSettings(AWSProperty): + """ + `EmrSettings `__ + """ + + props: PropsDictType = { + "AssumableRoleArns": ([str], False), + "ExecutionRoleArns": ([str], False), + } + + class JupyterLabAppSettings(AWSProperty): """ `JupyterLabAppSettings `__ @@ -1180,6 +1484,7 @@ class JupyterLabAppSettings(AWSProperty): "CodeRepositories": ([CodeRepositoryProperty], False), "CustomImages": ([CustomImage], False), "DefaultResourceSpec": (ResourceSpec, False), + "EmrSettings": (EmrSettings, False), "LifecycleConfigArns": ([str], False), } @@ -1408,7 +1713,6 @@ class Endpoint(AWSObject): props: PropsDictType = { "DeploymentConfig": (DeploymentConfig, False), "EndpointConfigName": (str, True), - "EndpointName": (str, False), "ExcludeRetainedVariantProperties": ([VariantProperty], False), "RetainAllVariantProperties": (boolean, False), "RetainDeploymentConfig": (boolean, False), @@ -1462,38 +1766,14 @@ class AsyncInferenceConfig(AWSProperty): } -class CaptureContentTypeHeader(AWSProperty): - """ - `CaptureContentTypeHeader `__ - """ - - props: PropsDictType = { - "CsvContentTypes": ([str], False), - "JsonContentTypes": ([str], False), - } - - -class CaptureOption(AWSProperty): - """ - `CaptureOption `__ - """ - - props: PropsDictType = { - "CaptureMode": (str, True), - } - - class DataCaptureConfig(AWSProperty): """ - `DataCaptureConfig `__ + `DataCaptureConfig `__ """ props: PropsDictType = { - "CaptureContentTypeHeader": (CaptureContentTypeHeader, False), - "CaptureOptions": ([CaptureOption], True), "DestinationS3Uri": (str, True), - "EnableCapture": (boolean, False), - "InitialSamplingPercentage": (integer, True), + "GenerateInferenceId": (boolean, False), "KmsKeyId": (str, False), } @@ -1681,6 +1961,21 @@ class EndpointConfig(AWSObject): } +class Experiment(AWSObject): + """ + `Experiment `__ + """ + + resource_type = "AWS::SageMaker::Experiment" + + props: PropsDictType = { + "Description": (str, False), + "DisplayName": (str, False), + "ExperimentName": (str, True), + "Tags": ([TagsItems], False), + } + + class FeatureDefinition(AWSProperty): """ `FeatureDefinition `__ @@ -1811,6 +2106,30 @@ class Hub(AWSObject): } +class UiTemplate(AWSProperty): + """ + `UiTemplate `__ + """ + + props: PropsDictType = { + "Content": (str, True), + } + + +class HumanTaskUi(AWSObject): + """ + `HumanTaskUi `__ + """ + + resource_type = "AWS::SageMaker::HumanTaskUi" + + props: PropsDictType = { + "HumanTaskUiName": (str, True), + "Tags": (Tags, False), + "UiTemplate": (UiTemplate, False), + } + + class Image(AWSObject): """ `Image `__ @@ -1991,6 +2310,17 @@ class InferenceComponent(AWSObject): } +class CaptureContentTypeHeader(AWSProperty): + """ + `CaptureContentTypeHeader `__ + """ + + props: PropsDictType = { + "CsvContentTypes": ([str], False), + "JsonContentTypes": ([str], False), + } + + class DataStorageConfig(AWSProperty): """ `DataStorageConfig `__ @@ -2556,15 +2886,25 @@ class SecurityConfig(AWSProperty): } +class IamIdentity(AWSProperty): + """ + `IamIdentity `__ + """ + + props: PropsDictType = { + "Arn": (str, False), + "PrincipalId": (str, False), + "SourceIdentity": (str, False), + } + + class UserContext(AWSProperty): """ - `UserContext `__ + `UserContext `__ """ props: PropsDictType = { - "DomainId": (str, False), - "UserProfileArn": (str, False), - "UserProfileName": (str, False), + "IamIdentity": (IamIdentity, False), } @@ -2784,19 +3124,6 @@ class DriftCheckBaselines(AWSProperty): } -class MetadataProperties(AWSProperty): - """ - `MetadataProperties `__ - """ - - props: PropsDictType = { - "CommitId": (str, False), - "GeneratedBy": (str, False), - "ProjectId": (str, False), - "Repository": (str, False), - } - - class ModelCardProperty(AWSProperty): """ `ModelCardProperty `__ @@ -2899,7 +3226,7 @@ class SourceAlgorithmSpecification(AWSProperty): class S3DataSource(AWSProperty): """ - `S3DataSource `__ + `S3DataSource `__ """ props: PropsDictType = { @@ -2910,7 +3237,7 @@ class S3DataSource(AWSProperty): class DataSource(AWSProperty): """ - `DataSource `__ + `DataSource `__ """ props: PropsDictType = { @@ -2920,7 +3247,7 @@ class DataSource(AWSProperty): class TransformInput(AWSProperty): """ - `TransformInput `__ + `TransformInput `__ """ props: PropsDictType = { @@ -2933,7 +3260,7 @@ class TransformInput(AWSProperty): class TransformOutput(AWSProperty): """ - `TransformOutput `__ + `TransformOutput `__ """ props: PropsDictType = { @@ -2946,7 +3273,7 @@ class TransformOutput(AWSProperty): class TransformResources(AWSProperty): """ - `TransformResources `__ + `TransformResources `__ """ props: PropsDictType = { @@ -3245,6 +3572,21 @@ class MonitoringSchedule(AWSObject): } +class MonitoringScheduleAlert(AWSObject): + """ + `MonitoringScheduleAlert `__ + """ + + resource_type = "AWS::SageMaker::MonitoringScheduleAlert" + + props: PropsDictType = { + "DatapointsToAlert": (integer, True), + "EvaluationPeriod": (integer, True), + "MonitoringAlertName": (str, True), + "MonitoringScheduleName": (str, True), + } + + class InstanceMetadataServiceConfiguration(AWSProperty): """ `InstanceMetadataServiceConfiguration `__ @@ -3309,6 +3651,114 @@ class NotebookInstanceLifecycleConfig(AWSObject): } +class ModelCompilationConfig(AWSProperty): + """ + `ModelCompilationConfig `__ + """ + + props: PropsDictType = { + "Image": (str, False), + "OverrideEnvironment": (dict, False), + } + + +class ModelQuantizationConfig(AWSProperty): + """ + `ModelQuantizationConfig `__ + """ + + props: PropsDictType = { + "Image": (str, False), + "OverrideEnvironment": (dict, False), + } + + +class ModelShardingConfig(AWSProperty): + """ + `ModelShardingConfig `__ + """ + + props: PropsDictType = { + "Image": (str, False), + "OverrideEnvironment": (dict, False), + } + + +class OptimizationConfig(AWSProperty): + """ + `OptimizationConfig `__ + """ + + props: PropsDictType = { + "ModelCompilationConfig": (ModelCompilationConfig, False), + "ModelQuantizationConfig": (ModelQuantizationConfig, False), + "ModelShardingConfig": (ModelShardingConfig, False), + } + + +class OptimizationJobModelSourceS3(AWSProperty): + """ + `OptimizationJobModelSourceS3 `__ + """ + + props: PropsDictType = { + "S3Uri": (str, False), + } + + +class OptimizationJobModelSource(AWSProperty): + """ + `OptimizationJobModelSource `__ + """ + + props: PropsDictType = { + "S3": (OptimizationJobModelSourceS3, False), + } + + +class OptimizationJobOutputConfig(AWSProperty): + """ + `OptimizationJobOutputConfig `__ + """ + + props: PropsDictType = { + "KmsKeyId": (str, False), + "S3OutputLocation": (str, False), + } + + +class OptimizationVpcConfig(AWSProperty): + """ + `OptimizationVpcConfig `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "Subnets": ([str], True), + } + + +class OptimizationJob(AWSObject): + """ + `OptimizationJob `__ + """ + + resource_type = "AWS::SageMaker::OptimizationJob" + + props: PropsDictType = { + "DeploymentInstanceType": (str, True), + "ModelSource": (OptimizationJobModelSource, True), + "OptimizationConfigs": ([OptimizationConfig], True), + "OptimizationEnvironment": (dict, False), + "OptimizationJobName": (str, True), + "OutputConfig": (OptimizationJobOutputConfig, True), + "RoleArn": (str, True), + "StoppingCondition": (StoppingCondition, True), + "Tags": (Tags, False), + "VpcConfig": (OptimizationVpcConfig, False), + } + + class PartnerAppConfig(AWSProperty): """ `PartnerAppConfig `__ @@ -3355,7 +3805,7 @@ class PartnerApp(AWSObject): class ParallelismConfiguration(AWSProperty): """ - `ParallelismConfiguration `__ + `ParallelismConfiguration `__ """ props: PropsDictType = { @@ -3405,6 +3855,16 @@ class Pipeline(AWSObject): } +class PipelineExecution(AWSObject): + """ + `PipelineExecution `__ + """ + + resource_type = "AWS::SageMaker::PipelineExecution" + + props: PropsDictType = {} + + class AppSpecification(AWSProperty): """ `AppSpecification `__ @@ -3419,12 +3879,11 @@ class AppSpecification(AWSProperty): class ExperimentConfig(AWSProperty): """ - `ExperimentConfig `__ + `ExperimentConfig `__ """ props: PropsDictType = { "ExperimentName": (str, False), - "RunName": (str, False), "TrialComponentDisplayName": (str, False), "TrialName": (str, False), } @@ -3838,6 +4297,364 @@ class StudioLifecycleConfig(AWSObject): } +class TrainingRepositoryAuthConfig(AWSProperty): + """ + `TrainingRepositoryAuthConfig `__ + """ + + props: PropsDictType = { + "TrainingRepositoryCredentialsProviderArn": (str, True), + } + + +class TrainingImageConfig(AWSProperty): + """ + `TrainingImageConfig `__ + """ + + props: PropsDictType = { + "TrainingRepositoryAccessMode": (str, True), + "TrainingRepositoryAuthConfig": (TrainingRepositoryAuthConfig, False), + } + + +class AlgorithmSpecification(AWSProperty): + """ + `AlgorithmSpecification `__ + """ + + props: PropsDictType = { + "AlgorithmName": (str, False), + "ContainerArguments": ([str], False), + "ContainerEntrypoint": ([str], False), + "EnableSageMakerMetricsTimeSeries": (boolean, False), + "MetricDefinitions": ([MetricDefinition], False), + "TrainingImage": (str, False), + "TrainingImageConfig": (TrainingImageConfig, False), + "TrainingInputMode": (str, True), + } + + +class ShuffleConfig(AWSProperty): + """ + `ShuffleConfig `__ + """ + + props: PropsDictType = { + "Seed": (integer, True), + } + + +class Channel(AWSProperty): + """ + `Channel `__ + """ + + props: PropsDictType = { + "ChannelName": (str, True), + "CompressionType": (str, False), + "ContentType": (str, False), + "DataSource": (DataSource, True), + "InputMode": (str, False), + "RecordWrapperType": (str, False), + "ShuffleConfig": (ShuffleConfig, False), + } + + +class CheckpointConfig(AWSProperty): + """ + `CheckpointConfig `__ + """ + + props: PropsDictType = { + "LocalPath": (str, False), + "S3Uri": (str, True), + } + + +class CollectionConfiguration(AWSProperty): + """ + `CollectionConfiguration `__ + """ + + props: PropsDictType = { + "CollectionName": (str, False), + "CollectionParameters": (dict, False), + } + + +class DebugHookConfig(AWSProperty): + """ + `DebugHookConfig `__ + """ + + props: PropsDictType = { + "CollectionConfigurations": ([CollectionConfiguration], False), + "HookParameters": (dict, False), + "LocalPath": (str, False), + "S3OutputPath": (str, True), + } + + +class DebugRuleConfiguration(AWSProperty): + """ + `DebugRuleConfiguration `__ + """ + + props: PropsDictType = { + "InstanceType": (str, False), + "LocalPath": (str, False), + "RuleConfigurationName": (str, True), + "RuleEvaluatorImage": (str, True), + "RuleParameters": (dict, False), + "S3OutputPath": (str, False), + "VolumeSizeInGB": (integer, False), + } + + +class InfraCheckConfig(AWSProperty): + """ + `InfraCheckConfig `__ + """ + + props: PropsDictType = { + "EnableInfraCheck": (boolean, False), + } + + +class OutputDataConfig(AWSProperty): + """ + `OutputDataConfig `__ + """ + + props: PropsDictType = { + "CompressionType": (str, False), + "KmsKeyId": (str, False), + "S3OutputPath": (str, True), + } + + +class ProfilerConfig(AWSProperty): + """ + `ProfilerConfig `__ + """ + + props: PropsDictType = { + "DisableProfiler": (boolean, False), + "ProfilingIntervalInMilliseconds": (integer, False), + "ProfilingParameters": (dict, False), + "S3OutputPath": (str, False), + } + + +class ProfilerRuleConfiguration(AWSProperty): + """ + `ProfilerRuleConfiguration `__ + """ + + props: PropsDictType = { + "InstanceType": (str, False), + "LocalPath": (str, False), + "RuleConfigurationName": (str, True), + "RuleEvaluatorImage": (str, True), + "RuleParameters": (dict, False), + "S3OutputPath": (str, False), + "VolumeSizeInGB": (integer, False), + } + + +class RemoteDebugConfig(AWSProperty): + """ + `RemoteDebugConfig `__ + """ + + props: PropsDictType = { + "EnableRemoteDebug": (boolean, False), + } + + +class InstanceGroup(AWSProperty): + """ + `InstanceGroup `__ + """ + + props: PropsDictType = { + "InstanceCount": (integer, True), + "InstanceGroupName": (str, True), + "InstanceType": (str, True), + } + + +class ResourceConfig(AWSProperty): + """ + `ResourceConfig `__ + """ + + props: PropsDictType = { + "InstanceCount": (integer, False), + "InstanceGroups": ([InstanceGroup], False), + "InstanceType": (str, False), + "KeepAlivePeriodInSeconds": (integer, False), + "VolumeKmsKeyId": (str, False), + "VolumeSizeInGB": (integer, False), + } + + +class RetryStrategy(AWSProperty): + """ + `RetryStrategy `__ + """ + + props: PropsDictType = { + "MaximumRetryAttempts": (integer, True), + } + + +class TensorBoardOutputConfig(AWSProperty): + """ + `TensorBoardOutputConfig `__ + """ + + props: PropsDictType = { + "LocalPath": (str, False), + "S3OutputPath": (str, True), + } + + +class TrainingJob(AWSObject): + """ + `TrainingJob `__ + """ + + resource_type = "AWS::SageMaker::TrainingJob" + + props: PropsDictType = { + "AlgorithmSpecification": (AlgorithmSpecification, True), + "CheckpointConfig": (CheckpointConfig, False), + "DebugHookConfig": (DebugHookConfig, False), + "DebugRuleConfigurations": ([DebugRuleConfiguration], False), + "EnableInterContainerTrafficEncryption": (boolean, False), + "EnableManagedSpotTraining": (boolean, False), + "EnableNetworkIsolation": (boolean, False), + "Environment": (dict, False), + "ExperimentConfig": (ExperimentConfig, False), + "HyperParameters": (dict, False), + "InfraCheckConfig": (InfraCheckConfig, False), + "InputDataConfig": ([Channel], False), + "OutputDataConfig": (OutputDataConfig, True), + "ProfilerConfig": (ProfilerConfig, False), + "ProfilerRuleConfigurations": ([ProfilerRuleConfiguration], False), + "RemoteDebugConfig": (RemoteDebugConfig, False), + "ResourceConfig": (ResourceConfig, True), + "RetryStrategy": (RetryStrategy, False), + "RoleArn": (str, True), + "StoppingCondition": (StoppingCondition, True), + "Tags": (Tags, False), + "TensorBoardOutputConfig": (TensorBoardOutputConfig, False), + "TrainingJobName": (str, True), + "VpcConfig": (VpcConfig, False), + } + + +class DataProcessing(AWSProperty): + """ + `DataProcessing `__ + """ + + props: PropsDictType = { + "InputFilter": (str, False), + "JoinSource": (str, False), + "OutputFilter": (str, False), + } + + +class ModelClientConfig(AWSProperty): + """ + `ModelClientConfig `__ + """ + + props: PropsDictType = { + "InvocationsMaxRetries": (integer, False), + "InvocationsTimeoutInSeconds": (integer, False), + } + + +class TransformJob(AWSObject): + """ + `TransformJob `__ + """ + + resource_type = "AWS::SageMaker::TransformJob" + + props: PropsDictType = { + "BatchStrategy": (str, False), + "DataCaptureConfig": (DataCaptureConfig, False), + "DataProcessing": (DataProcessing, False), + "Environment": (dict, False), + "ExperimentConfig": (ExperimentConfig, False), + "MaxConcurrentTransforms": (integer, False), + "MaxPayloadInMB": (integer, False), + "ModelClientConfig": (ModelClientConfig, False), + "ModelName": (str, True), + "Tags": ([TagsItems], False), + "TransformInput": (TransformInput, True), + "TransformOutput": (TransformOutput, True), + "TransformResources": (TransformResources, True), + } + + +class TrialComponentArtifact(AWSProperty): + """ + `TrialComponentArtifact `__ + """ + + props: PropsDictType = { + "MediaType": (str, False), + "Value": (str, True), + } + + +class TrialComponentParameterValue(AWSProperty): + """ + `TrialComponentParameterValue `__ + """ + + props: PropsDictType = { + "NumberValue": (double, False), + "StringValue": (str, False), + } + + +class TrialComponentStatus(AWSProperty): + """ + `TrialComponentStatus `__ + """ + + props: PropsDictType = { + "Message": (str, False), + "PrimaryStatus": (str, False), + } + + +class TrialComponent(AWSObject): + """ + `TrialComponent `__ + """ + + resource_type = "AWS::SageMaker::TrialComponent" + + props: PropsDictType = { + "DisplayName": (str, False), + "InputArtifacts": (dict, False), + "MetadataProperties": (MetadataProperties, False), + "OutputArtifacts": (dict, False), + "Parameters": (dict, False), + "Status": (TrialComponentStatus, False), + "Tags": ([TagsItems], False), + "TrialComponentName": (str, True), + } + + class UserProfile(AWSObject): """ `UserProfile `__ @@ -3855,6 +4672,76 @@ class UserProfile(AWSObject): } +class CognitoConfig(AWSProperty): + """ + `CognitoConfig `__ + """ + + props: PropsDictType = { + "ClientId": (str, True), + "UserPool": (str, True), + } + + +class OidcConfig(AWSProperty): + """ + `OidcConfig `__ + """ + + props: PropsDictType = { + "AuthenticationRequestExtraParams": (dict, False), + "AuthorizationEndpoint": (str, True), + "ClientId": (str, True), + "ClientSecret": (str, False), + "Issuer": (str, True), + "JwksUri": (str, True), + "LogoutEndpoint": (str, True), + "Scope": (str, False), + "TokenEndpoint": (str, True), + "UserInfoEndpoint": (str, True), + } + + +class SourceIpConfig(AWSProperty): + """ + `SourceIpConfig `__ + """ + + props: PropsDictType = { + "Cidrs": ([str], True), + } + + +class WorkforceVpcConfigRequest(AWSProperty): + """ + `WorkforceVpcConfigRequest `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], False), + "Subnets": ([str], False), + "VpcId": (str, False), + } + + +class Workforce(AWSObject): + """ + `Workforce `__ + """ + + resource_type = "AWS::SageMaker::Workforce" + + props: PropsDictType = { + "CognitoConfig": (CognitoConfig, False), + "IpAddressType": (str, False), + "OidcConfig": (OidcConfig, False), + "SourceIpConfig": (SourceIpConfig, False), + "Tags": (Tags, False), + "WorkforceName": (str, True), + "WorkforceVpcConfig": (WorkforceVpcConfigRequest, False), + } + + class CognitoMemberDefinition(AWSProperty): """ `CognitoMemberDefinition `__ @@ -3936,6 +4823,16 @@ class CapacitySizeConfig(AWSProperty): } +class CaptureOption(AWSProperty): + """ + `CaptureOption `__ + """ + + props: PropsDictType = { + "CaptureMode": (str, True), + } + + class Container(AWSProperty): """ `Container `__ @@ -3960,6 +4857,19 @@ class EndpointMetadata(AWSProperty): } +class FileSystemDataSource(AWSProperty): + """ + `FileSystemDataSource `__ + """ + + props: PropsDictType = { + "DirectoryPath": (str, True), + "FileSystemAccessMode": (str, True), + "FileSystemId": (str, True), + "FileSystemType": (str, True), + } + + class HubAccessConfig(AWSProperty): """ `HubAccessConfig `__ @@ -3980,6 +4890,26 @@ class ModelCardExportArtifacts(AWSProperty): } +class ModelDashboardIndicatorAction(AWSProperty): + """ + `ModelDashboardIndicatorAction `__ + """ + + props: PropsDictType = { + "Enabled": (boolean, False), + } + + +class MonitoringAlertActions(AWSProperty): + """ + `MonitoringAlertActions `__ + """ + + props: PropsDictType = { + "ModelDashboardIndicator": (ModelDashboardIndicatorAction, False), + } + + class RSessionAppSettings(AWSProperty): """ `RSessionAppSettings `__ @@ -3989,3 +4919,16 @@ class RSessionAppSettings(AWSProperty): "CustomImages": ([CustomImage], False), "DefaultResourceSpec": (ResourceSpec, False), } + + +class SecondaryStatusTransition(AWSProperty): + """ + `SecondaryStatusTransition `__ + """ + + props: PropsDictType = { + "EndTime": (str, False), + "StartTime": (str, True), + "Status": (str, True), + "StatusMessage": (str, False), + } diff --git a/troposphere/securityhub.py b/troposphere/securityhub.py index 8c71d9276..e2c142eb4 100644 --- a/troposphere/securityhub.py +++ b/troposphere/securityhub.py @@ -459,6 +459,29 @@ class ConfigurationPolicy(AWSObject): } +class AzureScopeConfiguration(AWSProperty): + """ + `AzureScopeConfiguration `__ + """ + + props: PropsDictType = { + "ScopeType": (str, True), + "ScopeValues": ([str], False), + } + + +class AzureProviderConfiguration(AWSProperty): + """ + `AzureProviderConfiguration `__ + """ + + props: PropsDictType = { + "AWSConfigConnectorArn": (str, True), + "AzureRegions": ([str], True), + "ScopeConfiguration": (AzureScopeConfiguration, True), + } + + class JiraCloudProviderConfiguration(AWSProperty): """ `JiraCloudProviderConfiguration `__ @@ -486,11 +509,27 @@ class Provider(AWSProperty): """ props: PropsDictType = { + "Azure": (AzureProviderConfiguration, False), "JiraCloud": (JiraCloudProviderConfiguration, False), "ServiceNow": (ServiceNowProviderConfiguration, False), } +class Connector(AWSObject): + """ + `Connector `__ + """ + + resource_type = "AWS::SecurityHub::Connector" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Provider": (Provider, True), + "Tags": (dict, False), + } + + class ConnectorV2(AWSObject): """ `ConnectorV2 `__ @@ -769,3 +808,14 @@ class Standard(AWSObject): "DisabledStandardsControls": ([StandardsControl], False), "StandardsArn": (str, True), } + + +class HealthIssue(AWSProperty): + """ + `HealthIssue `__ + """ + + props: PropsDictType = { + "Code": (str, True), + "Message": (str, True), + } diff --git a/troposphere/servicecatalog.py b/troposphere/servicecatalog.py index 3866ce3f9..afd9771b0 100644 --- a/troposphere/servicecatalog.py +++ b/troposphere/servicecatalog.py @@ -24,6 +24,17 @@ class AcceptedPortfolioShare(AWSObject): } +class Info(AWSProperty): + """ + `Info `__ + """ + + props: PropsDictType = { + "ImportFromPhysicalId": (str, False), + "LoadTemplateFromURL": (str, False), + } + + class ProvisioningArtifactProperties(AWSProperty): """ `ProvisioningArtifactProperties `__ @@ -32,7 +43,7 @@ class ProvisioningArtifactProperties(AWSProperty): props: PropsDictType = { "Description": (str, False), "DisableTemplateValidation": (boolean, False), - "Info": (dict, True), + "Info": (Info, True), "Name": (str, False), "Type": (str, False), } @@ -53,7 +64,7 @@ class CodeStarParameters(AWSProperty): class ConnectionParameters(AWSProperty): """ - `ConnectionParameters `__ + `ConnectionParameters `__ """ props: PropsDictType = { diff --git a/troposphere/signer.py b/troposphere/signer.py index 59cc6b8e0..dc2491302 100644 --- a/troposphere/signer.py +++ b/troposphere/signer.py @@ -26,6 +26,18 @@ class ProfilePermission(AWSObject): } +class SigningJob(AWSObject): + """ + `SigningJob `__ + """ + + resource_type = "AWS::Signer::SigningJob" + + props: PropsDictType = { + "ProfileName": (str, True), + } + + class SignatureValidityPeriod(AWSProperty): """ `SignatureValidityPeriod `__ @@ -49,3 +61,46 @@ class SigningProfile(AWSObject): "SignatureValidityPeriod": (SignatureValidityPeriod, False), "Tags": (Tags, False), } + + +class S3SignedObject(AWSProperty): + """ + `S3SignedObject `__ + """ + + props: PropsDictType = { + "BucketName": (str, False), + "Key": (str, False), + } + + +class S3Source(AWSProperty): + """ + `S3Source `__ + """ + + props: PropsDictType = { + "BucketName": (str, True), + "Key": (str, True), + "Version": (str, True), + } + + +class SignedObject(AWSProperty): + """ + `SignedObject `__ + """ + + props: PropsDictType = { + "S3": (S3SignedObject, False), + } + + +class Source(AWSProperty): + """ + `Source `__ + """ + + props: PropsDictType = { + "S3": (S3Source, False), + } diff --git a/troposphere/smsvoice.py b/troposphere/smsvoice.py index 303c0c1cd..c5d3e1b1c 100644 --- a/troposphere/smsvoice.py +++ b/troposphere/smsvoice.py @@ -210,6 +210,19 @@ class ProtectConfiguration(AWSObject): } +class Registration(AWSObject): + """ + `Registration `__ + """ + + resource_type = "AWS::SMSVOICE::Registration" + + props: PropsDictType = { + "RegistrationType": (str, True), + "Tags": (Tags, False), + } + + class ResourcePolicy(AWSObject): """ `ResourcePolicy `__ diff --git a/troposphere/ssm.py b/troposphere/ssm.py index 044cdbcd8..8254a453a 100644 --- a/troposphere/ssm.py +++ b/troposphere/ssm.py @@ -83,6 +83,81 @@ class Association(AWSObject): } +class AutomationExecution(AWSObject): + """ + `AutomationExecution `__ + """ + + resource_type = "AWS::SSM::AutomationExecution" + + props: PropsDictType = { + "DocumentName": (str, True), + "Tags": (Tags, False), + } + + +class AzureSubscription(AWSProperty): + """ + `AzureSubscription `__ + """ + + props: PropsDictType = { + "DisplayName": (str, False), + "Id": (str, True), + } + + +class ConfigurationTargets(AWSProperty): + """ + `ConfigurationTargets `__ + """ + + props: PropsDictType = { + "Subscriptions": ([AzureSubscription], True), + } + + +class AzureConfiguration(AWSProperty): + """ + `AzureConfiguration `__ + """ + + props: PropsDictType = { + "ApplicationDisplayName": (str, False), + "ApplicationId": (str, True), + "Targets": (ConfigurationTargets, False), + "TenantDisplayName": (str, False), + "TenantId": (str, True), + } + + +class CloudConnectorConfiguration(AWSProperty): + """ + `CloudConnectorConfiguration `__ + """ + + props: PropsDictType = { + "AzureConfiguration": (AzureConfiguration, True), + } + + +class CloudConnector(AWSObject): + """ + `CloudConnector `__ + """ + + resource_type = "AWS::SSM::CloudConnector" + + props: PropsDictType = { + "ConfigConnectorArn": (str, True), + "Configuration": (CloudConnectorConfiguration, True), + "Description": (str, False), + "DisplayName": (str, True), + "RoleArn": (str, True), + "Tags": (Tags, False), + } + + class AttachmentsSource(AWSProperty): """ `AttachmentsSource `__ @@ -302,6 +377,47 @@ class MaintenanceWindowTask(AWSObject): } +class TagsItems(AWSProperty): + """ + `TagsItems `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Value": (str, True), + } + + +class ManagedInstance(AWSObject): + """ + `ManagedInstance `__ + """ + + resource_type = "AWS::SSM::ManagedInstance" + + props: PropsDictType = { + "Tags": ([TagsItems], False), + } + + +class OpsItem(AWSObject): + """ + `OpsItem `__ + """ + + resource_type = "AWS::SSM::OpsItem" + + props: PropsDictType = { + "Category": (str, False), + "Description": (str, True), + "Priority": (integer, False), + "Severity": (str, False), + "Source": (str, True), + "Tags": (Tags, False), + "Title": (str, True), + } + + class Parameter(AWSObject): """ `Parameter `__ @@ -474,3 +590,29 @@ class ResourcePolicy(AWSObject): "Policy": (dict, True), "ResourceArn": (str, True), } + + +class ServiceSetting(AWSObject): + """ + `ServiceSetting `__ + """ + + resource_type = "AWS::SSM::ServiceSetting" + + props: PropsDictType = { + "SettingId": (str, True), + "SettingValue": (str, True), + } + + +class Session(AWSObject): + """ + `Session `__ + """ + + resource_type = "AWS::SSM::Session" + + props: PropsDictType = { + "Reason": (str, False), + "Target": (str, False), + } diff --git a/troposphere/sso.py b/troposphere/sso.py index 472900bb8..92b89d530 100644 --- a/troposphere/sso.py +++ b/troposphere/sso.py @@ -63,6 +63,16 @@ class ApplicationAssignment(AWSObject): } +class ApplicationProvider(AWSObject): + """ + `ApplicationProvider `__ + """ + + resource_type = "AWS::SSO::ApplicationProvider" + + props: PropsDictType = {} + + class Assignment(AWSObject): """ `Assignment `__ @@ -168,3 +178,36 @@ class PermissionSet(AWSObject): "SessionDuration": (str, False), "Tags": (Tags, False), } + + +class DisplayData(AWSProperty): + """ + `DisplayData `__ + """ + + props: PropsDictType = { + "Description": (str, False), + "DisplayName": (str, False), + "IconUrl": (str, False), + } + + +class ResourceServerScopeDetails(AWSProperty): + """ + `ResourceServerScopeDetails `__ + """ + + props: PropsDictType = { + "DetailedTitle": (str, False), + "LongDescription": (str, False), + } + + +class ResourceServerConfig(AWSProperty): + """ + `ResourceServerConfig `__ + """ + + props: PropsDictType = { + "Scopes": (dict, False), + } diff --git a/troposphere/stepfunctions.py b/troposphere/stepfunctions.py index 1c6f7890a..2a4a1b64a 100644 --- a/troposphere/stepfunctions.py +++ b/troposphere/stepfunctions.py @@ -36,6 +36,18 @@ class Activity(AWSObject): } +class MapRun(AWSObject): + """ + `MapRun `__ + """ + + resource_type = "AWS::StepFunctions::MapRun" + + props: PropsDictType = { + "ExecutionArn": (str, False), + } + + class CloudWatchLogsLogGroup(AWSProperty): """ `CloudWatchLogsLogGroup `__ @@ -165,3 +177,41 @@ class StateMachineVersion(AWSObject): "StateMachineArn": (str, True), "StateMachineRevisionId": (str, False), } + + +class MapRunExecutionCounts(AWSProperty): + """ + `MapRunExecutionCounts `__ + """ + + props: PropsDictType = { + "Aborted": (integer, False), + "Failed": (integer, False), + "FailuresNotRedrivable": (integer, False), + "Pending": (integer, False), + "PendingRedrive": (integer, False), + "ResultsWritten": (integer, False), + "Running": (integer, False), + "Succeeded": (integer, False), + "TimedOut": (integer, False), + "Total": (integer, False), + } + + +class MapRunItemCounts(AWSProperty): + """ + `MapRunItemCounts `__ + """ + + props: PropsDictType = { + "Aborted": (integer, False), + "Failed": (integer, False), + "FailuresNotRedrivable": (integer, False), + "Pending": (integer, False), + "PendingRedrive": (integer, False), + "ResultsWritten": (integer, False), + "Running": (integer, False), + "Succeeded": (integer, False), + "TimedOut": (integer, False), + "Total": (integer, False), + } diff --git a/troposphere/synthetics.py b/troposphere/synthetics.py index 85f0e6caa..32f364892 100644 --- a/troposphere/synthetics.py +++ b/troposphere/synthetics.py @@ -7,7 +7,7 @@ from . import AWSObject, AWSProperty, PropsDictType, Tags -from .validators import boolean, integer +from .validators import boolean, double, integer from .validators.synthetics import canary_runtime_version @@ -70,6 +70,46 @@ class Code(AWSProperty): } +class ReplicaReplicationStatus(AWSProperty): + """ + `ReplicaReplicationStatus `__ + """ + + props: PropsDictType = { + "State": (str, False), + } + + +class VPCConfig(AWSProperty): + """ + `VPCConfig `__ + """ + + props: PropsDictType = { + "Ipv6AllowedForDualStack": (boolean, False), + "SecurityGroupIds": ([str], True), + "SubnetIds": ([str], True), + "VpcId": (str, False), + } + + +class Replica(AWSProperty): + """ + `Replica `__ + """ + + props: PropsDictType = { + "CanaryState": (str, False), + "KmsKeyArn": (str, False), + "LastModified": (double, False), + "Location": (str, True), + "ReplicationStatus": (ReplicaReplicationStatus, False), + "ResourcesToReplicateTags": ([str], False), + "Tags": (Tags, False), + "VpcConfig": (VPCConfig, False), + } + + class RunConfig(AWSProperty): """ `RunConfig `__ @@ -106,19 +146,6 @@ class Schedule(AWSProperty): } -class VPCConfig(AWSProperty): - """ - `VPCConfig `__ - """ - - props: PropsDictType = { - "Ipv6AllowedForDualStack": (boolean, False), - "SecurityGroupIds": ([str], True), - "SubnetIds": ([str], True), - "VpcId": (str, False), - } - - class BaseScreenshot(AWSProperty): """ `BaseScreenshot `__ @@ -157,8 +184,10 @@ class Canary(AWSObject): "DryRunAndUpdate": (boolean, False), "ExecutionRoleArn": (str, True), "FailureRetentionPeriod": (integer, False), + "KmsKeyArn": (str, False), "Name": (str, True), "ProvisionedResourceCleanup": (str, False), + "Replicas": ([Replica], False), "ResourcesToReplicateTags": ([str], False), "RunConfig": (RunConfig, False), "RuntimeVersion": (canary_runtime_version, True), diff --git a/troposphere/timestream.py b/troposphere/timestream.py index 4ee2d3d2c..9919e2b50 100644 --- a/troposphere/timestream.py +++ b/troposphere/timestream.py @@ -47,6 +47,17 @@ class LogDeliveryConfiguration(AWSProperty): } +class MaintenanceSchedule(AWSProperty): + """ + `MaintenanceSchedule `__ + """ + + props: PropsDictType = { + "PreferredMaintenanceWindow": (str, True), + "Timezone": (str, True), + } + + class InfluxDBCluster(AWSObject): """ `InfluxDBCluster `__ @@ -63,6 +74,7 @@ class InfluxDBCluster(AWSObject): "DeploymentType": (str, False), "FailoverMode": (str, False), "LogDeliveryConfiguration": (LogDeliveryConfiguration, False), + "MaintenanceSchedule": (MaintenanceSchedule, False), "Name": (str, False), "NetworkType": (str, False), "Organization": (str, False), @@ -76,17 +88,6 @@ class InfluxDBCluster(AWSObject): } -class MaintenanceSchedule(AWSProperty): - """ - `MaintenanceSchedule `__ - """ - - props: PropsDictType = { - "PreferredMaintenanceWindow": (str, True), - "Timezone": (str, True), - } - - class InfluxDBInstance(AWSObject): """ `InfluxDBInstance `__ diff --git a/troposphere/transfer.py b/troposphere/transfer.py index 00f7a7d96..5475da0aa 100644 --- a/troposphere/transfer.py +++ b/troposphere/transfer.py @@ -151,6 +151,21 @@ class Connector(AWSObject): } +class HostKey(AWSObject): + """ + `HostKey `__ + """ + + resource_type = "AWS::Transfer::HostKey" + + props: PropsDictType = { + "Description": (str, False), + "HostKeyBody": (str, False), + "ServerId": (str, True), + "Tags": (Tags, False), + } + + class Profile(AWSObject): """ `Profile `__ diff --git a/troposphere/vpclattice.py b/troposphere/vpclattice.py index 57b8a7b7d..ce9fd2f88 100644 --- a/troposphere/vpclattice.py +++ b/troposphere/vpclattice.py @@ -309,6 +309,7 @@ class Service(AWSObject): "CertificateArn": (str, False), "CustomDomainName": (str, False), "DnsEntry": (DnsEntry, False), + "IdleTimeoutSeconds": (integer, False), "Name": (str, False), "Tags": (Tags, False), } diff --git a/troposphere/wafv2.py b/troposphere/wafv2.py index 407f21078..1f3d9e875 100644 --- a/troposphere/wafv2.py +++ b/troposphere/wafv2.py @@ -546,6 +546,17 @@ class FieldToMatch(AWSProperty): } +class PreParseTextTransformation(AWSProperty): + """ + `PreParseTextTransformation `__ + """ + + props: PropsDictType = { + "Priority": (integer, True), + "Type": (str, True), + } + + class TextTransformation(AWSProperty): """ `TextTransformation `__ @@ -565,6 +576,7 @@ class ByteMatchStatement(AWSProperty): props: PropsDictType = { "FieldToMatch": (FieldToMatch, True), "PositionalConstraint": (validate_positional_constraint, True), + "PreParseTextTransformations": ([PreParseTextTransformation], False), "SearchString": (str, False), "SearchStringBase64": (str, False), "TextTransformations": ([TextTransformation], True), @@ -993,6 +1005,7 @@ class RegexMatchStatement(AWSProperty): props: PropsDictType = { "FieldToMatch": (FieldToMatch, True), + "PreParseTextTransformations": ([PreParseTextTransformation], False), "RegexString": (str, True), "TextTransformations": ([TextTransformation], True), } @@ -1006,6 +1019,7 @@ class RegexPatternSetReferenceStatement(AWSProperty): props: PropsDictType = { "Arn": (str, True), "FieldToMatch": (FieldToMatch, True), + "PreParseTextTransformations": ([PreParseTextTransformation], False), "TextTransformations": ([TextTransformation], True), } @@ -1030,6 +1044,7 @@ class SizeConstraintStatement(AWSProperty): props: PropsDictType = { "ComparisonOperator": (validate_comparison_operator, True), "FieldToMatch": (FieldToMatch, True), + "PreParseTextTransformations": ([PreParseTextTransformation], False), "Size": (double, True), "TextTransformations": ([TextTransformation], True), } @@ -1042,6 +1057,7 @@ class SqliMatchStatement(AWSProperty): props: PropsDictType = { "FieldToMatch": (FieldToMatch, True), + "PreParseTextTransformations": ([PreParseTextTransformation], False), "SensitivityLevel": (str, False), "TextTransformations": ([TextTransformation], True), } @@ -1054,6 +1070,7 @@ class XssMatchStatement(AWSProperty): props: PropsDictType = { "FieldToMatch": (FieldToMatch, True), + "PreParseTextTransformations": ([PreParseTextTransformation], False), "TextTransformations": ([TextTransformation], True), } diff --git a/troposphere/workspaces.py b/troposphere/workspaces.py index 36b132e12..ab34fe0b2 100644 --- a/troposphere/workspaces.py +++ b/troposphere/workspaces.py @@ -56,6 +56,32 @@ class Workspace(AWSObject): } +class IpRuleItem(AWSProperty): + """ + `IpRuleItem `__ + """ + + props: PropsDictType = { + "IpRule": (str, True), + "RuleDesc": (str, False), + } + + +class WorkspaceIpGroup(AWSObject): + """ + `WorkspaceIpGroup `__ + """ + + resource_type = "AWS::WorkSpaces::WorkspaceIpGroup" + + props: PropsDictType = { + "GroupDesc": (str, False), + "GroupName": (str, True), + "Tags": (Tags, False), + "UserRules": ([IpRuleItem], False), + } + + class ApplicationSettings(AWSProperty): """ `ApplicationSettings `__