From 9b46bf345504b1c04bbf4a730b9ef2228d65c905 Mon Sep 17 00:00:00 2001 From: Kevin DeJong Date: Thu, 10 Oct 2024 10:52:10 -0700 Subject: [PATCH 1/7] Create more automation for boto data gathering --- scripts/boto/data.json | 2202 +++++++++++++++++ .../{ => boto}/update_schemas_from_boto.py | 30 + .../all/aws_amazonmq_broker/boto.json | 24 + .../all/aws_amazonmq_configuration/boto.json | 18 + 4 files changed, 2274 insertions(+) create mode 100644 scripts/boto/data.json rename scripts/{ => boto}/update_schemas_from_boto.py (97%) create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/boto.json diff --git a/scripts/boto/data.json b/scripts/boto/data.json new file mode 100644 index 0000000000..ccf20a6991 --- /dev/null +++ b/scripts/boto/data.json @@ -0,0 +1,2202 @@ +{ + "AWS::AccessAnalyzer::Analyzer": [ + { + "path": "/properties/Type", + "shape": "Type", + "source": [ + "accessanalyzer", + "2019-11-01" + ] + } + ], + "AWS::Amplify::Domain": [ + { + "path": "/properties/DomainStatus", + "shape": "DomainStatus", + "source": [ + "amplify", + "2017-07-25" + ] + }, + { + "path": "/properties/UpdateStatus", + "shape": "UpdateStatus", + "source": [ + "amplify", + "2017-07-25" + ] + } + ], + "AWS::AmplifyUIBuilder::Form": [ + { + "path": "/properties/FormActionType", + "shape": "FormActionType", + "source": [ + "amplifyuibuilder", + "2021-08-11" + ] + }, + { + "path": "/properties/LabelDecorator", + "shape": "LabelDecorator", + "source": [ + "amplifyuibuilder", + "2021-08-11" + ] + } + ], + "AWS::ApiGateway::DomainName": [ + { + "path": "/properties/SecurityPolicy", + "shape": "SecurityPolicy", + "source": [ + "apigateway", + "2015-07-09" + ] + } + ], + "AWS::ApiGateway::RestApi": [ + { + "path": "/properties/ApiKeySourceType", + "shape": "ApiKeySourceType", + "source": [ + "apigateway", + "2015-07-09" + ] + } + ], + "AWS::ApiGateway::Stage": [ + { + "path": "/properties/CacheClusterSize", + "shape": "CacheClusterSize", + "source": [ + "apigateway", + "2015-07-09" + ] + } + ], + "AWS::ApiGatewayV2::Api": [ + { + "path": "/properties/ProtocolType", + "shape": "ProtocolType", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + } + ], + "AWS::ApiGatewayV2::Authorizer": [ + { + "path": "/properties/AuthorizerType", + "shape": "AuthorizerType", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + } + ], + "AWS::ApiGatewayV2::Integration": [ + { + "path": "/properties/ConnectionType", + "shape": "ConnectionType", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + }, + { + "path": "/properties/ContentHandlingStrategy", + "shape": "ContentHandlingStrategy", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + }, + { + "path": "/properties/IntegrationType", + "shape": "IntegrationType", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + }, + { + "path": "/properties/PassthroughBehavior", + "shape": "PassthroughBehavior", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + } + ], + "AWS::ApiGatewayV2::IntegrationResponse": [ + { + "path": "/properties/ContentHandlingStrategy", + "shape": "ContentHandlingStrategy", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + } + ], + "AWS::ApiGatewayV2::Route": [ + { + "path": "/properties/AuthorizationType", + "shape": "AuthorizationType", + "source": [ + "apigatewayv2", + "2018-11-29" + ] + } + ], + "AWS::AppConfig::DeploymentStrategy": [ + { + "path": "/properties/ReplicateTo", + "shape": "ReplicateTo", + "source": [ + "appconfig", + "2019-10-09" + ] + }, + { + "path": "/properties/GrowthType", + "shape": "GrowthType", + "source": [ + "appconfig", + "2019-10-09" + ] + } + ], + "AWS::AppFlow::Connector": [ + { + "path": "/properties/ConnectorProvisioningType", + "shape": "ConnectorProvisioningType", + "source": [ + "appflow", + "2020-08-23" + ] + } + ], + "AWS::AppFlow::ConnectorProfile": [ + { + "path": "/properties/ConnectorType", + "shape": "ConnectorType", + "source": [ + "appflow", + "2020-08-23" + ] + } + ], + "AWS::AppStream::AppBlock": [ + { + "path": "/properties/PackagingType", + "shape": "PackagingType", + "source": [ + "appstream", + "2016-12-01" + ] + } + ], + "AWS::AppStream::Entitlement": [ + { + "path": "/properties/AppVisibility", + "shape": "AppVisibility", + "source": [ + "appstream", + "2016-12-01" + ] + } + ], + "AWS::AppStream::Fleet": [ + { + "path": "/properties/FleetType", + "shape": "FleetType", + "source": [ + "appstream", + "2016-12-01" + ] + }, + { + "path": "/properties/StreamView", + "shape": "StreamView", + "source": [ + "appstream", + "2016-12-01" + ] + } + ], + "AWS::AppStream::StackUserAssociation": [ + { + "path": "/properties/AuthenticationType", + "shape": "AuthenticationType", + "source": [ + "appstream", + "2016-12-01" + ] + } + ], + "AWS::AppStream::User": [ + { + "path": "/properties/MessageAction", + "shape": "MessageAction", + "source": [ + "appstream", + "2016-12-01" + ] + }, + { + "path": "/properties/AuthenticationType", + "shape": "AuthenticationType", + "source": [ + "appstream", + "2016-12-01" + ] + } + ], + "AWS::AppSync::ApiCache": [ + { + "path": "/properties/ApiCachingBehavior", + "shape": "ApiCachingBehavior", + "source": [ + "appsync", + "2017-07-25" + ] + } + ], + "AWS::AppSync::GraphQLApi": [ + { + "path": "/properties/AuthenticationType", + "shape": "AuthenticationType", + "source": [ + "appsync", + "2017-07-25" + ] + } + ], + "AWS::B2BI::Profile": [ + { + "path": "/properties/Logging", + "shape": "Logging", + "source": [ + "b2bi", + "2022-06-23" + ] + } + ], + "AWS::B2BI::Transformer": [ + { + "path": "/properties/FileFormat", + "shape": "FileFormat", + "source": [ + "b2bi", + "2022-06-23" + ] + } + ], + "AWS::CleanRooms::ConfiguredTable": [ + { + "path": "/properties/AnalysisMethod", + "shape": "AnalysisMethod", + "source": [ + "cleanrooms", + "2022-02-17" + ] + } + ], + "AWS::Cloud9::EnvironmentEC2": [ + { + "path": "/properties/ConnectionType", + "shape": "ConnectionType", + "source": [ + "cloud9", + "2017-09-23" + ] + } + ], + "AWS::CloudTrail::EventDataStore": [ + { + "path": "/properties/BillingMode", + "shape": "BillingMode", + "source": [ + "cloudtrail", + "2013-11-01" + ] + } + ], + "AWS::CloudWatch::Alarm": [ + { + "path": "/properties/ComparisonOperator", + "shape": "ComparisonOperator", + "source": [ + "cloudwatch", + "2010-08-01" + ] + }, + { + "path": "/properties/Statistic", + "shape": "Statistic", + "source": [ + "cloudwatch", + "2010-08-01" + ] + } + ], + "AWS::CodeBuild::SourceCredential": [ + { + "path": "/properties/ServerType", + "shape": "ServerType", + "source": [ + "codebuild", + "2016-10-06" + ] + }, + { + "path": "/properties/AuthType", + "shape": "AuthType", + "source": [ + "codebuild", + "2016-10-06" + ] + } + ], + "AWS::CodeConnections::Connection": [ + { + "path": "/properties/ConnectionStatus", + "shape": "ConnectionStatus", + "source": [ + "codeconnections", + "2023-12-01" + ] + }, + { + "path": "/properties/ProviderType", + "shape": "ProviderType", + "source": [ + "codeconnections", + "2023-12-01" + ] + } + ], + "AWS::CodeDeploy::Application": [ + { + "path": "/properties/ComputePlatform", + "shape": "ComputePlatform", + "source": [ + "codedeploy", + "2014-10-06" + ] + } + ], + "AWS::CodeDeploy::DeploymentConfig": [ + { + "path": "/properties/ComputePlatform", + "shape": "ComputePlatform", + "source": [ + "codedeploy", + "2014-10-06" + ] + } + ], + "AWS::CodeDeploy::DeploymentGroup": [ + { + "path": "/properties/OutdatedInstancesStrategy", + "shape": "OutdatedInstancesStrategy", + "source": [ + "codedeploy", + "2014-10-06" + ] + } + ], + "AWS::Config::ConfigRule": [ + { + "path": "/properties/MaximumExecutionFrequency", + "shape": "MaximumExecutionFrequency", + "source": [ + "config", + "2014-11-12" + ] + } + ], + "AWS::Config::RemediationConfiguration": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "config", + "2014-11-12" + ] + } + ], + "AWS::Connect::InstanceStorageConfig": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "connect", + "2017-08-08" + ] + }, + { + "path": "/properties/StorageType", + "shape": "StorageType", + "source": [ + "connect", + "2017-08-08" + ] + } + ], + "AWS::Connect::IntegrationAssociation": [ + { + "path": "/properties/IntegrationType", + "shape": "IntegrationType", + "source": [ + "connect", + "2017-08-08" + ] + } + ], + "AWS::ControlTower::LandingZone": [ + { + "path": "/properties/DriftStatus", + "shape": "DriftStatus", + "source": [ + "controltower", + "2018-05-10" + ] + } + ], + "AWS::DAX::Cluster": [ + { + "path": "/properties/ClusterEndpointEncryptionType", + "shape": "ClusterEndpointEncryptionType", + "source": [ + "dax", + "2017-04-19" + ] + } + ], + "AWS::DMS::EventSubscription": [ + { + "path": "/properties/SourceType", + "shape": "SourceType", + "source": [ + "dms", + "2016-01-01" + ] + } + ], + "AWS::DataZone::DataSource": [ + { + "path": "/properties/EnableSetting", + "shape": "EnableSetting", + "source": [ + "datazone", + "2018-05-10" + ] + } + ], + "AWS::DataZone::UserProfile": [ + { + "path": "/properties/UserType", + "shape": "UserType", + "source": [ + "datazone", + "2018-05-10" + ] + } + ], + "AWS::DocDB::EventSubscription": [ + { + "path": "/properties/SourceType", + "shape": "SourceType", + "source": [ + "docdb", + "2014-10-31" + ] + } + ], + "AWS::DynamoDB::GlobalTable": [ + { + "path": "/properties/BillingMode", + "shape": "BillingMode", + "source": [ + "dynamodb", + "2012-08-10" + ] + } + ], + "AWS::DynamoDB::Table": [ + { + "path": "/properties/BillingMode", + "shape": "BillingMode", + "source": [ + "dynamodb", + "2012-08-10" + ] + }, + { + "path": "/properties/TableClass", + "shape": "TableClass", + "source": [ + "dynamodb", + "2012-08-10" + ] + } + ], + "AWS::EC2::CapacityReservation": [ + { + "path": "/properties/Tenancy", + "shape": "Tenancy", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/EndDateType", + "shape": "EndDateType", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/InstanceType", + "shape": "InstanceType", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/InstanceMatchCriteria", + "shape": "InstanceMatchCriteria", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::CapacityReservationFleet": [ + { + "path": "/properties/AllocationStrategy", + "shape": "AllocationStrategy", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::ClientVpnEndpoint": [ + { + "path": "/properties/SelfServicePortal", + "shape": "SelfServicePortal", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/TransportProtocol", + "shape": "TransportProtocol", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::Host": [ + { + "path": "/properties/AutoPlacement", + "shape": "AutoPlacement", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/HostRecovery", + "shape": "HostRecovery", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/InstanceType", + "shape": "InstanceType", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/HostMaintenance", + "shape": "HostMaintenance", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::IPAMPool": [ + { + "path": "/properties/AddressFamily", + "shape": "AddressFamily", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::Instance": [ + { + "path": "/properties/Tenancy", + "shape": "Tenancy", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/InstanceType", + "shape": "InstanceType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::NatGateway": [ + { + "path": "/properties/ConnectivityType", + "shape": "ConnectivityType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::NetworkAclEntry": [ + { + "path": "/properties/RuleAction", + "shape": "RuleAction", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/Protocol", + "shape": "Protocol", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::NetworkInsightsPath": [ + { + "path": "/properties/Protocol", + "shape": "Protocol", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::PlacementGroup": [ + { + "path": "/properties/SpreadLevel", + "shape": "SpreadLevel", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::SubnetCidrBlock": [ + { + "path": "/properties/Ipv6AddressAttribute", + "shape": "Ipv6AddressAttribute", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/IpSource", + "shape": "IpSource", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::TrafficMirrorFilterRule": [ + { + "path": "/properties/RuleAction", + "shape": "RuleAction", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/TrafficDirection", + "shape": "TrafficDirection", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/Protocol", + "shape": "Protocol", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::TransitGatewayMulticastDomainAssociation": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::TransitGatewayMulticastGroupMember": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::TransitGatewayMulticastGroupSource": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::TransitGatewayPeeringAttachment": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::VPCCidrBlock": [ + { + "path": "/properties/Ipv6AddressAttribute", + "shape": "Ipv6AddressAttribute", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/IpSource", + "shape": "IpSource", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::VPCEndpointService": [ + { + "path": "/properties/PayerResponsibility", + "shape": "PayerResponsibility", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::VPNConnection": [ + { + "path": "/properties/TunnelInsideIpVersion", + "shape": "TunnelInsideIpVersion", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::VerifiedAccessEndpoint": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::VerifiedAccessTrustProvider": [ + { + "path": "/properties/TrustProviderType", + "shape": "TrustProviderType", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/DeviceTrustProviderType", + "shape": "DeviceTrustProviderType", + "source": [ + "ec2", + "2016-11-15" + ] + }, + { + "path": "/properties/UserTrustProviderType", + "shape": "UserTrustProviderType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::EC2::Volume": [ + { + "path": "/properties/VolumeType", + "shape": "VolumeType", + "source": [ + "ec2", + "2016-11-15" + ] + } + ], + "AWS::ECR::PullThroughCacheRule": [ + { + "path": "/properties/UpstreamRegistry", + "shape": "UpstreamRegistry", + "source": [ + "ecr", + "2015-09-21" + ] + } + ], + "AWS::ECS::TaskDefinition": [ + { + "path": "/properties/IpcMode", + "shape": "IpcMode", + "source": [ + "ecs", + "2014-11-13" + ] + }, + { + "path": "/properties/NetworkMode", + "shape": "NetworkMode", + "source": [ + "ecs", + "2014-11-13" + ] + }, + { + "path": "/properties/PidMode", + "shape": "PidMode", + "source": [ + "ecs", + "2014-11-13" + ] + } + ], + "AWS::EFS::FileSystem": [ + { + "path": "/properties/PerformanceMode", + "shape": "PerformanceMode", + "source": [ + "efs", + "2015-02-01" + ] + }, + { + "path": "/properties/ThroughputMode", + "shape": "ThroughputMode", + "source": [ + "efs", + "2015-02-01" + ] + } + ], + "AWS::EMR::Cluster": [ + { + "path": "/properties/ScaleDownBehavior", + "shape": "ScaleDownBehavior", + "source": [ + "emr", + "2009-03-31" + ] + } + ], + "AWS::EMR::InstanceFleetConfig": [ + { + "path": "/properties/InstanceFleetType", + "shape": "InstanceFleetType", + "source": [ + "emr", + "2009-03-31" + ] + } + ], + "AWS::EMR::Step": [ + { + "path": "/properties/ActionOnFailure", + "shape": "ActionOnFailure", + "source": [ + "emr", + "2009-03-31" + ] + } + ], + "AWS::ElastiCache::CacheCluster": [ + { + "path": "/properties/NetworkType", + "shape": "NetworkType", + "source": [ + "elasticache", + "2015-02-02" + ] + }, + { + "path": "/properties/IpDiscovery", + "shape": "IpDiscovery", + "source": [ + "elasticache", + "2015-02-02" + ] + }, + { + "path": "/properties/AZMode", + "shape": "AZMode", + "source": [ + "elasticache", + "2015-02-02" + ] + } + ], + "AWS::ElastiCache::ReplicationGroup": [ + { + "path": "/properties/TransitEncryptionMode", + "shape": "TransitEncryptionMode", + "source": [ + "elasticache", + "2015-02-02" + ] + }, + { + "path": "/properties/IpDiscovery", + "shape": "IpDiscovery", + "source": [ + "elasticache", + "2015-02-02" + ] + }, + { + "path": "/properties/ClusterMode", + "shape": "ClusterMode", + "source": [ + "elasticache", + "2015-02-02" + ] + }, + { + "path": "/properties/NetworkType", + "shape": "NetworkType", + "source": [ + "elasticache", + "2015-02-02" + ] + } + ], + "AWS::FSx::FileSystem": [ + { + "path": "/properties/StorageType", + "shape": "StorageType", + "source": [ + "fsx", + "2018-03-01" + ] + }, + { + "path": "/properties/FileSystemType", + "shape": "FileSystemType", + "source": [ + "fsx", + "2018-03-01" + ] + } + ], + "AWS::FSx::Volume": [ + { + "path": "/properties/VolumeType", + "shape": "VolumeType", + "source": [ + "fsx", + "2018-03-01" + ] + } + ], + "AWS::GameLift::Fleet": [ + { + "path": "/properties/EC2InstanceType", + "shape": "EC2InstanceType", + "source": [ + "gamelift", + "2015-10-01" + ] + } + ], + "AWS::GameLift::GameServerGroup": [ + { + "path": "/properties/BalancingStrategy", + "shape": "BalancingStrategy", + "source": [ + "gamelift", + "2015-10-01" + ] + }, + { + "path": "/properties/GameServerProtectionPolicy", + "shape": "GameServerProtectionPolicy", + "source": [ + "gamelift", + "2015-10-01" + ] + } + ], + "AWS::Glue::DevEndpoint": [ + { + "path": "/properties/WorkerType", + "shape": "WorkerType", + "source": [ + "glue", + "2017-03-31" + ] + } + ], + "AWS::Glue::Job": [ + { + "path": "/properties/ExecutionClass", + "shape": "ExecutionClass", + "source": [ + "glue", + "2017-03-31" + ] + }, + { + "path": "/properties/JobMode", + "shape": "JobMode", + "source": [ + "glue", + "2017-03-31" + ] + } + ], + "AWS::Glue::MLTransform": [ + { + "path": "/properties/WorkerType", + "shape": "WorkerType", + "source": [ + "glue", + "2017-03-31" + ] + } + ], + "AWS::Grafana::Workspace": [ + { + "path": "/properties/SamlConfigurationStatus", + "shape": "SamlConfigurationStatus", + "source": [ + "grafana", + "2020-08-18" + ] + }, + { + "path": "/properties/AccountAccessType", + "shape": "AccountAccessType", + "source": [ + "grafana", + "2020-08-18" + ] + }, + { + "path": "/properties/PermissionType", + "shape": "PermissionType", + "source": [ + "grafana", + "2020-08-18" + ] + } + ], + "AWS::GuardDuty::Detector": [ + { + "path": "/properties/FindingPublishingFrequency", + "shape": "FindingPublishingFrequency", + "source": [ + "guardduty", + "2017-11-28" + ] + } + ], + "AWS::HealthLake::FHIRDatastore": [ + { + "path": "/properties/DatastoreStatus", + "shape": "DatastoreStatus", + "source": [ + "healthlake", + "2017-07-01" + ] + } + ], + "AWS::IoT::SoftwarePackageVersion": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "iot", + "2015-05-28" + ] + } + ], + "AWS::IoT::TopicRuleDestination": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "iot", + "2015-05-28" + ] + } + ], + "AWS::IoTFleetHub::Application": [ + { + "path": "/properties/ApplicationState", + "shape": "ApplicationState", + "source": [ + "iotfleethub", + "2020-11-03" + ] + } + ], + "AWS::IoTFleetWise::Campaign": [ + { + "path": "/properties/Compression", + "shape": "Compression", + "source": [ + "iotfleetwise", + "2021-06-17" + ] + }, + { + "path": "/properties/SpoolingMode", + "shape": "SpoolingMode", + "source": [ + "iotfleetwise", + "2021-06-17" + ] + }, + { + "path": "/properties/DiagnosticsMode", + "shape": "DiagnosticsMode", + "source": [ + "iotfleetwise", + "2021-06-17" + ] + } + ], + "AWS::IoTSiteWise::AssetModel": [ + { + "path": "/properties/AssetModelType", + "shape": "AssetModelType", + "source": [ + "iotsitewise", + "2019-12-02" + ] + } + ], + "AWS::IoTWireless::FuotaTask": [ + { + "path": "/properties/FuotaTaskStatus", + "shape": "FuotaTaskStatus", + "source": [ + "iotwireless", + "2020-11-22" + ] + } + ], + "AWS::Kendra::DataSource": [ + { + "path": "/properties/Type", + "shape": "Type", + "source": [ + "kendra", + "2019-02-03" + ] + } + ], + "AWS::Kendra::Index": [ + { + "path": "/properties/UserContextPolicy", + "shape": "UserContextPolicy", + "source": [ + "kendra", + "2019-02-03" + ] + } + ], + "AWS::Kinesis::StreamConsumer": [ + { + "path": "/properties/ConsumerStatus", + "shape": "ConsumerStatus", + "source": [ + "kinesis", + "2013-12-02" + ] + } + ], + "AWS::KinesisAnalyticsV2::Application": [ + { + "path": "/properties/RuntimeEnvironment", + "shape": "RuntimeEnvironment", + "source": [ + "kinesisanalyticsv2", + "2018-05-23" + ] + } + ], + "AWS::Lambda::Alias": [ + { + "path": "/properties/FunctionVersion", + "shape": "FunctionVersion", + "source": [ + "lambda", + "2015-03-31" + ] + } + ], + "AWS::Lambda::Function": [ + { + "path": "/properties/Runtime", + "shape": "Runtime", + "source": [ + "lambda", + "2015-03-31" + ] + }, + { + "path": "/properties/RecursiveLoop", + "shape": "RecursiveLoop", + "source": [ + "lambda", + "2015-03-31" + ] + } + ], + "AWS::Lightsail::Alarm": [ + { + "path": "/properties/MetricName", + "shape": "MetricName", + "source": [ + "lightsail", + "2016-11-28" + ] + }, + { + "path": "/properties/ComparisonOperator", + "shape": "ComparisonOperator", + "source": [ + "lightsail", + "2016-11-28" + ] + }, + { + "path": "/properties/TreatMissingData", + "shape": "TreatMissingData", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Lightsail::Certificate": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Lightsail::Disk": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Lightsail::Distribution": [ + { + "path": "/properties/IpAddressType", + "shape": "IpAddressType", + "source": [ + "lightsail", + "2016-11-28" + ] + }, + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Lightsail::Instance": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Lightsail::LoadBalancer": [ + { + "path": "/properties/IpAddressType", + "shape": "IpAddressType", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Lightsail::LoadBalancerTlsCertificate": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "lightsail", + "2016-11-28" + ] + } + ], + "AWS::Location::GeofenceCollection": [ + { + "path": "/properties/PricingPlan", + "shape": "PricingPlan", + "source": [ + "location", + "2020-11-19" + ] + } + ], + "AWS::Location::Map": [ + { + "path": "/properties/PricingPlan", + "shape": "PricingPlan", + "source": [ + "location", + "2020-11-19" + ] + } + ], + "AWS::Location::PlaceIndex": [ + { + "path": "/properties/PricingPlan", + "shape": "PricingPlan", + "source": [ + "location", + "2020-11-19" + ] + } + ], + "AWS::Location::RouteCalculator": [ + { + "path": "/properties/PricingPlan", + "shape": "PricingPlan", + "source": [ + "location", + "2020-11-19" + ] + } + ], + "AWS::Location::Tracker": [ + { + "path": "/properties/PositionFiltering", + "shape": "PositionFiltering", + "source": [ + "location", + "2020-11-19" + ] + }, + { + "path": "/properties/PricingPlan", + "shape": "PricingPlan", + "source": [ + "location", + "2020-11-19" + ] + } + ], + "AWS::Logs::Delivery": [ + { + "path": "/properties/DeliveryDestinationType", + "shape": "DeliveryDestinationType", + "source": [ + "logs", + "2014-03-28" + ] + } + ], + "AWS::Logs::DeliveryDestination": [ + { + "path": "/properties/DeliveryDestinationType", + "shape": "DeliveryDestinationType", + "source": [ + "logs", + "2014-03-28" + ] + } + ], + "AWS::Logs::LogAnomalyDetector": [ + { + "path": "/properties/AnomalyDetectorStatus", + "shape": "AnomalyDetectorStatus", + "source": [ + "logs", + "2014-03-28" + ] + } + ], + "AWS::M2::Application": [ + { + "path": "/properties/EngineType", + "shape": "EngineType", + "source": [ + "m2", + "2021-04-28" + ] + } + ], + "AWS::M2::Environment": [ + { + "path": "/properties/EngineType", + "shape": "EngineType", + "source": [ + "m2", + "2021-04-28" + ] + } + ], + "AWS::MWAA::Environment": [ + { + "path": "/properties/WebserverAccessMode", + "shape": "WebserverAccessMode", + "source": [ + "mwaa", + "2020-07-01" + ] + }, + { + "path": "/properties/EndpointManagement", + "shape": "EndpointManagement", + "source": [ + "mwaa", + "2020-07-01" + ] + } + ], + "AWS::ManagedBlockchain::Accessor": [ + { + "path": "/properties/AccessorType", + "shape": "AccessorType", + "source": [ + "managedblockchain", + "2018-09-24" + ] + } + ], + "AWS::MediaConnect::Bridge": [ + { + "path": "/properties/BridgeState", + "shape": "BridgeState", + "source": [ + "mediaconnect", + "2018-11-14" + ] + } + ], + "AWS::MediaConvert::JobTemplate": [ + { + "path": "/properties/StatusUpdateInterval", + "shape": "StatusUpdateInterval", + "source": [ + "mediaconvert", + "2017-08-29" + ] + } + ], + "AWS::MediaConvert::Queue": [ + { + "path": "/properties/PricingPlan", + "shape": "PricingPlan", + "source": [ + "mediaconvert", + "2017-08-29" + ] + } + ], + "AWS::MediaLive::Channel": [ + { + "path": "/properties/LogLevel", + "shape": "LogLevel", + "source": [ + "medialive", + "2017-10-14" + ] + }, + { + "path": "/properties/ChannelClass", + "shape": "ChannelClass", + "source": [ + "medialive", + "2017-10-14" + ] + } + ], + "AWS::MediaLive::Cluster": [ + { + "path": "/properties/ClusterType", + "shape": "ClusterType", + "source": [ + "medialive", + "2017-10-14" + ] + } + ], + "AWS::MediaLive::Multiplexprogram": [ + { + "path": "/properties/PreferredChannelPipeline", + "shape": "PreferredChannelPipeline", + "source": [ + "medialive", + "2017-10-14" + ] + } + ], + "AWS::MediaPackageV2::Channel": [ + { + "path": "/properties/InputType", + "shape": "InputType", + "source": [ + "mediapackagev2", + "2022-12-25" + ] + } + ], + "AWS::MediaPackageV2::OriginEndpoint": [ + { + "path": "/properties/ContainerType", + "shape": "ContainerType", + "source": [ + "mediapackagev2", + "2022-12-25" + ] + } + ], + "AWS::MediaTailor::Channel": [ + { + "path": "/properties/PlaybackMode", + "shape": "PlaybackMode", + "source": [ + "mediatailor", + "2018-04-23" + ] + }, + { + "path": "/properties/Tier", + "shape": "Tier", + "source": [ + "mediatailor", + "2018-04-23" + ] + } + ], + "AWS::Neptune::EventSubscription": [ + { + "path": "/properties/SourceType", + "shape": "SourceType", + "source": [ + "neptune", + "2014-10-31" + ] + } + ], + "AWS::NetworkManager::ConnectAttachment": [ + { + "path": "/properties/AttachmentType", + "shape": "AttachmentType", + "source": [ + "networkmanager", + "2019-07-05" + ] + } + ], + "AWS::NetworkManager::SiteToSiteVpnAttachment": [ + { + "path": "/properties/AttachmentType", + "shape": "AttachmentType", + "source": [ + "networkmanager", + "2019-07-05" + ] + } + ], + "AWS::NetworkManager::TransitGatewayPeering": [ + { + "path": "/properties/PeeringType", + "shape": "PeeringType", + "source": [ + "networkmanager", + "2019-07-05" + ] + } + ], + "AWS::NetworkManager::TransitGatewayRouteTableAttachment": [ + { + "path": "/properties/AttachmentType", + "shape": "AttachmentType", + "source": [ + "networkmanager", + "2019-07-05" + ] + } + ], + "AWS::NetworkManager::VpcAttachment": [ + { + "path": "/properties/AttachmentType", + "shape": "AttachmentType", + "source": [ + "networkmanager", + "2019-07-05" + ] + } + ], + "AWS::Omics::AnnotationStore": [ + { + "path": "/properties/StoreFormat", + "shape": "StoreFormat", + "source": [ + "omics", + "2022-11-28" + ] + } + ], + "AWS::Omics::Workflow": [ + { + "path": "/properties/Accelerators", + "shape": "Accelerators", + "source": [ + "omics", + "2022-11-28" + ] + } + ], + "AWS::OpenSearchServerless::Collection": [ + { + "path": "/properties/StandbyReplicas", + "shape": "StandbyReplicas", + "source": [ + "opensearchserverless", + "2021-11-01" + ] + } + ], + "AWS::OpsWorks::Instance": [ + { + "path": "/properties/Architecture", + "shape": "Architecture", + "source": [ + "opsworks", + "2013-02-18" + ] + }, + { + "path": "/properties/AutoScalingType", + "shape": "AutoScalingType", + "source": [ + "opsworks", + "2013-02-18" + ] + }, + { + "path": "/properties/RootDeviceType", + "shape": "RootDeviceType", + "source": [ + "opsworks", + "2013-02-18" + ] + }, + { + "path": "/properties/VirtualizationType", + "shape": "VirtualizationType", + "source": [ + "opsworks", + "2013-02-18" + ] + } + ], + "AWS::Proton::EnvironmentTemplate": [ + { + "path": "/properties/Provisioning", + "shape": "Provisioning", + "source": [ + "proton", + "2020-07-20" + ] + } + ], + "AWS::QBusiness::Application": [ + { + "path": "/properties/IdentityType", + "shape": "IdentityType", + "source": [ + "qbusiness", + "2023-11-27" + ] + }, + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "qbusiness", + "2023-11-27" + ] + } + ], + "AWS::QBusiness::DataSource": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "qbusiness", + "2023-11-27" + ] + } + ], + "AWS::QBusiness::Index": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "qbusiness", + "2023-11-27" + ] + } + ], + "AWS::QBusiness::Retriever": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "qbusiness", + "2023-11-27" + ] + } + ], + "AWS::QBusiness::WebExperience": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "qbusiness", + "2023-11-27" + ] + } + ], + "AWS::QLDB::Ledger": [ + { + "path": "/properties/PermissionsMode", + "shape": "PermissionsMode", + "source": [ + "qldb", + "2019-01-02" + ] + } + ], + "AWS::QuickSight::Analysis": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "quicksight", + "2018-04-01" + ] + } + ], + "AWS::QuickSight::DataSource": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "quicksight", + "2018-04-01" + ] + } + ], + "AWS::QuickSight::Folder": [ + { + "path": "/properties/FolderType", + "shape": "FolderType", + "source": [ + "quicksight", + "2018-04-01" + ] + }, + { + "path": "/properties/SharingModel", + "shape": "SharingModel", + "source": [ + "quicksight", + "2018-04-01" + ] + } + ], + "AWS::QuickSight::VPCConnection": [ + { + "path": "/properties/Status", + "shape": "Status", + "source": [ + "quicksight", + "2018-04-01" + ] + } + ], + "AWS::RAM::Permission": [ + { + "path": "/properties/PermissionType", + "shape": "PermissionType", + "source": [ + "ram", + "2018-01-04" + ] + } + ], + "AWS::RDS::DBInstance": [ + { + "path": "/properties/ReplicaMode", + "shape": "ReplicaMode", + "source": [ + "rds", + "2014-10-31" + ] + } + ], + "AWS::RDS::EventSubscription": [ + { + "path": "/properties/SourceType", + "shape": "SourceType", + "source": [ + "rds", + "2014-10-31" + ] + } + ], + "AWS::Redshift::Cluster": [ + { + "path": "/properties/AquaConfigurationStatus", + "shape": "AquaConfigurationStatus", + "source": [ + "redshift", + "2012-12-01" + ] + } + ], + "AWS::Route53Resolver::ResolverEndpoint": [ + { + "path": "/properties/ResolverEndpointType", + "shape": "ResolverEndpointType", + "source": [ + "route53resolver", + "2018-04-01" + ] + } + ], + "AWS::S3::Bucket": [ + { + "path": "/properties/ObjectLockEnabled", + "shape": "ObjectLockEnabled", + "source": [ + "s3", + "2006-03-01" + ] + } + ], + "AWS::SSM::MaintenanceWindowTarget": [ + { + "path": "/properties/ResourceType", + "shape": "ResourceType", + "source": [ + "ssm", + "2014-11-06" + ] + } + ], + "AWS::SageMaker::FeatureGroup": [ + { + "path": "/properties/FeatureGroupStatus", + "shape": "FeatureGroupStatus", + "source": [ + "sagemaker", + "2017-07-24" + ] + } + ], + "AWS::SageMaker::ImageVersion": [ + { + "path": "/properties/VendorGuidance", + "shape": "VendorGuidance", + "source": [ + "sagemaker", + "2017-07-24" + ] + }, + { + "path": "/properties/JobType", + "shape": "JobType", + "source": [ + "sagemaker", + "2017-07-24" + ] + }, + { + "path": "/properties/Processor", + "shape": "Processor", + "source": [ + "sagemaker", + "2017-07-24" + ] + } + ], + "AWS::SageMaker::InferenceComponent": [ + { + "path": "/properties/InferenceComponentStatus", + "shape": "InferenceComponentStatus", + "source": [ + "sagemaker", + "2017-07-24" + ] + } + ], + "AWS::SageMaker::ModelPackage": [ + { + "path": "/properties/ModelApprovalStatus", + "shape": "ModelApprovalStatus", + "source": [ + "sagemaker", + "2017-07-24" + ] + }, + { + "path": "/properties/SkipModelValidation", + "shape": "SkipModelValidation", + "source": [ + "sagemaker", + "2017-07-24" + ] + }, + { + "path": "/properties/ModelPackageStatus", + "shape": "ModelPackageStatus", + "source": [ + "sagemaker", + "2017-07-24" + ] + } + ], + "AWS::SageMaker::NotebookInstance": [ + { + "path": "/properties/DirectInternetAccess", + "shape": "DirectInternetAccess", + "source": [ + "sagemaker", + "2017-07-24" + ] + }, + { + "path": "/properties/RootAccess", + "shape": "RootAccess", + "source": [ + "sagemaker", + "2017-07-24" + ] + }, + { + "path": "/properties/InstanceType", + "shape": "InstanceType", + "source": [ + "sagemaker", + "2017-07-24" + ] + } + ], + "AWS::SecurityHub::Hub": [ + { + "path": "/properties/ControlFindingGenerator", + "shape": "ControlFindingGenerator", + "source": [ + "securityhub", + "2018-10-26" + ] + } + ], + "AWS::ServiceCatalog::CloudFormationProduct": [ + { + "path": "/properties/ProductType", + "shape": "ProductType", + "source": [ + "servicecatalog", + "2015-12-10" + ] + } + ], + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": [ + { + "path": "/properties/PrincipalType", + "shape": "PrincipalType", + "source": [ + "servicecatalog", + "2015-12-10" + ] + } + ], + "AWS::Transfer::Server": [ + { + "path": "/properties/EndpointType", + "shape": "EndpointType", + "source": [ + "transfer", + "2018-11-05" + ] + }, + { + "path": "/properties/Domain", + "shape": "Domain", + "source": [ + "transfer", + "2018-11-05" + ] + }, + { + "path": "/properties/IdentityProviderType", + "shape": "IdentityProviderType", + "source": [ + "transfer", + "2018-11-05" + ] + } + ], + "AWS::Transfer::User": [ + { + "path": "/properties/HomeDirectoryType", + "shape": "HomeDirectoryType", + "source": [ + "transfer", + "2018-11-05" + ] + } + ], + "AWS::VerifiedPermissions::Policy": [ + { + "path": "/properties/PolicyType", + "shape": "PolicyType", + "source": [ + "verifiedpermissions", + "2021-12-01" + ] + } + ], + "AWS::WAFv2::IPSet": [ + { + "path": "/properties/Scope", + "shape": "Scope", + "source": [ + "wafv2", + "2019-07-29" + ] + }, + { + "path": "/properties/IPAddressVersion", + "shape": "IPAddressVersion", + "source": [ + "wafv2", + "2019-07-29" + ] + } + ], + "AWS::WAFv2::RuleGroup": [ + { + "path": "/properties/Scope", + "shape": "Scope", + "source": [ + "wafv2", + "2019-07-29" + ] + } + ], + "AWS::WAFv2::WebACL": [ + { + "path": "/properties/Scope", + "shape": "Scope", + "source": [ + "wafv2", + "2019-07-29" + ] + } + ], + "AWS::Wisdom::AssistantAssociation": [ + { + "path": "/properties/AssociationType", + "shape": "AssociationType", + "source": [ + "wisdom", + "2020-10-19" + ] + } + ], + "AWS::Wisdom::KnowledgeBase": [ + { + "path": "/properties/KnowledgeBaseType", + "shape": "KnowledgeBaseType", + "source": [ + "wisdom", + "2020-10-19" + ] + } + ] +} diff --git a/scripts/update_schemas_from_boto.py b/scripts/boto/update_schemas_from_boto.py similarity index 97% rename from scripts/update_schemas_from_boto.py rename to scripts/boto/update_schemas_from_boto.py index 4a771e294b..2abfa1248c 100755 --- a/scripts/update_schemas_from_boto.py +++ b/scripts/boto/update_schemas_from_boto.py @@ -26,6 +26,16 @@ ResourcePatch( resource_type="AWS::AmazonMQ::Broker", patches=[ + Patch( + source=["mq", "2017-11-27"], + shape="AuthenticationStrategy", + path="/properties/AuthenticationStrategy", + ), + Patch( + source=["mq", "2017-11-27"], + shape="DataReplicationMode", + path="/properties/DataReplicationMode", + ), Patch( source=["mq", "2017-11-27"], shape="DeploymentMode", @@ -36,6 +46,26 @@ shape="EngineType", path="/properties/EngineType", ), + Patch( + source=["mq", "2017-11-27"], + shape="BrokerStorageType", + path="/properties/StorageType", + ), + ], + ), + ResourcePatch( + resource_type="AWS::AmazonMQ::Configuration", + patches=[ + Patch( + source=["mq", "2017-11-27"], + shape="AuthenticationStrategy", + path="/properties/AuthenticationStrategy", + ), + Patch( + source=["mq", "2017-11-27"], + shape="EngineType", + path="/properties/EngineType", + ), ], ), ResourcePatch( diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_broker/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_broker/boto.json index 35a39719e8..9b49d196bb 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_broker/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_broker/boto.json @@ -1,4 +1,20 @@ [ + { + "op": "add", + "path": "/properties/AuthenticationStrategy/enum", + "value": [ + "LDAP", + "SIMPLE" + ] + }, + { + "op": "add", + "path": "/properties/DataReplicationMode/enum", + "value": [ + "CRDR", + "NONE" + ] + }, { "op": "add", "path": "/properties/DeploymentMode/enum", @@ -15,5 +31,13 @@ "ACTIVEMQ", "RABBITMQ" ] + }, + { + "op": "add", + "path": "/properties/StorageType/enum", + "value": [ + "EBS", + "EFS" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/boto.json new file mode 100644 index 0000000000..a7b5428370 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/boto.json @@ -0,0 +1,18 @@ +[ + { + "op": "add", + "path": "/properties/AuthenticationStrategy/enum", + "value": [ + "LDAP", + "SIMPLE" + ] + }, + { + "op": "add", + "path": "/properties/EngineType/enum", + "value": [ + "ACTIVEMQ", + "RABBITMQ" + ] + } +] From da2756bf042208a9a48688258cb8f81ae2acc044 Mon Sep 17 00:00:00 2001 From: Kevin DeJong Date: Fri, 11 Oct 2024 11:35:06 -0700 Subject: [PATCH 2/7] Restructure boto patching --- scripts/boto/_manual_patches.py | 673 +++++++ scripts/boto/_types.py | 10 + scripts/boto/data.json | 2043 +++++++--------------- scripts/boto/update_schemas_from_boto.py | 1064 +---------- 4 files changed, 1323 insertions(+), 2467 deletions(-) create mode 100644 scripts/boto/_manual_patches.py create mode 100644 scripts/boto/_types.py diff --git a/scripts/boto/_manual_patches.py b/scripts/boto/_manual_patches.py new file mode 100644 index 0000000000..6bc8168759 --- /dev/null +++ b/scripts/boto/_manual_patches.py @@ -0,0 +1,673 @@ +""" +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: MIT-0 +""" + +from _types import AllPatches, Patch + +patches: AllPatches = { + "AWS::AmazonMQ::Broker": { + "/properties/AuthenticationStrategy": Patch( + source=["mq", "2017-11-27"], + shape="AuthenticationStrategy", + ), + "/properties/DataReplicationMode": Patch( + source=["mq", "2017-11-27"], + shape="DataReplicationMode", + ), + "/properties/DeploymentMode": Patch( + source=["mq", "2017-11-27"], + shape="DeploymentMode", + ), + "/properties/EngineType": Patch( + source=["mq", "2017-11-27"], + shape="EngineType", + ), + "/properties/StorageType": Patch( + source=["mq", "2017-11-27"], + shape="BrokerStorageType", + ), + }, + "AWS::AmazonMQ::Configuration": { + "/properties/AuthenticationStrategy": Patch( + source=["mq", "2017-11-27"], + shape="AuthenticationStrategy", + ), + "/properties/EngineType": Patch( + source=["mq", "2017-11-27"], + shape="EngineType", + ), + }, + "AWS::ApiGateway::RestApi": { + "/properties/ApiKeySourceType": Patch( + source=["apigateway", "2015-07-09"], + shape="ApiKeySourceType", + ), + }, + "AWS::ApiGateway::Authorizer": { + "/properties/Type": Patch( + source=["apigateway", "2015-07-09"], + shape="AuthorizerType", + ), + }, + "AWS::ApiGateway::GatewayResponse": { + "/properties/ResponseType": Patch( + source=["apigateway", "2015-07-09"], + shape="GatewayResponseType", + ), + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "/properties/PolicyType": Patch( + source=["application-autoscaling", "2016-02-06"], + shape="PolicyType", + ), + "/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType": Patch( + source=["application-autoscaling", "2016-02-06"], + shape="MetricType", + ), + }, + "AWS::AppSync::DataSource": { + "/properties/Type": Patch( + source=["appsync", "2017-07-25"], + shape="DataSourceType", + ), + }, + "AWS::AppSync::GraphQLApi": { + "/properties/AuthenticationType": Patch( + source=["appsync", "2017-07-25"], + shape="AuthenticationType", + ), + }, + "AWS::AppSync::Resolver": { + "/properties/Kind": Patch( + source=["appsync", "2017-07-25"], + shape="ResolverKind", + ), + }, + "AWS::AutoScaling::LaunchConfiguration": { + "/definitions/BlockDevice/properties/VolumeType": Patch( + source=["ec2", "2016-11-15"], + shape="VolumeType", + ), + }, + "AWS::AutoScaling::ScalingPolicy": { + "/definitions/CustomizedMetricSpecification/properties/Statistic": Patch( + source=["autoscaling", "2011-01-01"], + shape="MetricStatistic", + ), + "/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType": Patch( + source=["autoscaling", "2011-01-01"], + shape="MetricType", + ), + }, + "AWS::AutoScalingPlans::ScalingPlan": { + "/definitions/ScalingInstruction/properties/ScalableDimension": Patch( + source=["autoscaling-plans", "2018-01-06"], + shape="ScalableDimension", + ), + "/definitions/ScalingInstruction/properties/ServiceNamespace": Patch( + source=["autoscaling-plans", "2018-01-06"], + shape="ServiceNamespace", + ), + "/definitions/ScalingInstruction/properties/PredictiveScalingMaxCapacityBehavior": Patch( + source=["autoscaling-plans", "2018-01-06"], + shape="PredictiveScalingMaxCapacityBehavior", + ), + "/definitions/ScalingInstruction/properties/PredictiveScalingMode": Patch( + source=["autoscaling-plans", "2018-01-06"], + shape="PredictiveScalingMode", + ), + }, + "AWS::Budgets::Budget": { + "/definitions/BudgetData/properties/BudgetType": Patch( + source=["budgets", "2016-10-20"], + shape="BudgetType", + ), + "/definitions/BudgetData/properties/TimeUnit": Patch( + source=["budgets", "2016-10-20"], + shape="TimeUnit", + ), + "/definitions/Notification/properties/ComparisonOperator": Patch( + source=["budgets", "2016-10-20"], + shape="ComparisonOperator", + ), + "/definitions/Notification/properties/NotificationType": Patch( + source=["budgets", "2016-10-20"], + shape="NotificationType", + ), + "/definitions/Notification/properties/ThresholdType": Patch( + source=["budgets", "2016-10-20"], + shape="ThresholdType", + ), + "/definitions/Subscriber/properties/SubscriptionType": Patch( + source=["budgets", "2016-10-20"], + shape="SubscriptionType", + ), + }, + "AWS::CertificateManager::Certificate": { + "/properties/ValidationMethod": Patch( + source=["acm", "2015-12-08"], + shape="ValidationMethod", + ), + }, + "AWS::CloudFormation::StackSet": { + "/properties/PermissionModel": Patch( + source=["cloudformation", "2010-05-15"], + shape="PermissionModels", + ), + }, + "AWS::CloudFront::Distribution": { + "/definitions/CacheBehavior/properties/ViewerProtocolPolicy": Patch( + source=["cloudfront", "2020-05-31"], + shape="ViewerProtocolPolicy", + ), + "/definitions/GeoRestriction/properties/RestrictionType": Patch( + source=["cloudfront", "2020-05-31"], + shape="GeoRestrictionType", + ), + "/definitions/DistributionConfig/properties/HttpVersion": Patch( + source=["cloudfront", "2020-05-31"], + shape="HttpVersion", + ), + "/definitions/FunctionAssociation/properties/EventType": Patch( + source=["cloudfront", "2020-05-31"], + shape="EventType", + ), + "/definitions/LegacyCustomOrigin/properties/OriginProtocolPolicy": Patch( + source=["cloudfront", "2020-05-31"], + shape="OriginProtocolPolicy", + ), + "/definitions/CustomOriginConfig/properties/OriginSSLProtocols/items": Patch( + source=["cloudfront", "2020-05-31"], + shape="SslProtocol", + ), + "/definitions/LegacyCustomOrigin/properties/OriginSSLProtocols/items": Patch( + source=["cloudfront", "2020-05-31"], + shape="SslProtocol", + ), + "/definitions/DistributionConfig/properties/PriceClass": Patch( + source=["cloudfront", "2020-05-31"], + shape="PriceClass", + ), + "/definitions/ViewerCertificate/properties/MinimumProtocolVersion": Patch( + source=["cloudfront", "2020-05-31"], + shape="MinimumProtocolVersion", + ), + "/definitions/ViewerCertificate/properties/SslSupportMethod": Patch( + source=["cloudfront", "2020-05-31"], + shape="SSLSupportMethod", + ), + }, + "AWS::CloudWatch::Alarm": { + "/properties/ComparisonOperator": Patch( + source=["cloudwatch", "2010-08-01"], + shape="ComparisonOperator", + ), + "/properties/Statistic": Patch( + source=["cloudwatch", "2010-08-01"], + shape="Statistic", + ), + "/properties/Unit": Patch( + source=["cloudwatch", "2010-08-01"], + shape="StandardUnit", + ), + }, + "AWS::CodeBuild::Project": { + "/definitions/Artifacts/properties/Packaging": Patch( + source=["codebuild", "2016-10-06"], + shape="ArtifactPackaging", + ), + "/definitions/Artifacts/properties/Type": Patch( + source=["codebuild", "2016-10-06"], + shape="ArtifactsType", + ), + "/definitions/Environment/properties/ComputeType": Patch( + source=["codebuild", "2016-10-06"], + shape="ComputeType", + ), + "/definitions/Environment/properties/ImagePullCredentialsType": Patch( + source=["codebuild", "2016-10-06"], + shape="ImagePullCredentialsType", + ), + "/definitions/Environment/properties/Type": Patch( + source=["codebuild", "2016-10-06"], + shape="EnvironmentType", + ), + "/definitions/ProjectCache/properties/Type": Patch( + source=["codebuild", "2016-10-06"], + shape="CacheType", + ), + "/definitions/Source/properties/Type": Patch( + source=["codebuild", "2016-10-06"], + shape="SourceType", + ), + }, + "AWS::CodeCommit::Repository": { + "/definitions/RepositoryTrigger/properties/Events/items": Patch( + source=["codecommit", "2015-04-13"], + shape="RepositoryTriggerEventEnum", + ), + }, + "AWS::CodeDeploy::Application": { + "/properties/ComputePlatform": Patch( + source=["codedeploy", "2014-10-06"], + shape="ComputePlatform", + ), + }, + "AWS::CodeDeploy::DeploymentGroup": { + "/definitions/AutoRollbackConfiguration/properties/Events/items": Patch( + source=["codedeploy", "2014-10-06"], + shape="AutoRollbackEvent", + ), + "/definitions/DeploymentStyle/properties/DeploymentOption": Patch( + source=["codedeploy", "2014-10-06"], + shape="DeploymentOption", + ), + "/definitions/DeploymentStyle/properties/DeploymentType": Patch( + source=["codedeploy", "2014-10-06"], + shape="DeploymentType", + ), + "/definitions/TriggerConfig/properties/TriggerEvents/items": Patch( + source=["codedeploy", "2014-10-06"], + shape="TriggerEventType", + ), + }, + "AWS::CodeDeploy::DeploymentConfig": { + "/definitions/MinimumHealthyHosts/properties/Type": Patch( + source=["codedeploy", "2014-10-06"], + shape="MinimumHealthyHostsType", + ), + }, + "AWS::CodePipeline::Pipeline": { + "/definitions/ActionTypeId/properties/Category": Patch( + source=["codepipeline", "2015-07-09"], + shape="ActionCategory", + ), + "/definitions/ActionTypeId/properties/Owner": Patch( + source=["codepipeline", "2015-07-09"], + shape="ActionOwner", + ), + "/definitions/ArtifactStore/properties/Type": Patch( + source=["codepipeline", "2015-07-09"], + shape="ArtifactStoreType", + ), + "/definitions/BlockerDeclaration/properties/Type": Patch( + source=["codepipeline", "2015-07-09"], + shape="BlockerType", + ), + }, + "AWS::CodePipeline::CustomActionType": { + "/definitions/ConfigurationProperties/properties/Type": Patch( + source=["codepipeline", "2015-07-09"], + shape="ActionConfigurationPropertyType", + ), + }, + "AWS::CodePipeline::Webhook": { + "/properties/Authentication": Patch( + source=["codepipeline", "2015-07-09"], + shape="WebhookAuthenticationType", + ), + }, + "AWS::Cognito::UserPool": { + "/properties/AliasAttributes/items": Patch( + source=["cognito-idp", "2016-04-18"], + shape="AliasAttributeType", + ), + "/properties/UsernameAttributes/items": Patch( + source=["cognito-idp", "2016-04-18"], + shape="UsernameAttributeType", + ), + "/properties/MfaConfiguration": Patch( + source=["cognito-idp", "2016-04-18"], + shape="UserPoolMfaType", + ), + }, + "AWS::Cognito::UserPoolUser": { + "/properties/DesiredDeliveryMediums/items": Patch( + source=["cognito-idp", "2016-04-18"], + shape="DeliveryMediumType", + ), + "/properties/MessageAction": Patch( + source=["cognito-idp", "2016-04-18"], + shape="MessageActionType", + ), + }, + "AWS::Cognito::UserPoolClient": { + "/properties/ExplicitAuthFlows/items": Patch( + source=["cognito-idp", "2016-04-18"], + shape="ExplicitAuthFlowsType", + ), + }, + "AWS::Config::ConfigRule": { + "/definitions/Source/properties/Owner": Patch( + source=["config", "2014-11-12"], + shape="Owner", + ), + "/definitions/SourceDetail/properties/EventSource": Patch( + source=["config", "2014-11-12"], + shape="EventSource", + ), + "/definitions/SourceDetail/properties/MaximumExecutionFrequency": Patch( + source=["config", "2014-11-12"], + shape="MaximumExecutionFrequency", + ), + "/definitions/SourceDetail/properties/MessageType": Patch( + source=["config", "2014-11-12"], + shape="MessageType", + ), + }, + "AWS::DirectoryService::MicrosoftAD": { + "/properties/Edition": Patch( + source=["ds", "2015-04-16"], + shape="DirectoryEdition", + ), + }, + "AWS::DirectoryService::SimpleAD": { + "/properties/Size": Patch( + source=["ds", "2015-04-16"], + shape="DirectorySize", + ) + }, + "AWS::DLM::LifecyclePolicy": { + "/definitions/PolicyDetails/properties/ResourceTypes/items": Patch( + source=["dlm", "2018-01-12"], + shape="ResourceTypeValues", + ), + }, + "AWS::DMS::Endpoint": { + "/properties/SslMode": Patch( + source=["dms", "2016-01-01"], + shape="DmsSslModeValue", + ), + "/properties/EndpointType": Patch( + source=["dms", "2016-01-01"], + shape="ReplicationEndpointTypeValue", + ), + }, + "AWS::DynamoDB::Table": { + "/definitions/AttributeDefinition/properties/AttributeType": Patch( + source=["dynamodb", "2012-08-10"], + shape="ScalarAttributeType", + ), + "/properties/BillingMode": Patch( + source=["dynamodb", "2012-08-10"], + shape="BillingMode", + ), + "/definitions/KeySchema/properties/KeyType": Patch( + source=["dynamodb", "2012-08-10"], + shape="KeyType", + ), + "/definitions/Projection/properties/ProjectionType": Patch( + source=["dynamodb", "2012-08-10"], + shape="ProjectionType", + ), + "/definitions/StreamSpecification/properties/StreamViewType": Patch( + source=["dynamodb", "2012-08-10"], + shape="StreamViewType", + ), + }, + "AWS::EC2::CapacityReservation": { + "/properties/EndDateType": Patch( + source=["ec2", "2016-11-15"], + shape="EndDateType", + ), + "/properties/InstanceMatchCriteria": Patch( + source=["ec2", "2016-11-15"], + shape="InstanceMatchCriteria", + ), + "/properties/InstancePlatform": Patch( + source=["ec2", "2016-11-15"], + shape="CapacityReservationInstancePlatform", + ), + }, + "AWS::EC2::CustomerGateway": { + "/properties/Type": Patch( + source=["ec2", "2016-11-15"], + shape="GatewayType", + ), + }, + "AWS::EC2::EIP": { + "/properties/Domain": Patch( + source=["ec2", "2016-11-15"], + shape="DomainType", + ), + }, + "AWS::EC2::EC2Fleet": { + "/definitions/OnDemandOptionsRequest/properties/AllocationStrategy": Patch( + source=["ec2", "2016-11-15"], + shape="FleetOnDemandAllocationStrategy", + ), + }, + "AWS::EC2::Host": { + "/properties/AutoPlacement": Patch( + source=["ec2", "2016-11-15"], + shape="AutoPlacement", + ), + }, + "AWS::EC2::Instance": { + "/properties/Affinity": Patch( + source=["ec2", "2016-11-15"], + shape="Affinity", + ), + "/properties/Tenancy": Patch( + source=["ec2", "2016-11-15"], + shape="Tenancy", + ), + }, + "AWS::EC2::LaunchTemplate": { + "/definitions/LaunchTemplateData/properties/InstanceInitiatedShutdownBehavior": Patch( + source=["ec2", "2016-11-15"], + shape="ShutdownBehavior", + ), + "/definitions/InstanceMarketOptions/properties/MarketType": Patch( + source=["ec2", "2016-11-15"], + shape="MarketType", + ), + "/definitions/SpotOptions/properties/InstanceInterruptionBehavior": Patch( + source=["ec2", "2016-11-15"], + shape="SpotInstanceInterruptionBehavior", + ), + "/definitions/SpotOptions/properties/SpotInstanceType": Patch( + source=["ec2", "2016-11-15"], + shape="SpotInstanceType", + ), + "/definitions/Ebs/properties/VolumeType": Patch( + source=["ec2", "2016-11-15"], + shape="VolumeType", + ), + "/definitions/Placement/properties/Tenancy": Patch( + source=["ec2", "2016-11-15"], + shape="Tenancy", + ), + "/definitions/TagSpecification/properties/ResourceType": Patch( + source=["ec2", "2016-11-15"], + shape="ResourceType", + ), + }, + "AWS::EC2::NetworkAclEntry": { + "/properties/RuleAction": Patch( + source=["ec2", "2016-11-15"], + shape="RuleAction", + ), + }, + "AWS::EC2::NetworkInterfacePermission": { + "/properties/Permission": Patch( + source=["ec2", "2016-11-15"], + shape="InterfacePermissionType", + ), + }, + "AWS::EC2::PlacementGroup": { + "/properties/Strategy": Patch( + source=["ec2", "2016-11-15"], + shape="PlacementGroupStrategy", + ), + }, + "AWS::EC2::SpotFleet": { + "/definitions/EbsBlockDevice/properties/VolumeType": Patch( + source=["ec2", "2016-11-15"], + shape="VolumeType", + ), + }, + "AWS::ECS::TaskDefinition": { + "/properties/NetworkMode": Patch( + source=["ecs", "2014-11-13"], + shape="NetworkMode", + ), + "/definitions/ProxyConfiguration/properties/Type": Patch( + source=["ecs", "2014-11-13"], + shape="ProxyConfigurationType", + ), + }, + "AWS::EFS::FileSystem": { + "/definitions/LifecyclePolicy/properties/TransitionToIA": Patch( + source=["efs", "2015-02-01"], + shape="TransitionToIARules", + ), + "/properties/PerformanceMode": Patch( + source=["efs", "2015-02-01"], + shape="PerformanceMode", + ), + "/properties/ThroughputMode": Patch( + source=["efs", "2015-02-01"], + shape="ThroughputMode", + ), + }, + "AWS::Glue::Connection": { + "/definitions/ConnectionInput/properties/ConnectionType": Patch( + source=["glue", "2017-03-31"], + shape="ConnectionType", + ), + }, + "AWS::Glue::Crawler": { + "/definitions/SchemaChangePolicy/properties/DeleteBehavior": Patch( + source=["glue", "2017-03-31"], + shape="DeleteBehavior", + ), + "/definitions/SchemaChangePolicy/properties/UpdateBehavior": Patch( + source=["glue", "2017-03-31"], + shape="UpdateBehavior", + ), + }, + "AWS::Glue::Trigger": { + "/definitions/Predicate/properties/Logical": Patch( + source=["glue", "2017-03-31"], + shape="Logical", + ), + "/definitions/Condition/properties/LogicalOperator": Patch( + source=["glue", "2017-03-31"], + shape="LogicalOperator", + ), + "/properties/Type": Patch( + source=["glue", "2017-03-31"], + shape="TriggerType", + ), + }, + "AWS::GuardDuty::Detector": { + "/properties/FindingPublishingFrequency": Patch( + source=["guardduty", "2017-11-28"], + shape="FindingPublishingFrequency", + ), + }, + "AWS::GuardDuty::Filter": { + "/properties/Action": Patch( + source=["guardduty", "2017-11-28"], + shape="FilterAction", + ), + }, + "AWS::GuardDuty::IPSet": { + "/properties/Format": Patch( + source=["guardduty", "2017-11-28"], + shape="IpSetFormat", + ), + }, + "AWS::GuardDuty::ThreatIntelSet": { + "/properties/Format": Patch( + source=["guardduty", "2017-11-28"], + shape="ThreatIntelSetFormat", + ), + }, + "AWS::IAM::AccessKey": { + "/properties/Status": Patch( + source=["iam", "2010-05-08"], + shape="statusType", + ), + }, + "AWS::KinesisAnalyticsV2::Application": { + "/properties/RuntimeEnvironment": Patch( + source=["kinesisanalyticsv2", "2018-05-23"], + shape="RuntimeEnvironment", + ), + }, + "AWS::Lambda::Function": { + "/properties/Runtime": Patch( + source=["lambda", "2015-03-31"], + shape="Runtime", + ), + }, + "AWS::Lambda::EventSourceMapping": { + "/properties/StartingPosition": Patch( + source=["lambda", "2015-03-31"], + shape="EventSourcePosition", + ), + }, + "AWS::OpsWorks::Instance": { + "/definitions/EbsBlockDevice/properties/VolumeType": Patch( + source=["ec2", "2016-11-15"], + shape="VolumeType", + ), + }, + "AWS::OpsWorks::Layer": { + "/definitions/VolumeConfiguration/properties/VolumeType": Patch( + source=["ec2", "2016-11-15"], + shape="VolumeType", + ), + }, + "AWS::Route53::RecordSetGroup": { + "/definitions/RecordSet/properties/Failover": Patch( + source=["route53", "2013-04-01"], + shape="ResourceRecordSetFailover", + ), + "/definitions/RecordSet/properties/Type": Patch( + source=["route53", "2013-04-01"], + shape="RRType", + ), + }, + "AWS::Route53Resolver::ResolverEndpoint": { + "/properties/Direction": Patch( + source=["route53resolver", "2018-04-01"], + shape="ResolverEndpointDirection", + ), + }, + "AWS::ServiceDiscovery::Service": { + "/definitions/DnsRecord/properties/Type": Patch( + source=["servicediscovery", "2017-03-14"], + shape="RecordType", + ), + "/definitions/HealthCheckConfig/properties/Type": Patch( + source=["servicediscovery", "2017-03-14"], + shape="HealthCheckType", + ), + }, + "AWS::SES::ReceiptRule": { + "/definitions/Rule/properties/TlsPolicy": Patch( + source=["ses", "2010-12-01"], + shape="TlsPolicy", + ), + }, + "AWS::WAFRegional::Rule": { + "/definitions/Predicate/properties/Type": Patch( + source=["waf", "2015-08-24"], + shape="PredicateType", + ), + }, + "AWS::WorkSpaces::Workspace": { + "/definitions/WorkspaceProperties/properties/RunningMode": Patch( + source=["workspaces", "2015-04-08"], + shape="RunningMode", + ), + "/definitions/WorkspaceProperties/properties/ComputeTypeName": Patch( + source=["workspaces", "2015-04-08"], + shape="Compute", + ), + }, +} diff --git a/scripts/boto/_types.py b/scripts/boto/_types.py new file mode 100644 index 0000000000..1ff5814ef1 --- /dev/null +++ b/scripts/boto/_types.py @@ -0,0 +1,10 @@ +""" +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: MIT-0 +""" + +from collections import namedtuple + +Patch = namedtuple("Patch", ["source", "shape"]) +ResourcePatches = dict[str, Patch] +AllPatches = dict[str, ResourcePatches] diff --git a/scripts/boto/data.json b/scripts/boto/data.json index ccf20a6991..15aaa6cb4b 100644 --- a/scripts/boto/data.json +++ b/scripts/boto/data.json @@ -1,2202 +1,1389 @@ { - "AWS::AccessAnalyzer::Analyzer": [ - { - "path": "/properties/Type", + "AWS::AccessAnalyzer::Analyzer": { + "/properties/Type": { "shape": "Type", "source": [ "accessanalyzer", "2019-11-01" ] } - ], - "AWS::Amplify::Domain": [ - { - "path": "/properties/DomainStatus", - "shape": "DomainStatus", - "source": [ - "amplify", - "2017-07-25" - ] - }, - { - "path": "/properties/UpdateStatus", - "shape": "UpdateStatus", - "source": [ - "amplify", - "2017-07-25" - ] - } - ], - "AWS::AmplifyUIBuilder::Form": [ - { - "path": "/properties/FormActionType", - "shape": "FormActionType", - "source": [ - "amplifyuibuilder", - "2021-08-11" - ] - }, - { - "path": "/properties/LabelDecorator", - "shape": "LabelDecorator", - "source": [ - "amplifyuibuilder", - "2021-08-11" - ] - } - ], - "AWS::ApiGateway::DomainName": [ - { - "path": "/properties/SecurityPolicy", - "shape": "SecurityPolicy", - "source": [ - "apigateway", - "2015-07-09" - ] - } - ], - "AWS::ApiGateway::RestApi": [ - { - "path": "/properties/ApiKeySourceType", - "shape": "ApiKeySourceType", - "source": [ - "apigateway", - "2015-07-09" - ] - } - ], - "AWS::ApiGateway::Stage": [ - { - "path": "/properties/CacheClusterSize", - "shape": "CacheClusterSize", - "source": [ - "apigateway", - "2015-07-09" - ] - } - ], - "AWS::ApiGatewayV2::Api": [ - { - "path": "/properties/ProtocolType", - "shape": "ProtocolType", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - } - ], - "AWS::ApiGatewayV2::Authorizer": [ - { - "path": "/properties/AuthorizerType", - "shape": "AuthorizerType", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - } - ], - "AWS::ApiGatewayV2::Integration": [ - { - "path": "/properties/ConnectionType", - "shape": "ConnectionType", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - }, - { - "path": "/properties/ContentHandlingStrategy", - "shape": "ContentHandlingStrategy", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - }, - { - "path": "/properties/IntegrationType", - "shape": "IntegrationType", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - }, - { - "path": "/properties/PassthroughBehavior", - "shape": "PassthroughBehavior", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - } - ], - "AWS::ApiGatewayV2::IntegrationResponse": [ - { - "path": "/properties/ContentHandlingStrategy", - "shape": "ContentHandlingStrategy", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - } - ], - "AWS::ApiGatewayV2::Route": [ - { - "path": "/properties/AuthorizationType", - "shape": "AuthorizationType", - "source": [ - "apigatewayv2", - "2018-11-29" - ] - } - ], - "AWS::AppConfig::DeploymentStrategy": [ - { - "path": "/properties/ReplicateTo", - "shape": "ReplicateTo", - "source": [ - "appconfig", - "2019-10-09" - ] - }, - { - "path": "/properties/GrowthType", - "shape": "GrowthType", - "source": [ - "appconfig", - "2019-10-09" - ] - } - ], - "AWS::AppFlow::Connector": [ - { - "path": "/properties/ConnectorProvisioningType", + }, + "AWS::AppFlow::Connector": { + "/properties/ConnectorProvisioningType": { "shape": "ConnectorProvisioningType", "source": [ "appflow", "2020-08-23" ] } - ], - "AWS::AppFlow::ConnectorProfile": [ - { - "path": "/properties/ConnectorType", + }, + "AWS::AppFlow::ConnectorProfile": { + "/properties/ConnectorType": { "shape": "ConnectorType", "source": [ "appflow", "2020-08-23" ] } - ], - "AWS::AppStream::AppBlock": [ - { - "path": "/properties/PackagingType", + }, + "AWS::AppStream::AppBlock": { + "/properties/PackagingType": { "shape": "PackagingType", "source": [ "appstream", "2016-12-01" ] } - ], - "AWS::AppStream::Entitlement": [ - { - "path": "/properties/AppVisibility", - "shape": "AppVisibility", - "source": [ - "appstream", - "2016-12-01" - ] - } - ], - "AWS::AppStream::Fleet": [ - { - "path": "/properties/FleetType", - "shape": "FleetType", - "source": [ - "appstream", - "2016-12-01" - ] - }, - { - "path": "/properties/StreamView", - "shape": "StreamView", + }, + "AWS::AppStream::AppBlockBuilder": { + "/properties/Platform": { + "shape": "AppBlockBuilderPlatformType", "source": [ "appstream", "2016-12-01" ] } - ], - "AWS::AppStream::StackUserAssociation": [ - { - "path": "/properties/AuthenticationType", - "shape": "AuthenticationType", + }, + "AWS::AppStream::Entitlement": { + "/properties/AppVisibility": { + "shape": "AppVisibility", "source": [ "appstream", "2016-12-01" ] } - ], - "AWS::AppStream::User": [ - { - "path": "/properties/MessageAction", - "shape": "MessageAction", - "source": [ - "appstream", - "2016-12-01" - ] - }, - { - "path": "/properties/AuthenticationType", - "shape": "AuthenticationType", + }, + "AWS::AppSync::Resolver": { + "/properties/Kind": { + "shape": "ResolverKind", "source": [ - "appstream", - "2016-12-01" + "appsync", + "2017-07-25" ] } - ], - "AWS::AppSync::ApiCache": [ - { - "path": "/properties/ApiCachingBehavior", - "shape": "ApiCachingBehavior", + }, + "AWS::AutoScaling::WarmPool": { + "/properties/PoolState": { + "shape": "WarmPoolState", "source": [ - "appsync", - "2017-07-25" + "autoscaling", + "2011-01-01" ] } - ], - "AWS::AppSync::GraphQLApi": [ - { - "path": "/properties/AuthenticationType", - "shape": "AuthenticationType", + }, + "AWS::B2BI::Capability": { + "/properties/Type": { + "shape": "CapabilityType", "source": [ - "appsync", - "2017-07-25" + "b2bi", + "2022-06-23" ] } - ], - "AWS::B2BI::Profile": [ - { - "path": "/properties/Logging", + }, + "AWS::B2BI::Profile": { + "/properties/Logging": { "shape": "Logging", "source": [ "b2bi", "2022-06-23" ] } - ], - "AWS::B2BI::Transformer": [ - { - "path": "/properties/FileFormat", + }, + "AWS::B2BI::Transformer": { + "/properties/FileFormat": { "shape": "FileFormat", "source": [ "b2bi", "2022-06-23" ] } - ], - "AWS::CleanRooms::ConfiguredTable": [ - { - "path": "/properties/AnalysisMethod", + }, + "AWS::Batch::ComputeEnvironment": { + "/properties/Type": { + "shape": "CEType", + "source": [ + "batch", + "2016-08-10" + ] + } + }, + "AWS::CleanRooms::Collaboration": { + "/properties/QueryLogStatus": { + "shape": "CollaborationQueryLogStatus", + "source": [ + "cleanrooms", + "2022-02-17" + ] + } + }, + "AWS::CleanRooms::ConfiguredTable": { + "/properties/AnalysisMethod": { "shape": "AnalysisMethod", "source": [ "cleanrooms", "2022-02-17" ] } - ], - "AWS::Cloud9::EnvironmentEC2": [ - { - "path": "/properties/ConnectionType", - "shape": "ConnectionType", + }, + "AWS::CleanRooms::Membership": { + "/properties/QueryLogStatus": { + "shape": "MembershipQueryLogStatus", "source": [ - "cloud9", - "2017-09-23" + "cleanrooms", + "2022-02-17" ] } - ], - "AWS::CloudTrail::EventDataStore": [ - { - "path": "/properties/BillingMode", + }, + "AWS::CloudTrail::EventDataStore": { + "/properties/BillingMode": { "shape": "BillingMode", "source": [ "cloudtrail", "2013-11-01" ] } - ], - "AWS::CloudWatch::Alarm": [ - { - "path": "/properties/ComparisonOperator", + }, + "AWS::CloudWatch::Alarm": { + "/properties/ComparisonOperator": { "shape": "ComparisonOperator", "source": [ "cloudwatch", "2010-08-01" ] }, - { - "path": "/properties/Statistic", + "/properties/Statistic": { "shape": "Statistic", "source": [ "cloudwatch", "2010-08-01" ] - } - ], - "AWS::CodeBuild::SourceCredential": [ - { - "path": "/properties/ServerType", - "shape": "ServerType", - "source": [ - "codebuild", - "2016-10-06" - ] }, - { - "path": "/properties/AuthType", - "shape": "AuthType", + "/properties/Unit": { + "shape": "StandardUnit", "source": [ - "codebuild", - "2016-10-06" + "cloudwatch", + "2010-08-01" ] } - ], - "AWS::CodeConnections::Connection": [ - { - "path": "/properties/ConnectionStatus", - "shape": "ConnectionStatus", + }, + "AWS::CloudWatch::MetricStream": { + "/properties/OutputFormat": { + "shape": "MetricStreamOutputFormat", "source": [ - "codeconnections", - "2023-12-01" + "cloudwatch", + "2010-08-01" ] - }, - { - "path": "/properties/ProviderType", + } + }, + "AWS::CodeConnections::Connection": { + "/properties/ProviderType": { "shape": "ProviderType", "source": [ "codeconnections", "2023-12-01" ] } - ], - "AWS::CodeDeploy::Application": [ - { - "path": "/properties/ComputePlatform", + }, + "AWS::CodeDeploy::Application": { + "/properties/ComputePlatform": { "shape": "ComputePlatform", "source": [ "codedeploy", "2014-10-06" ] } - ], - "AWS::CodeDeploy::DeploymentConfig": [ - { - "path": "/properties/ComputePlatform", + }, + "AWS::CodeDeploy::DeploymentConfig": { + "/properties/ComputePlatform": { "shape": "ComputePlatform", "source": [ "codedeploy", "2014-10-06" ] } - ], - "AWS::CodeDeploy::DeploymentGroup": [ - { - "path": "/properties/OutdatedInstancesStrategy", - "shape": "OutdatedInstancesStrategy", + }, + "AWS::CodePipeline::CustomActionType": { + "/properties/Category": { + "shape": "ActionCategory", "source": [ - "codedeploy", - "2014-10-06" - ] - } - ], - "AWS::Config::ConfigRule": [ - { - "path": "/properties/MaximumExecutionFrequency", - "shape": "MaximumExecutionFrequency", - "source": [ - "config", - "2014-11-12" - ] - } - ], - "AWS::Config::RemediationConfiguration": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", - "source": [ - "config", - "2014-11-12" + "codepipeline", + "2015-07-09" ] } - ], - "AWS::Connect::InstanceStorageConfig": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", - "source": [ - "connect", - "2017-08-08" - ] - }, - { - "path": "/properties/StorageType", - "shape": "StorageType", + }, + "AWS::Connect::IntegrationAssociation": { + "/properties/IntegrationType": { + "shape": "IntegrationType", "source": [ "connect", "2017-08-08" ] } - ], - "AWS::Connect::IntegrationAssociation": [ - { - "path": "/properties/IntegrationType", - "shape": "IntegrationType", + }, + "AWS::Connect::TaskTemplate": { + "/properties/Status": { + "shape": "TaskTemplateStatus", "source": [ "connect", "2017-08-08" ] } - ], - "AWS::ControlTower::LandingZone": [ - { - "path": "/properties/DriftStatus", - "shape": "DriftStatus", + }, + "AWS::DataZone::DataSource": { + "/properties/EnableSetting": { + "shape": "EnableSetting", "source": [ - "controltower", + "datazone", "2018-05-10" ] } - ], - "AWS::DAX::Cluster": [ - { - "path": "/properties/ClusterEndpointEncryptionType", - "shape": "ClusterEndpointEncryptionType", + }, + "AWS::DataZone::ProjectMembership": { + "/properties/Designation": { + "shape": "UserDesignation", "source": [ - "dax", - "2017-04-19" + "datazone", + "2018-05-10" ] } - ], - "AWS::DMS::EventSubscription": [ - { - "path": "/properties/SourceType", - "shape": "SourceType", + }, + "AWS::DataZone::UserProfile": { + "/properties/UserType": { + "shape": "UserType", "source": [ - "dms", - "2016-01-01" + "datazone", + "2018-05-10" ] } - ], - "AWS::DataZone::DataSource": [ - { - "path": "/properties/EnableSetting", - "shape": "EnableSetting", + }, + "AWS::Deadline::Queue": { + "/properties/DefaultBudgetAction": { + "shape": "DefaultQueueBudgetAction", "source": [ - "datazone", - "2018-05-10" + "deadline", + "2023-10-12" ] } - ], - "AWS::DataZone::UserProfile": [ - { - "path": "/properties/UserType", - "shape": "UserType", + }, + "AWS::Deadline::QueueEnvironment": { + "/properties/TemplateType": { + "shape": "EnvironmentTemplateType", "source": [ - "datazone", - "2018-05-10" + "deadline", + "2023-10-12" ] } - ], - "AWS::DocDB::EventSubscription": [ - { - "path": "/properties/SourceType", - "shape": "SourceType", + }, + "AWS::Deadline::StorageProfile": { + "/properties/OsFamily": { + "shape": "StorageProfileOperatingSystemFamily", "source": [ - "docdb", - "2014-10-31" + "deadline", + "2023-10-12" ] } - ], - "AWS::DynamoDB::GlobalTable": [ - { - "path": "/properties/BillingMode", + }, + "AWS::DynamoDB::GlobalTable": { + "/properties/BillingMode": { "shape": "BillingMode", "source": [ "dynamodb", "2012-08-10" ] } - ], - "AWS::DynamoDB::Table": [ - { - "path": "/properties/BillingMode", + }, + "AWS::DynamoDB::Table": { + "/properties/BillingMode": { "shape": "BillingMode", "source": [ "dynamodb", "2012-08-10" ] }, - { - "path": "/properties/TableClass", + "/properties/TableClass": { "shape": "TableClass", "source": [ "dynamodb", "2012-08-10" ] } - ], - "AWS::EC2::CapacityReservation": [ - { - "path": "/properties/Tenancy", - "shape": "Tenancy", + }, + "AWS::EC2::CapacityReservation": { + "/properties/EndDateType": { + "shape": "EndDateType", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/EndDateType", - "shape": "EndDateType", + "/properties/InstanceMatchCriteria": { + "shape": "InstanceMatchCriteria", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/InstanceType", - "shape": "InstanceType", + "/properties/InstancePlatform": { + "shape": "CapacityReservationInstancePlatform", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/InstanceMatchCriteria", - "shape": "InstanceMatchCriteria", + "/properties/Tenancy": { + "shape": "CapacityReservationTenancy", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::CapacityReservationFleet": [ - { - "path": "/properties/AllocationStrategy", - "shape": "AllocationStrategy", + }, + "AWS::EC2::CustomerGateway": { + "/properties/Type": { + "shape": "GatewayType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::ClientVpnEndpoint": [ - { - "path": "/properties/SelfServicePortal", - "shape": "SelfServicePortal", - "source": [ - "ec2", - "2016-11-15" - ] - }, - { - "path": "/properties/TransportProtocol", - "shape": "TransportProtocol", + }, + "AWS::EC2::EIP": { + "/properties/Domain": { + "shape": "DomainType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::Host": [ - { - "path": "/properties/AutoPlacement", + }, + "AWS::EC2::Host": { + "/properties/AutoPlacement": { "shape": "AutoPlacement", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/HostRecovery", - "shape": "HostRecovery", - "source": [ - "ec2", - "2016-11-15" - ] - }, - { - "path": "/properties/InstanceType", - "shape": "InstanceType", + "/properties/HostMaintenance": { + "shape": "HostMaintenance", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/HostMaintenance", - "shape": "HostMaintenance", + "/properties/HostRecovery": { + "shape": "HostRecovery", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::IPAMPool": [ - { - "path": "/properties/AddressFamily", + }, + "AWS::EC2::IPAMPool": { + "/properties/AddressFamily": { "shape": "AddressFamily", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::Instance": [ - { - "path": "/properties/Tenancy", - "shape": "Tenancy", + }, + "AWS::EC2::Instance": { + "/properties/InstanceInitiatedShutdownBehavior": { + "shape": "ShutdownBehavior", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/InstanceType", + "/properties/InstanceType": { "shape": "InstanceType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::NatGateway": [ - { - "path": "/properties/ConnectivityType", - "shape": "ConnectivityType", + }, + "AWS::EC2::LocalGatewayRouteTable": { + "/properties/Mode": { + "shape": "LocalGatewayRouteTableMode", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::NetworkAclEntry": [ - { - "path": "/properties/RuleAction", - "shape": "RuleAction", + }, + "AWS::EC2::NatGateway": { + "/properties/ConnectivityType": { + "shape": "ConnectivityType", "source": [ "ec2", "2016-11-15" ] - }, - { - "path": "/properties/Protocol", - "shape": "Protocol", + } + }, + "AWS::EC2::NetworkAclEntry": { + "/properties/RuleAction": { + "shape": "RuleAction", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::NetworkInsightsPath": [ - { - "path": "/properties/Protocol", + }, + "AWS::EC2::NetworkInsightsPath": { + "/properties/Protocol": { "shape": "Protocol", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::PlacementGroup": [ - { - "path": "/properties/SpreadLevel", - "shape": "SpreadLevel", + }, + "AWS::EC2::NetworkInterface": { + "/properties/InterfaceType": { + "shape": "NetworkInterfaceCreationType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::SubnetCidrBlock": [ - { - "path": "/properties/Ipv6AddressAttribute", - "shape": "Ipv6AddressAttribute", - "source": [ - "ec2", - "2016-11-15" - ] - }, - { - "path": "/properties/IpSource", - "shape": "IpSource", - "source": [ - "ec2", - "2016-11-15" - ] - } - ], - "AWS::EC2::TrafficMirrorFilterRule": [ - { - "path": "/properties/RuleAction", - "shape": "RuleAction", - "source": [ - "ec2", - "2016-11-15" - ] - }, - { - "path": "/properties/TrafficDirection", - "shape": "TrafficDirection", + }, + "AWS::EC2::PlacementGroup": { + "/properties/SpreadLevel": { + "shape": "SpreadLevel", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/Protocol", - "shape": "Protocol", - "source": [ - "ec2", - "2016-11-15" - ] - } - ], - "AWS::EC2::TransitGatewayMulticastDomainAssociation": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", - "source": [ - "ec2", - "2016-11-15" - ] - } - ], - "AWS::EC2::TransitGatewayMulticastGroupMember": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", + "/properties/Strategy": { + "shape": "PlacementStrategy", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::TransitGatewayMulticastGroupSource": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", + }, + "AWS::EC2::VPC": { + "/properties/InstanceTenancy": { + "shape": "Tenancy", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::TransitGatewayPeeringAttachment": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::EC2::VPNGateway": { + "/properties/Type": { + "shape": "GatewayType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::VPCCidrBlock": [ - { - "path": "/properties/Ipv6AddressAttribute", - "shape": "Ipv6AddressAttribute", + }, + "AWS::EC2::VerifiedAccessEndpoint": { + "/properties/AttachmentType": { + "shape": "VerifiedAccessEndpointAttachmentType", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/IpSource", - "shape": "IpSource", + "/properties/EndpointType": { + "shape": "VerifiedAccessEndpointType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::VPCEndpointService": [ - { - "path": "/properties/PayerResponsibility", - "shape": "PayerResponsibility", - "source": [ - "ec2", - "2016-11-15" - ] - } - ], - "AWS::EC2::VPNConnection": [ - { - "path": "/properties/TunnelInsideIpVersion", - "shape": "TunnelInsideIpVersion", - "source": [ - "ec2", - "2016-11-15" - ] - } - ], - "AWS::EC2::VerifiedAccessEndpoint": [ - { - "path": "/properties/Status", - "shape": "Status", - "source": [ - "ec2", - "2016-11-15" - ] - } - ], - "AWS::EC2::VerifiedAccessTrustProvider": [ - { - "path": "/properties/TrustProviderType", - "shape": "TrustProviderType", + }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "/properties/DeviceTrustProviderType": { + "shape": "DeviceTrustProviderType", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/DeviceTrustProviderType", - "shape": "DeviceTrustProviderType", + "/properties/TrustProviderType": { + "shape": "TrustProviderType", "source": [ "ec2", "2016-11-15" ] }, - { - "path": "/properties/UserTrustProviderType", + "/properties/UserTrustProviderType": { "shape": "UserTrustProviderType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::EC2::Volume": [ - { - "path": "/properties/VolumeType", + }, + "AWS::EC2::Volume": { + "/properties/VolumeType": { "shape": "VolumeType", "source": [ "ec2", "2016-11-15" ] } - ], - "AWS::ECR::PullThroughCacheRule": [ - { - "path": "/properties/UpstreamRegistry", + }, + "AWS::ECR::PullThroughCacheRule": { + "/properties/UpstreamRegistry": { "shape": "UpstreamRegistry", "source": [ "ecr", "2015-09-21" ] } - ], - "AWS::ECS::TaskDefinition": [ - { - "path": "/properties/IpcMode", + }, + "AWS::ECS::TaskDefinition": { + "/properties/IpcMode": { "shape": "IpcMode", "source": [ "ecs", "2014-11-13" ] }, - { - "path": "/properties/NetworkMode", + "/properties/NetworkMode": { "shape": "NetworkMode", "source": [ "ecs", "2014-11-13" ] }, - { - "path": "/properties/PidMode", + "/properties/PidMode": { "shape": "PidMode", "source": [ "ecs", "2014-11-13" ] } - ], - "AWS::EFS::FileSystem": [ - { - "path": "/properties/PerformanceMode", + }, + "AWS::EFS::FileSystem": { + "/properties/PerformanceMode": { "shape": "PerformanceMode", "source": [ "efs", "2015-02-01" ] }, - { - "path": "/properties/ThroughputMode", + "/properties/ThroughputMode": { "shape": "ThroughputMode", "source": [ "efs", "2015-02-01" ] } - ], - "AWS::EMR::Cluster": [ - { - "path": "/properties/ScaleDownBehavior", - "shape": "ScaleDownBehavior", - "source": [ - "emr", - "2009-03-31" - ] - } - ], - "AWS::EMR::InstanceFleetConfig": [ - { - "path": "/properties/InstanceFleetType", - "shape": "InstanceFleetType", - "source": [ - "emr", - "2009-03-31" - ] - } - ], - "AWS::EMR::Step": [ - { - "path": "/properties/ActionOnFailure", - "shape": "ActionOnFailure", - "source": [ - "emr", - "2009-03-31" - ] - } - ], - "AWS::ElastiCache::CacheCluster": [ - { - "path": "/properties/NetworkType", - "shape": "NetworkType", - "source": [ - "elasticache", - "2015-02-02" - ] - }, - { - "path": "/properties/IpDiscovery", - "shape": "IpDiscovery", + }, + "AWS::EKS::Nodegroup": { + "/properties/AmiType": { + "shape": "AMITypes", "source": [ - "elasticache", - "2015-02-02" + "eks", + "2017-11-01" ] }, - { - "path": "/properties/AZMode", - "shape": "AZMode", + "/properties/CapacityType": { + "shape": "CapacityTypes", "source": [ - "elasticache", - "2015-02-02" + "eks", + "2017-11-01" ] } - ], - "AWS::ElastiCache::ReplicationGroup": [ - { - "path": "/properties/TransitEncryptionMode", - "shape": "TransitEncryptionMode", + }, + "AWS::EntityResolution::PolicyStatement": { + "/properties/Effect": { + "shape": "StatementEffect", "source": [ - "elasticache", - "2015-02-02" - ] - }, - { - "path": "/properties/IpDiscovery", - "shape": "IpDiscovery", - "source": [ - "elasticache", - "2015-02-02" - ] - }, - { - "path": "/properties/ClusterMode", - "shape": "ClusterMode", - "source": [ - "elasticache", - "2015-02-02" - ] - }, - { - "path": "/properties/NetworkType", - "shape": "NetworkType", - "source": [ - "elasticache", - "2015-02-02" - ] - } - ], - "AWS::FSx::FileSystem": [ - { - "path": "/properties/StorageType", - "shape": "StorageType", - "source": [ - "fsx", - "2018-03-01" - ] - }, - { - "path": "/properties/FileSystemType", - "shape": "FileSystemType", - "source": [ - "fsx", - "2018-03-01" - ] - } - ], - "AWS::FSx::Volume": [ - { - "path": "/properties/VolumeType", - "shape": "VolumeType", - "source": [ - "fsx", - "2018-03-01" + "entityresolution", + "2018-05-10" ] } - ], - "AWS::GameLift::Fleet": [ - { - "path": "/properties/EC2InstanceType", + }, + "AWS::GameLift::Fleet": { + "/properties/EC2InstanceType": { "shape": "EC2InstanceType", "source": [ "gamelift", "2015-10-01" ] } - ], - "AWS::GameLift::GameServerGroup": [ - { - "path": "/properties/BalancingStrategy", + }, + "AWS::GameLift::GameServerGroup": { + "/properties/BalancingStrategy": { "shape": "BalancingStrategy", "source": [ "gamelift", "2015-10-01" ] }, - { - "path": "/properties/GameServerProtectionPolicy", + "/properties/GameServerProtectionPolicy": { "shape": "GameServerProtectionPolicy", "source": [ "gamelift", "2015-10-01" ] } - ], - "AWS::Glue::DevEndpoint": [ - { - "path": "/properties/WorkerType", - "shape": "WorkerType", - "source": [ - "glue", - "2017-03-31" - ] - } - ], - "AWS::Glue::Job": [ - { - "path": "/properties/ExecutionClass", + }, + "AWS::Glue::Job": { + "/properties/ExecutionClass": { "shape": "ExecutionClass", "source": [ "glue", "2017-03-31" ] }, - { - "path": "/properties/JobMode", + "/properties/JobMode": { "shape": "JobMode", "source": [ "glue", "2017-03-31" ] } - ], - "AWS::Glue::MLTransform": [ - { - "path": "/properties/WorkerType", - "shape": "WorkerType", + }, + "AWS::Glue::Trigger": { + "/properties/Type": { + "shape": "TriggerType", "source": [ "glue", "2017-03-31" ] } - ], - "AWS::Grafana::Workspace": [ - { - "path": "/properties/SamlConfigurationStatus", - "shape": "SamlConfigurationStatus", - "source": [ - "grafana", - "2020-08-18" - ] - }, - { - "path": "/properties/AccountAccessType", + }, + "AWS::Grafana::Workspace": { + "/properties/AccountAccessType": { "shape": "AccountAccessType", "source": [ "grafana", "2020-08-18" ] }, - { - "path": "/properties/PermissionType", + "/properties/PermissionType": { "shape": "PermissionType", "source": [ "grafana", "2020-08-18" ] } - ], - "AWS::GuardDuty::Detector": [ - { - "path": "/properties/FindingPublishingFrequency", + }, + "AWS::GuardDuty::Detector": { + "/properties/FindingPublishingFrequency": { "shape": "FindingPublishingFrequency", "source": [ "guardduty", "2017-11-28" ] } - ], - "AWS::HealthLake::FHIRDatastore": [ - { - "path": "/properties/DatastoreStatus", - "shape": "DatastoreStatus", + }, + "AWS::GuardDuty::Filter": { + "/properties/Action": { + "shape": "FilterAction", "source": [ - "healthlake", - "2017-07-01" + "guardduty", + "2017-11-28" ] } - ], - "AWS::IoT::SoftwarePackageVersion": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::GuardDuty::IPSet": { + "/properties/Format": { + "shape": "IpSetFormat", "source": [ - "iot", - "2015-05-28" + "guardduty", + "2017-11-28" ] } - ], - "AWS::IoT::TopicRuleDestination": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::GuardDuty::ThreatIntelSet": { + "/properties/Format": { + "shape": "ThreatIntelSetFormat", "source": [ - "iot", - "2015-05-28" + "guardduty", + "2017-11-28" ] } - ], - "AWS::IoTFleetHub::Application": [ - { - "path": "/properties/ApplicationState", - "shape": "ApplicationState", + }, + "AWS::HealthLake::FHIRDatastore": { + "/properties/DatastoreTypeVersion": { + "shape": "FHIRVersion", "source": [ - "iotfleethub", - "2020-11-03" + "healthlake", + "2017-07-01" ] } - ], - "AWS::IoTFleetWise::Campaign": [ - { - "path": "/properties/Compression", + }, + "AWS::IoT::FleetMetric": { + "/properties/Unit": { + "shape": "FleetMetricUnit", + "source": [ + "iot", + "2015-05-28" + ] + } + }, + "AWS::IoTFleetWise::Campaign": { + "/properties/Compression": { "shape": "Compression", "source": [ "iotfleetwise", "2021-06-17" ] }, - { - "path": "/properties/SpoolingMode", - "shape": "SpoolingMode", + "/properties/DiagnosticsMode": { + "shape": "DiagnosticsMode", "source": [ "iotfleetwise", "2021-06-17" ] }, - { - "path": "/properties/DiagnosticsMode", - "shape": "DiagnosticsMode", + "/properties/SpoolingMode": { + "shape": "SpoolingMode", + "source": [ + "iotfleetwise", + "2021-06-17" + ] + } + }, + "AWS::IoTFleetWise::Vehicle": { + "/properties/AssociationBehavior": { + "shape": "VehicleAssociationBehavior", "source": [ "iotfleetwise", "2021-06-17" ] } - ], - "AWS::IoTSiteWise::AssetModel": [ - { - "path": "/properties/AssetModelType", + }, + "AWS::IoTSiteWise::AccessPolicy": { + "/properties/AccessPolicyPermission": { + "shape": "Permission", + "source": [ + "iotsitewise", + "2019-12-02" + ] + } + }, + "AWS::IoTSiteWise::AssetModel": { + "/properties/AssetModelType": { "shape": "AssetModelType", "source": [ "iotsitewise", "2019-12-02" ] } - ], - "AWS::IoTWireless::FuotaTask": [ - { - "path": "/properties/FuotaTaskStatus", - "shape": "FuotaTaskStatus", + }, + "AWS::IoTSiteWise::Portal": { + "/properties/PortalAuthMode": { + "shape": "AuthMode", "source": [ - "iotwireless", - "2020-11-22" + "iotsitewise", + "2019-12-02" ] } - ], - "AWS::Kendra::DataSource": [ - { - "path": "/properties/Type", - "shape": "Type", + }, + "AWS::Kendra::DataSource": { + "/properties/Type": { + "shape": "DataSourceType", "source": [ "kendra", "2019-02-03" ] } - ], - "AWS::Kendra::Index": [ - { - "path": "/properties/UserContextPolicy", - "shape": "UserContextPolicy", + }, + "AWS::Kendra::Faq": { + "/properties/FileFormat": { + "shape": "FaqFileFormat", "source": [ "kendra", "2019-02-03" ] } - ], - "AWS::Kinesis::StreamConsumer": [ - { - "path": "/properties/ConsumerStatus", - "shape": "ConsumerStatus", + }, + "AWS::Kendra::Index": { + "/properties/Edition": { + "shape": "IndexEdition", "source": [ - "kinesis", - "2013-12-02" + "kendra", + "2019-02-03" + ] + }, + "/properties/UserContextPolicy": { + "shape": "UserContextPolicy", + "source": [ + "kendra", + "2019-02-03" ] } - ], - "AWS::KinesisAnalyticsV2::Application": [ - { - "path": "/properties/RuntimeEnvironment", + }, + "AWS::KinesisAnalyticsV2::Application": { + "/properties/RuntimeEnvironment": { "shape": "RuntimeEnvironment", "source": [ "kinesisanalyticsv2", "2018-05-23" ] } - ], - "AWS::Lambda::Alias": [ - { - "path": "/properties/FunctionVersion", - "shape": "FunctionVersion", + }, + "AWS::Lambda::EventSourceMapping": { + "/properties/StartingPosition": { + "shape": "EventSourcePosition", "source": [ "lambda", "2015-03-31" ] } - ], - "AWS::Lambda::Function": [ - { - "path": "/properties/Runtime", - "shape": "Runtime", + }, + "AWS::Lambda::Function": { + "/properties/RecursiveLoop": { + "shape": "RecursiveLoop", "source": [ "lambda", "2015-03-31" ] }, - { - "path": "/properties/RecursiveLoop", - "shape": "RecursiveLoop", + "/properties/Runtime": { + "shape": "Runtime", "source": [ "lambda", "2015-03-31" ] } - ], - "AWS::Lightsail::Alarm": [ - { - "path": "/properties/MetricName", - "shape": "MetricName", + }, + "AWS::Lightsail::Alarm": { + "/properties/ComparisonOperator": { + "shape": "ComparisonOperator", "source": [ "lightsail", "2016-11-28" ] }, - { - "path": "/properties/ComparisonOperator", - "shape": "ComparisonOperator", + "/properties/MetricName": { + "shape": "MetricName", "source": [ "lightsail", "2016-11-28" ] }, - { - "path": "/properties/TreatMissingData", + "/properties/TreatMissingData": { "shape": "TreatMissingData", "source": [ "lightsail", "2016-11-28" ] } - ], - "AWS::Lightsail::Certificate": [ - { - "path": "/properties/Status", - "shape": "Status", - "source": [ - "lightsail", - "2016-11-28" - ] - } - ], - "AWS::Lightsail::Disk": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", + }, + "AWS::Lightsail::Container": { + "/properties/Power": { + "shape": "ContainerServicePowerName", "source": [ "lightsail", "2016-11-28" ] } - ], - "AWS::Lightsail::Distribution": [ - { - "path": "/properties/IpAddressType", + }, + "AWS::Lightsail::Distribution": { + "/properties/IpAddressType": { "shape": "IpAddressType", "source": [ "lightsail", "2016-11-28" ] - }, - { - "path": "/properties/Status", - "shape": "Status", - "source": [ - "lightsail", - "2016-11-28" - ] } - ], - "AWS::Lightsail::Instance": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", - "source": [ - "lightsail", - "2016-11-28" - ] - } - ], - "AWS::Lightsail::LoadBalancer": [ - { - "path": "/properties/IpAddressType", + }, + "AWS::Lightsail::LoadBalancer": { + "/properties/IpAddressType": { "shape": "IpAddressType", "source": [ "lightsail", "2016-11-28" ] } - ], - "AWS::Lightsail::LoadBalancerTlsCertificate": [ - { - "path": "/properties/Status", - "shape": "Status", - "source": [ - "lightsail", - "2016-11-28" - ] - } - ], - "AWS::Location::GeofenceCollection": [ - { - "path": "/properties/PricingPlan", + }, + "AWS::Location::GeofenceCollection": { + "/properties/PricingPlan": { "shape": "PricingPlan", "source": [ "location", "2020-11-19" ] } - ], - "AWS::Location::Map": [ - { - "path": "/properties/PricingPlan", + }, + "AWS::Location::Map": { + "/properties/PricingPlan": { "shape": "PricingPlan", "source": [ "location", "2020-11-19" ] } - ], - "AWS::Location::PlaceIndex": [ - { - "path": "/properties/PricingPlan", + }, + "AWS::Location::PlaceIndex": { + "/properties/PricingPlan": { "shape": "PricingPlan", "source": [ "location", "2020-11-19" ] } - ], - "AWS::Location::RouteCalculator": [ - { - "path": "/properties/PricingPlan", + }, + "AWS::Location::RouteCalculator": { + "/properties/PricingPlan": { "shape": "PricingPlan", "source": [ "location", "2020-11-19" ] } - ], - "AWS::Location::Tracker": [ - { - "path": "/properties/PositionFiltering", + }, + "AWS::Location::Tracker": { + "/properties/PositionFiltering": { "shape": "PositionFiltering", "source": [ "location", "2020-11-19" ] }, - { - "path": "/properties/PricingPlan", + "/properties/PricingPlan": { "shape": "PricingPlan", "source": [ "location", "2020-11-19" ] } - ], - "AWS::Logs::Delivery": [ - { - "path": "/properties/DeliveryDestinationType", - "shape": "DeliveryDestinationType", - "source": [ - "logs", - "2014-03-28" - ] - } - ], - "AWS::Logs::DeliveryDestination": [ - { - "path": "/properties/DeliveryDestinationType", - "shape": "DeliveryDestinationType", - "source": [ - "logs", - "2014-03-28" - ] - } - ], - "AWS::Logs::LogAnomalyDetector": [ - { - "path": "/properties/AnomalyDetectorStatus", - "shape": "AnomalyDetectorStatus", - "source": [ - "logs", - "2014-03-28" - ] - } - ], - "AWS::M2::Application": [ - { - "path": "/properties/EngineType", + }, + "AWS::M2::Application": { + "/properties/EngineType": { "shape": "EngineType", "source": [ "m2", "2021-04-28" ] } - ], - "AWS::M2::Environment": [ - { - "path": "/properties/EngineType", + }, + "AWS::M2::Environment": { + "/properties/EngineType": { "shape": "EngineType", "source": [ "m2", "2021-04-28" ] } - ], - "AWS::MWAA::Environment": [ - { - "path": "/properties/WebserverAccessMode", - "shape": "WebserverAccessMode", + }, + "AWS::MWAA::Environment": { + "/properties/EndpointManagement": { + "shape": "EndpointManagement", "source": [ "mwaa", "2020-07-01" ] }, - { - "path": "/properties/EndpointManagement", - "shape": "EndpointManagement", + "/properties/WebserverAccessMode": { + "shape": "WebserverAccessMode", "source": [ "mwaa", "2020-07-01" ] } - ], - "AWS::ManagedBlockchain::Accessor": [ - { - "path": "/properties/AccessorType", + }, + "AWS::ManagedBlockchain::Accessor": { + "/properties/AccessorType": { "shape": "AccessorType", "source": [ "managedblockchain", "2018-09-24" ] - } - ], - "AWS::MediaConnect::Bridge": [ - { - "path": "/properties/BridgeState", - "shape": "BridgeState", + }, + "/properties/NetworkType": { + "shape": "AccessorNetworkType", "source": [ - "mediaconnect", - "2018-11-14" + "managedblockchain", + "2018-09-24" ] } - ], - "AWS::MediaConvert::JobTemplate": [ - { - "path": "/properties/StatusUpdateInterval", - "shape": "StatusUpdateInterval", + }, + "AWS::MediaLive::CloudWatchAlarmTemplate": { + "/properties/ComparisonOperator": { + "shape": "CloudWatchAlarmTemplateComparisonOperator", "source": [ - "mediaconvert", - "2017-08-29" + "medialive", + "2017-10-14" ] - } - ], - "AWS::MediaConvert::Queue": [ - { - "path": "/properties/PricingPlan", - "shape": "PricingPlan", + }, + "/properties/Statistic": { + "shape": "CloudWatchAlarmTemplateStatistic", "source": [ - "mediaconvert", - "2017-08-29" + "medialive", + "2017-10-14" ] - } - ], - "AWS::MediaLive::Channel": [ - { - "path": "/properties/LogLevel", - "shape": "LogLevel", + }, + "/properties/TargetResourceType": { + "shape": "CloudWatchAlarmTemplateTargetResourceType", "source": [ "medialive", "2017-10-14" ] }, - { - "path": "/properties/ChannelClass", - "shape": "ChannelClass", + "/properties/TreatMissingData": { + "shape": "CloudWatchAlarmTemplateTreatMissingData", "source": [ "medialive", "2017-10-14" ] } - ], - "AWS::MediaLive::Cluster": [ - { - "path": "/properties/ClusterType", + }, + "AWS::MediaLive::Cluster": { + "/properties/ClusterType": { "shape": "ClusterType", "source": [ "medialive", "2017-10-14" ] } - ], - "AWS::MediaLive::Multiplexprogram": [ - { - "path": "/properties/PreferredChannelPipeline", - "shape": "PreferredChannelPipeline", + }, + "AWS::MediaLive::EventBridgeRuleTemplate": { + "/properties/EventType": { + "shape": "EventBridgeRuleTemplateEventType", "source": [ "medialive", "2017-10-14" ] } - ], - "AWS::MediaPackageV2::Channel": [ - { - "path": "/properties/InputType", + }, + "AWS::MediaPackageV2::Channel": { + "/properties/InputType": { "shape": "InputType", "source": [ "mediapackagev2", "2022-12-25" ] } - ], - "AWS::MediaPackageV2::OriginEndpoint": [ - { - "path": "/properties/ContainerType", + }, + "AWS::MediaPackageV2::OriginEndpoint": { + "/properties/ContainerType": { "shape": "ContainerType", "source": [ "mediapackagev2", "2022-12-25" ] } - ], - "AWS::MediaTailor::Channel": [ - { - "path": "/properties/PlaybackMode", + }, + "AWS::MediaTailor::Channel": { + "/properties/PlaybackMode": { "shape": "PlaybackMode", "source": [ "mediatailor", "2018-04-23" ] }, - { - "path": "/properties/Tier", + "/properties/Tier": { "shape": "Tier", "source": [ "mediatailor", "2018-04-23" ] } - ], - "AWS::Neptune::EventSubscription": [ - { - "path": "/properties/SourceType", - "shape": "SourceType", + }, + "AWS::Omics::AnnotationStore": { + "/properties/StoreFormat": { + "shape": "StoreFormat", "source": [ - "neptune", - "2014-10-31" + "omics", + "2022-11-28" ] } - ], - "AWS::NetworkManager::ConnectAttachment": [ - { - "path": "/properties/AttachmentType", - "shape": "AttachmentType", + }, + "AWS::Omics::Workflow": { + "/properties/Accelerators": { + "shape": "Accelerators", "source": [ - "networkmanager", - "2019-07-05" + "omics", + "2022-11-28" ] - } - ], - "AWS::NetworkManager::SiteToSiteVpnAttachment": [ - { - "path": "/properties/AttachmentType", - "shape": "AttachmentType", + }, + "/properties/Engine": { + "shape": "WorkflowEngine", "source": [ - "networkmanager", - "2019-07-05" + "omics", + "2022-11-28" ] } - ], - "AWS::NetworkManager::TransitGatewayPeering": [ - { - "path": "/properties/PeeringType", - "shape": "PeeringType", + }, + "AWS::OpenSearchServerless::AccessPolicy": { + "/properties/Type": { + "shape": "AccessPolicyType", "source": [ - "networkmanager", - "2019-07-05" + "opensearchserverless", + "2021-11-01" ] } - ], - "AWS::NetworkManager::TransitGatewayRouteTableAttachment": [ - { - "path": "/properties/AttachmentType", - "shape": "AttachmentType", + }, + "AWS::OpenSearchServerless::Collection": { + "/properties/StandbyReplicas": { + "shape": "StandbyReplicas", "source": [ - "networkmanager", - "2019-07-05" + "opensearchserverless", + "2021-11-01" ] - } - ], - "AWS::NetworkManager::VpcAttachment": [ - { - "path": "/properties/AttachmentType", - "shape": "AttachmentType", + }, + "/properties/Type": { + "shape": "CollectionType", "source": [ - "networkmanager", - "2019-07-05" + "opensearchserverless", + "2021-11-01" ] } - ], - "AWS::Omics::AnnotationStore": [ - { - "path": "/properties/StoreFormat", - "shape": "StoreFormat", + }, + "AWS::OpenSearchServerless::LifecyclePolicy": { + "/properties/Type": { + "shape": "LifecyclePolicyType", "source": [ - "omics", - "2022-11-28" + "opensearchserverless", + "2021-11-01" ] } - ], - "AWS::Omics::Workflow": [ - { - "path": "/properties/Accelerators", - "shape": "Accelerators", + }, + "AWS::OpenSearchServerless::SecurityConfig": { + "/properties/Type": { + "shape": "SecurityConfigType", "source": [ - "omics", - "2022-11-28" + "opensearchserverless", + "2021-11-01" ] } - ], - "AWS::OpenSearchServerless::Collection": [ - { - "path": "/properties/StandbyReplicas", - "shape": "StandbyReplicas", + }, + "AWS::OpenSearchServerless::SecurityPolicy": { + "/properties/Type": { + "shape": "SecurityPolicyType", "source": [ "opensearchserverless", "2021-11-01" ] } - ], - "AWS::OpsWorks::Instance": [ - { - "path": "/properties/Architecture", - "shape": "Architecture", - "source": [ - "opsworks", - "2013-02-18" - ] - }, - { - "path": "/properties/AutoScalingType", - "shape": "AutoScalingType", + }, + "AWS::Pipes::Pipe": { + "/properties/DesiredState": { + "shape": "RequestedPipeState", "source": [ - "opsworks", - "2013-02-18" + "pipes", + "2015-10-07" ] - }, - { - "path": "/properties/RootDeviceType", - "shape": "RootDeviceType", - "source": [ - "opsworks", - "2013-02-18" - ] - }, - { - "path": "/properties/VirtualizationType", - "shape": "VirtualizationType", + } + }, + "AWS::Proton::EnvironmentTemplate": { + "/properties/Provisioning": { + "shape": "Provisioning", "source": [ - "opsworks", - "2013-02-18" + "proton", + "2020-07-20" ] } - ], - "AWS::Proton::EnvironmentTemplate": [ - { - "path": "/properties/Provisioning", + }, + "AWS::Proton::ServiceTemplate": { + "/properties/PipelineProvisioning": { "shape": "Provisioning", "source": [ "proton", "2020-07-20" ] } - ], - "AWS::QBusiness::Application": [ - { - "path": "/properties/IdentityType", + }, + "AWS::QBusiness::Application": { + "/properties/IdentityType": { "shape": "IdentityType", "source": [ "qbusiness", "2023-11-27" ] - }, - { - "path": "/properties/Status", - "shape": "Status", - "source": [ - "qbusiness", - "2023-11-27" - ] } - ], - "AWS::QBusiness::DataSource": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::QBusiness::Index": { + "/properties/Type": { + "shape": "IndexType", "source": [ "qbusiness", "2023-11-27" ] } - ], - "AWS::QBusiness::Index": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::QBusiness::Plugin": { + "/properties/Type": { + "shape": "PluginType", "source": [ "qbusiness", "2023-11-27" ] } - ], - "AWS::QBusiness::Retriever": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::QBusiness::Retriever": { + "/properties/Type": { + "shape": "RetrieverType", "source": [ "qbusiness", "2023-11-27" ] } - ], - "AWS::QBusiness::WebExperience": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::QBusiness::WebExperience": { + "/properties/SamplePromptsControlMode": { + "shape": "WebExperienceSamplePromptsControlMode", "source": [ "qbusiness", "2023-11-27" ] } - ], - "AWS::QLDB::Ledger": [ - { - "path": "/properties/PermissionsMode", - "shape": "PermissionsMode", - "source": [ - "qldb", - "2019-01-02" - ] - } - ], - "AWS::QuickSight::Analysis": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::QuickSight::DataSet": { + "/properties/ImportMode": { + "shape": "DataSetImportMode", "source": [ "quicksight", "2018-04-01" ] } - ], - "AWS::QuickSight::DataSource": [ - { - "path": "/properties/Status", - "shape": "Status", + }, + "AWS::QuickSight::DataSource": { + "/properties/Type": { + "shape": "DataSourceType", "source": [ "quicksight", "2018-04-01" ] } - ], - "AWS::QuickSight::Folder": [ - { - "path": "/properties/FolderType", + }, + "AWS::QuickSight::Folder": { + "/properties/FolderType": { "shape": "FolderType", "source": [ "quicksight", "2018-04-01" ] }, - { - "path": "/properties/SharingModel", + "/properties/SharingModel": { "shape": "SharingModel", "source": [ "quicksight", "2018-04-01" ] } - ], - "AWS::QuickSight::VPCConnection": [ - { - "path": "/properties/Status", - "shape": "Status", - "source": [ - "quicksight", - "2018-04-01" - ] - } - ], - "AWS::RAM::Permission": [ - { - "path": "/properties/PermissionType", - "shape": "PermissionType", - "source": [ - "ram", - "2018-01-04" - ] - } - ], - "AWS::RDS::DBInstance": [ - { - "path": "/properties/ReplicaMode", + }, + "AWS::RDS::DBInstance": { + "/properties/ReplicaMode": { "shape": "ReplicaMode", "source": [ "rds", "2014-10-31" ] } - ], - "AWS::RDS::EventSubscription": [ - { - "path": "/properties/SourceType", - "shape": "SourceType", - "source": [ - "rds", - "2014-10-31" - ] - } - ], - "AWS::Redshift::Cluster": [ - { - "path": "/properties/AquaConfigurationStatus", + }, + "AWS::Redshift::Cluster": { + "/properties/AquaConfigurationStatus": { "shape": "AquaConfigurationStatus", "source": [ "redshift", "2012-12-01" ] } - ], - "AWS::Route53Resolver::ResolverEndpoint": [ - { - "path": "/properties/ResolverEndpointType", - "shape": "ResolverEndpointType", - "source": [ - "route53resolver", - "2018-04-01" - ] - } - ], - "AWS::S3::Bucket": [ - { - "path": "/properties/ObjectLockEnabled", - "shape": "ObjectLockEnabled", - "source": [ - "s3", - "2006-03-01" - ] - } - ], - "AWS::SSM::MaintenanceWindowTarget": [ - { - "path": "/properties/ResourceType", - "shape": "ResourceType", - "source": [ - "ssm", - "2014-11-06" - ] - } - ], - "AWS::SageMaker::FeatureGroup": [ - { - "path": "/properties/FeatureGroupStatus", - "shape": "FeatureGroupStatus", - "source": [ - "sagemaker", - "2017-07-24" - ] - } - ], - "AWS::SageMaker::ImageVersion": [ - { - "path": "/properties/VendorGuidance", - "shape": "VendorGuidance", - "source": [ - "sagemaker", - "2017-07-24" - ] - }, - { - "path": "/properties/JobType", + }, + "AWS::SageMaker::ImageVersion": { + "/properties/JobType": { "shape": "JobType", "source": [ "sagemaker", "2017-07-24" ] }, - { - "path": "/properties/Processor", + "/properties/Processor": { "shape": "Processor", "source": [ "sagemaker", "2017-07-24" ] - } - ], - "AWS::SageMaker::InferenceComponent": [ - { - "path": "/properties/InferenceComponentStatus", - "shape": "InferenceComponentStatus", + }, + "/properties/VendorGuidance": { + "shape": "VendorGuidance", "source": [ "sagemaker", "2017-07-24" ] } - ], - "AWS::SageMaker::ModelPackage": [ - { - "path": "/properties/ModelApprovalStatus", + }, + "AWS::SageMaker::ModelPackage": { + "/properties/ModelApprovalStatus": { "shape": "ModelApprovalStatus", "source": [ "sagemaker", "2017-07-24" ] }, - { - "path": "/properties/SkipModelValidation", + "/properties/SkipModelValidation": { "shape": "SkipModelValidation", "source": [ "sagemaker", "2017-07-24" ] - }, - { - "path": "/properties/ModelPackageStatus", - "shape": "ModelPackageStatus", - "source": [ - "sagemaker", - "2017-07-24" - ] - } - ], - "AWS::SageMaker::NotebookInstance": [ - { - "path": "/properties/DirectInternetAccess", - "shape": "DirectInternetAccess", - "source": [ - "sagemaker", - "2017-07-24" - ] - }, - { - "path": "/properties/RootAccess", - "shape": "RootAccess", - "source": [ - "sagemaker", - "2017-07-24" - ] - }, - { - "path": "/properties/InstanceType", - "shape": "InstanceType", - "source": [ - "sagemaker", - "2017-07-24" - ] - } - ], - "AWS::SecurityHub::Hub": [ - { - "path": "/properties/ControlFindingGenerator", - "shape": "ControlFindingGenerator", - "source": [ - "securityhub", - "2018-10-26" - ] - } - ], - "AWS::ServiceCatalog::CloudFormationProduct": [ - { - "path": "/properties/ProductType", - "shape": "ProductType", - "source": [ - "servicecatalog", - "2015-12-10" - ] - } - ], - "AWS::ServiceCatalog::PortfolioPrincipalAssociation": [ - { - "path": "/properties/PrincipalType", - "shape": "PrincipalType", - "source": [ - "servicecatalog", - "2015-12-10" - ] - } - ], - "AWS::Transfer::Server": [ - { - "path": "/properties/EndpointType", - "shape": "EndpointType", - "source": [ - "transfer", - "2018-11-05" - ] - }, - { - "path": "/properties/Domain", - "shape": "Domain", - "source": [ - "transfer", - "2018-11-05" - ] - }, - { - "path": "/properties/IdentityProviderType", - "shape": "IdentityProviderType", - "source": [ - "transfer", - "2018-11-05" - ] } - ], - "AWS::Transfer::User": [ - { - "path": "/properties/HomeDirectoryType", - "shape": "HomeDirectoryType", - "source": [ - "transfer", - "2018-11-05" - ] - } - ], - "AWS::VerifiedPermissions::Policy": [ - { - "path": "/properties/PolicyType", - "shape": "PolicyType", - "source": [ - "verifiedpermissions", - "2021-12-01" - ] - } - ], - "AWS::WAFv2::IPSet": [ - { - "path": "/properties/Scope", - "shape": "Scope", + }, + "AWS::WAFv2::IPSet": { + "/properties/IPAddressVersion": { + "shape": "IPAddressVersion", "source": [ "wafv2", "2019-07-29" ] }, - { - "path": "/properties/IPAddressVersion", - "shape": "IPAddressVersion", + "/properties/Scope": { + "shape": "Scope", "source": [ "wafv2", "2019-07-29" ] } - ], - "AWS::WAFv2::RuleGroup": [ - { - "path": "/properties/Scope", + }, + "AWS::WAFv2::RuleGroup": { + "/properties/Scope": { "shape": "Scope", "source": [ "wafv2", "2019-07-29" ] } - ], - "AWS::WAFv2::WebACL": [ - { - "path": "/properties/Scope", + }, + "AWS::WAFv2::WebACL": { + "/properties/Scope": { "shape": "Scope", "source": [ "wafv2", "2019-07-29" ] } - ], - "AWS::Wisdom::AssistantAssociation": [ - { - "path": "/properties/AssociationType", + }, + "AWS::Wisdom::Assistant": { + "/properties/Type": { + "shape": "AssistantType", + "source": [ + "wisdom", + "2020-10-19" + ] + } + }, + "AWS::Wisdom::AssistantAssociation": { + "/properties/AssociationType": { "shape": "AssociationType", "source": [ "wisdom", "2020-10-19" ] } - ], - "AWS::Wisdom::KnowledgeBase": [ - { - "path": "/properties/KnowledgeBaseType", + }, + "AWS::Wisdom::KnowledgeBase": { + "/properties/KnowledgeBaseType": { "shape": "KnowledgeBaseType", "source": [ "wisdom", "2020-10-19" ] } - ] + } } diff --git a/scripts/boto/update_schemas_from_boto.py b/scripts/boto/update_schemas_from_boto.py index 2abfa1248c..6d9796754d 100755 --- a/scripts/boto/update_schemas_from_boto.py +++ b/scripts/boto/update_schemas_from_boto.py @@ -9,1038 +9,15 @@ import os import tempfile import zipfile -from collections import namedtuple -from typing import List import requests +from _manual_patches import patches +from _types import ResourcePatches LOGGER = logging.getLogger("cfnlint") BOTO_URL = "https://github.com/boto/botocore/archive/refs/heads/master.zip" -Patch = namedtuple("Patch", ["source", "shape", "path"]) -ResourcePatch = namedtuple("ResourcePatch", ["resource_type", "patches"]) -patches: List[ResourcePatch] = [] -patches.extend( - [ - ResourcePatch( - resource_type="AWS::AmazonMQ::Broker", - patches=[ - Patch( - source=["mq", "2017-11-27"], - shape="AuthenticationStrategy", - path="/properties/AuthenticationStrategy", - ), - Patch( - source=["mq", "2017-11-27"], - shape="DataReplicationMode", - path="/properties/DataReplicationMode", - ), - Patch( - source=["mq", "2017-11-27"], - shape="DeploymentMode", - path="/properties/DeploymentMode", - ), - Patch( - source=["mq", "2017-11-27"], - shape="EngineType", - path="/properties/EngineType", - ), - Patch( - source=["mq", "2017-11-27"], - shape="BrokerStorageType", - path="/properties/StorageType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AmazonMQ::Configuration", - patches=[ - Patch( - source=["mq", "2017-11-27"], - shape="AuthenticationStrategy", - path="/properties/AuthenticationStrategy", - ), - Patch( - source=["mq", "2017-11-27"], - shape="EngineType", - path="/properties/EngineType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::ApiGateway::RestApi", - patches=[ - Patch( - source=["apigateway", "2015-07-09"], - shape="ApiKeySourceType", - path="/properties/ApiKeySourceType", - ) - ], - ), - ResourcePatch( - resource_type="AWS::ApiGateway::Authorizer", - patches=[ - Patch( - source=["apigateway", "2015-07-09"], - shape="AuthorizerType", - path="/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::ApiGateway::GatewayResponse", - patches=[ - Patch( - source=["apigateway", "2015-07-09"], - shape="GatewayResponseType", - path="/properties/ResponseType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::ApplicationAutoScaling::ScalingPolicy", - patches=[ - Patch( - source=["application-autoscaling", "2016-02-06"], - shape="PolicyType", - path="/properties/PolicyType", - ), - Patch( - source=["application-autoscaling", "2016-02-06"], - shape="MetricType", - path="/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AppSync::DataSource", - patches=[ - Patch( - source=["appsync", "2017-07-25"], - shape="DataSourceType", - path="/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AppSync::GraphQLApi", - patches=[ - Patch( - source=["appsync", "2017-07-25"], - shape="AuthenticationType", - path="/properties/AuthenticationType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AppSync::Resolver", - patches=[ - Patch( - source=["appsync", "2017-07-25"], - shape="ResolverKind", - path="/properties/Kind", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AutoScaling::LaunchConfiguration", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="VolumeType", - path="/definitions/BlockDevice/properties/VolumeType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AutoScaling::ScalingPolicy", - patches=[ - Patch( - source=["autoscaling", "2011-01-01"], - shape="MetricStatistic", - path="/definitions/CustomizedMetricSpecification/properties/Statistic", - ), - Patch( - source=["autoscaling", "2011-01-01"], - shape="MetricType", - path="/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::AutoScalingPlans::ScalingPlan", - patches=[ - Patch( - source=["autoscaling-plans", "2018-01-06"], - shape="ScalableDimension", - path="/definitions/ScalingInstruction/properties/ScalableDimension", - ), - Patch( - source=["autoscaling-plans", "2018-01-06"], - shape="ServiceNamespace", - path="/definitions/ScalingInstruction/properties/ServiceNamespace", - ), - Patch( - source=["autoscaling-plans", "2018-01-06"], - shape="PredictiveScalingMaxCapacityBehavior", - path="/definitions/ScalingInstruction/properties/PredictiveScalingMaxCapacityBehavior", - ), - Patch( - source=["autoscaling-plans", "2018-01-06"], - shape="PredictiveScalingMode", - path="/definitions/ScalingInstruction/properties/PredictiveScalingMode", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Budgets::Budget", - patches=[ - Patch( - source=["budgets", "2016-10-20"], - shape="BudgetType", - path="/definitions/BudgetData/properties/BudgetType", - ), - Patch( - source=["budgets", "2016-10-20"], - shape="TimeUnit", - path="/definitions/BudgetData/properties/TimeUnit", - ), - Patch( - source=["budgets", "2016-10-20"], - shape="ComparisonOperator", - path="/definitions/Notification/properties/ComparisonOperator", - ), - Patch( - source=["budgets", "2016-10-20"], - shape="NotificationType", - path="/definitions/Notification/properties/NotificationType", - ), - Patch( - source=["budgets", "2016-10-20"], - shape="ThresholdType", - path="/definitions/Notification/properties/ThresholdType", - ), - Patch( - source=["budgets", "2016-10-20"], - shape="SubscriptionType", - path="/definitions/Subscriber/properties/SubscriptionType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CertificateManager::Certificate", - patches=[ - Patch( - source=["acm", "2015-12-08"], - shape="ValidationMethod", - path="/properties/ValidationMethod", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CloudFormation::StackSet", - patches=[ - Patch( - source=["cloudformation", "2010-05-15"], - shape="PermissionModels", - path="/properties/PermissionModel", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CloudFront::Distribution", - patches=[ - Patch( - source=["cloudfront", "2020-05-31"], - shape="ViewerProtocolPolicy", - path="/definitions/CacheBehavior/properties/ViewerProtocolPolicy", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="GeoRestrictionType", - path="/definitions/GeoRestriction/properties/RestrictionType", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="HttpVersion", - path="/definitions/DistributionConfig/properties/HttpVersion", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="EventType", - path="/definitions/FunctionAssociation/properties/EventType", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="OriginProtocolPolicy", - path="/definitions/LegacyCustomOrigin/properties/OriginProtocolPolicy", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="SslProtocol", - path="/definitions/CustomOriginConfig/properties/OriginSSLProtocols/items", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="SslProtocol", - path="/definitions/LegacyCustomOrigin/properties/OriginSSLProtocols/items", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="PriceClass", - path="/definitions/DistributionConfig/properties/PriceClass", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="MinimumProtocolVersion", - path="/definitions/ViewerCertificate/properties/MinimumProtocolVersion", - ), - Patch( - source=["cloudfront", "2020-05-31"], - shape="SSLSupportMethod", - path="/definitions/ViewerCertificate/properties/SslSupportMethod", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CloudWatch::Alarm", - patches=[ - Patch( - source=["cloudwatch", "2010-08-01"], - shape="ComparisonOperator", - path="/properties/ComparisonOperator", - ), - Patch( - source=["cloudwatch", "2010-08-01"], - shape="Statistic", - path="/properties/Statistic", - ), - Patch( - source=["cloudwatch", "2010-08-01"], - shape="StandardUnit", - path="/properties/Unit", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodeBuild::Project", - patches=[ - Patch( - source=["codebuild", "2016-10-06"], - shape="ArtifactPackaging", - path="/definitions/Artifacts/properties/Packaging", - ), - Patch( - source=["codebuild", "2016-10-06"], - shape="ArtifactsType", - path="/definitions/Artifacts/properties/Type", - ), - Patch( - source=["codebuild", "2016-10-06"], - shape="ComputeType", - path="/definitions/Environment/properties/ComputeType", - ), - Patch( - source=["codebuild", "2016-10-06"], - shape="ImagePullCredentialsType", - path="/definitions/Environment/properties/ImagePullCredentialsType", - ), - Patch( - source=["codebuild", "2016-10-06"], - shape="EnvironmentType", - path="/definitions/Environment/properties/Type", - ), - Patch( - source=["codebuild", "2016-10-06"], - shape="CacheType", - path="/definitions/ProjectCache/properties/Type", - ), - Patch( - source=["codebuild", "2016-10-06"], - shape="SourceType", - path="/definitions/Source/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodeCommit::Repository", - patches=[ - Patch( - source=["codecommit", "2015-04-13"], - shape="RepositoryTriggerEventEnum", - path="/definitions/RepositoryTrigger/properties/Events/items", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodeCommit::Repository", - patches=[ - Patch( - source=["codecommit", "2015-04-13"], - shape="RepositoryTriggerEventEnum", - path="/definitions/RepositoryTrigger/properties/Events/items", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodeDeploy::Application", - patches=[ - Patch( - source=["codedeploy", "2014-10-06"], - shape="ComputePlatform", - path="/properties/ComputePlatform", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodeDeploy::DeploymentGroup", - patches=[ - Patch( - source=["codedeploy", "2014-10-06"], - shape="AutoRollbackEvent", - path="/definitions/AutoRollbackConfiguration/properties/Events/items", - ), - Patch( - source=["codedeploy", "2014-10-06"], - shape="DeploymentOption", - path="/definitions/DeploymentStyle/properties/DeploymentOption", - ), - Patch( - source=["codedeploy", "2014-10-06"], - shape="DeploymentType", - path="/definitions/DeploymentStyle/properties/DeploymentType", - ), - Patch( - source=["codedeploy", "2014-10-06"], - shape="TriggerEventType", - path="/definitions/TriggerConfig/properties/TriggerEvents/items", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodeDeploy::DeploymentConfig", - patches=[ - Patch( - source=["codedeploy", "2014-10-06"], - shape="MinimumHealthyHostsType", - path="/definitions/MinimumHealthyHosts/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodePipeline::Pipeline", - patches=[ - Patch( - source=["codepipeline", "2015-07-09"], - shape="ActionCategory", - path="/definitions/ActionTypeId/properties/Category", - ), - Patch( - source=["codepipeline", "2015-07-09"], - shape="ActionOwner", - path="/definitions/ActionTypeId/properties/Owner", - ), - Patch( - source=["codepipeline", "2015-07-09"], - shape="ArtifactStoreType", - path="/definitions/ArtifactStore/properties/Type", - ), - Patch( - source=["codepipeline", "2015-07-09"], - shape="BlockerType", - path="/definitions/BlockerDeclaration/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodePipeline::CustomActionType", - patches=[ - Patch( - source=["codepipeline", "2015-07-09"], - shape="ActionConfigurationPropertyType", - path="/definitions/ConfigurationProperties/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::CodePipeline::Webhook", - patches=[ - Patch( - source=["codepipeline", "2015-07-09"], - shape="WebhookAuthenticationType", - path="/properties/Authentication", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Cognito::UserPool", - patches=[ - Patch( - source=["cognito-idp", "2016-04-18"], - shape="AliasAttributeType", - path="/properties/AliasAttributes/items", - ), - Patch( - source=["cognito-idp", "2016-04-18"], - shape="UsernameAttributeType", - path="/properties/UsernameAttributes/items", - ), - Patch( - source=["cognito-idp", "2016-04-18"], - shape="UserPoolMfaType", - path="/properties/MfaConfiguration", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Cognito::UserPoolUser", - patches=[ - Patch( - source=["cognito-idp", "2016-04-18"], - shape="DeliveryMediumType", - path="/properties/DesiredDeliveryMediums/items", - ), - Patch( - source=["cognito-idp", "2016-04-18"], - shape="MessageActionType", - path="/properties/MessageAction", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Cognito::UserPoolClient", - patches=[ - Patch( - source=["cognito-idp", "2016-04-18"], - shape="ExplicitAuthFlowsType", - path="/properties/ExplicitAuthFlows/items", - ) - ], - ), - ResourcePatch( - resource_type="AWS::Config::ConfigRule", - patches=[ - Patch( - source=["config", "2014-11-12"], - shape="Owner", - path="/definitions/Source/properties/Owner", - ), - Patch( - source=["config", "2014-11-12"], - shape="EventSource", - path="/definitions/SourceDetail/properties/EventSource", - ), - Patch( - source=["config", "2014-11-12"], - shape="MaximumExecutionFrequency", - path="/definitions/SourceDetail/properties/MaximumExecutionFrequency", - ), - Patch( - source=["config", "2014-11-12"], - shape="MessageType", - path="/definitions/SourceDetail/properties/MessageType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::DirectoryService::MicrosoftAD", - patches=[ - Patch( - source=["ds", "2015-04-16"], - shape="DirectoryEdition", - path="/properties/Edition", - ), - ], - ), - ResourcePatch( - resource_type="AWS::DirectoryService::SimpleAD", - patches=[ - Patch( - source=["ds", "2015-04-16"], - shape="DirectorySize", - path="/properties/Size", - ), - ], - ), - ResourcePatch( - resource_type="AWS::DLM::LifecyclePolicy", - patches=[ - Patch( - source=["dlm", "2018-01-12"], - shape="ResourceTypeValues", - path="/definitions/PolicyDetails/properties/ResourceTypes/items", - ), - ], - ), - ResourcePatch( - resource_type="AWS::DMS::Endpoint", - patches=[ - Patch( - source=["dms", "2016-01-01"], - shape="DmsSslModeValue", - path="/properties/SslMode", - ), - Patch( - source=["dms", "2016-01-01"], - shape="ReplicationEndpointTypeValue", - path="/properties/EndpointType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::DynamoDB::Table", - patches=[ - Patch( - source=["dynamodb", "2012-08-10"], - shape="ScalarAttributeType", - path="/definitions/AttributeDefinition/properties/AttributeType", - ), - Patch( - source=["dynamodb", "2012-08-10"], - shape="BillingMode", - path="/properties/BillingMode", - ), - Patch( - source=["dynamodb", "2012-08-10"], - shape="KeyType", - path="/definitions/KeySchema/properties/KeyType", - ), - Patch( - source=["dynamodb", "2012-08-10"], - shape="ProjectionType", - path="/definitions/Projection/properties/ProjectionType", - ), - Patch( - source=["dynamodb", "2012-08-10"], - shape="StreamViewType", - path="/definitions/StreamSpecification/properties/StreamViewType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::CapacityReservation", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="EndDateType", - path="/properties/EndDateType", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="InstanceMatchCriteria", - path="/properties/InstanceMatchCriteria", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="CapacityReservationInstancePlatform", - path="/properties/InstancePlatform", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::CustomerGateway", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="GatewayType", - path="/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::EIP", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="DomainType", - path="/properties/Domain", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::EC2Fleet", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="FleetOnDemandAllocationStrategy", - path="/definitions/OnDemandOptionsRequest/properties/AllocationStrategy", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::Host", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="AutoPlacement", - path="/properties/AutoPlacement", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::Instance", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="Affinity", - path="/properties/Affinity", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="Tenancy", - path="/properties/Tenancy", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::LaunchTemplate", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="ShutdownBehavior", - path="/definitions/LaunchTemplateData/properties/InstanceInitiatedShutdownBehavior", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="MarketType", - path="/definitions/InstanceMarketOptions/properties/MarketType", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="SpotInstanceInterruptionBehavior", - path="/definitions/SpotOptions/properties/InstanceInterruptionBehavior", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="SpotInstanceType", - path="/definitions/SpotOptions/properties/SpotInstanceType", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="VolumeType", - path="/definitions/Ebs/properties/VolumeType", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="Tenancy", - path="/definitions/Placement/properties/Tenancy", - ), - Patch( - source=["ec2", "2016-11-15"], - shape="ResourceType", - path="/definitions/TagSpecification/properties/ResourceType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::NetworkAclEntry", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="RuleAction", - path="/properties/RuleAction", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::NetworkInterfacePermission", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="InterfacePermissionType", - path="/properties/Permission", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::PlacementGroup", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="PlacementGroupStrategy", - path="/properties/Strategy", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EC2::SpotFleet", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="VolumeType", - path="/definitions/EbsBlockDevice/properties/VolumeType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::ECS::TaskDefinition", - patches=[ - Patch( - source=["ecs", "2014-11-13"], - shape="NetworkMode", - path="/properties/NetworkMode", - ), - Patch( - source=["ecs", "2014-11-13"], - shape="ProxyConfigurationType", - path="/definitions/ProxyConfiguration/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::EFS::FileSystem", - patches=[ - Patch( - source=["efs", "2015-02-01"], - shape="TransitionToIARules", - path="/definitions/LifecyclePolicy/properties/TransitionToIA", - ), - Patch( - source=["efs", "2015-02-01"], - shape="PerformanceMode", - path="/properties/PerformanceMode", - ), - Patch( - source=["efs", "2015-02-01"], - shape="ThroughputMode", - path="/properties/ThroughputMode", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Glue::Connection", - patches=[ - Patch( - source=["glue", "2017-03-31"], - shape="ConnectionType", - path="/definitions/ConnectionInput/properties/ConnectionType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Glue::Crawler", - patches=[ - Patch( - source=["glue", "2017-03-31"], - shape="DeleteBehavior", - path="/definitions/SchemaChangePolicy/properties/DeleteBehavior", - ), - Patch( - source=["glue", "2017-03-31"], - shape="UpdateBehavior", - path="/definitions/SchemaChangePolicy/properties/UpdateBehavior", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Glue::Trigger", - patches=[ - Patch( - source=["glue", "2017-03-31"], - shape="Logical", - path="/definitions/Predicate/properties/Logical", - ), - Patch( - source=["glue", "2017-03-31"], - shape="LogicalOperator", - path="/definitions/Condition/properties/LogicalOperator", - ), - Patch( - source=["glue", "2017-03-31"], - shape="TriggerType", - path="/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::GuardDuty::Detector", - patches=[ - Patch( - source=["guardduty", "2017-11-28"], - shape="FindingPublishingFrequency", - path="/properties/FindingPublishingFrequency", - ), - ], - ), - ResourcePatch( - resource_type="AWS::GuardDuty::Filter", - patches=[ - Patch( - source=["guardduty", "2017-11-28"], - shape="FilterAction", - path="/properties/Action", - ), - ], - ), - ResourcePatch( - resource_type="AWS::GuardDuty::IPSet", - patches=[ - Patch( - source=["guardduty", "2017-11-28"], - shape="IpSetFormat", - path="/properties/Format", - ), - ], - ), - ResourcePatch( - resource_type="AWS::GuardDuty::ThreatIntelSet", - patches=[ - Patch( - source=["guardduty", "2017-11-28"], - shape="ThreatIntelSetFormat", - path="/properties/Format", - ), - ], - ), - ResourcePatch( - resource_type="AWS::IAM::AccessKey", - patches=[ - Patch( - source=["iam", "2010-05-08"], - shape="statusType", - path="/properties/Status", - ), - ], - ), - ResourcePatch( - resource_type="AWS::KinesisAnalyticsV2::Application", - patches=[ - Patch( - source=["kinesisanalyticsv2", "2018-05-23"], - shape="RuntimeEnvironment", - path="/properties/RuntimeEnvironment", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Lambda::Function", - patches=[ - Patch( - source=["lambda", "2015-03-31"], - shape="Runtime", - path="/properties/Runtime", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Lambda::EventSourceMapping", - patches=[ - Patch( - source=["lambda", "2015-03-31"], - shape="EventSourcePosition", - path="/properties/StartingPosition", - ), - ], - ), - ResourcePatch( - resource_type="AWS::OpsWorks::Instance", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="VolumeType", - path="/definitions/EbsBlockDevice/properties/VolumeType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::OpsWorks::Layer", - patches=[ - Patch( - source=["ec2", "2016-11-15"], - shape="VolumeType", - path="/definitions/VolumeConfiguration/properties/VolumeType", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Route53::RecordSetGroup", - patches=[ - Patch( - source=["route53", "2013-04-01"], - shape="ResourceRecordSetFailover", - path="/definitions/RecordSet/properties/Failover", - ), - Patch( - source=["route53", "2013-04-01"], - shape="RRType", - path="/definitions/RecordSet/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::Route53Resolver::ResolverEndpoint", - patches=[ - Patch( - source=["route53resolver", "2018-04-01"], - shape="ResolverEndpointDirection", - path="/properties/Direction", - ), - ], - ), - ResourcePatch( - resource_type="AWS::ServiceDiscovery::Service", - patches=[ - Patch( - source=["servicediscovery", "2017-03-14"], - shape="RecordType", - path="/definitions/DnsRecord/properties/Type", - ), - Patch( - source=["servicediscovery", "2017-03-14"], - shape="HealthCheckType", - path="/definitions/HealthCheckConfig/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::SES::ReceiptRule", - patches=[ - Patch( - source=["ses", "2010-12-01"], - shape="TlsPolicy", - path="/definitions/Rule/properties/TlsPolicy", - ), - ], - ), - ResourcePatch( - resource_type="AWS::WAFRegional::Rule", - patches=[ - Patch( - source=["waf", "2015-08-24"], - shape="PredicateType", - path="/definitions/Predicate/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::WAF::Rule", - patches=[ - Patch( - source=["waf", "2015-08-24"], - shape="PredicateType", - path="/definitions/Predicate/properties/Type", - ), - ], - ), - ResourcePatch( - resource_type="AWS::WorkSpaces::Workspace", - patches=[ - Patch( - source=["workspaces", "2015-04-08"], - shape="RunningMode", - path="/definitions/WorkspaceProperties/properties/RunningMode", - ), - Patch( - source=["workspaces", "2015-04-08"], - shape="Compute", - path="/definitions/WorkspaceProperties/properties/ComputeTypeName", - ), - ], - ), - ] -) - def configure_logging(): """Setup Logging""" @@ -1059,10 +36,12 @@ def configure_logging(): LOGGER.addHandler(ch) -def build_resource_type_patches(dir: str, resource_patches: ResourcePatch): - LOGGER.info(f"Applying patches for {resource_patches.resource_type}") +def build_resource_type_patches( + dir: str, resource_name: str, resource_patches: ResourcePatches +): + LOGGER.info(f"Applying patches for {resource_name}") - resource_name = resource_patches.resource_type.lower().replace("::", "_") + resource_name = resource_name.lower().replace("::", "_") output_dir = os.path.join("src/cfnlint/data/schemas/patches/extensions/all/") output_file = os.path.join( output_dir, @@ -1073,22 +52,27 @@ def build_resource_type_patches(dir: str, resource_patches: ResourcePatch): with open(output_file, "w+") as fh: d = [] boto_d = {} - for patch in resource_patches.patches: + for path, patch in resource_patches.items(): enums = [] + print(patch.source) service_path = ( ["botocore-master/botocore/data"] + patch.source + ["service-2.json"] ) with open(os.path.join(dir, *service_path), "r") as f: boto_d = json.load(f) - enums = boto_d.get("shapes").get(patch.shape).get("enum") # type: ignore - d.append( - { - "op": "add", - "path": f"{patch.path}/enum", - "value": sorted(enums), - } - ) + try: + enums = boto_d.get("shapes").get(patch.shape).get("enum") # type: ignore + d.append( + { + "op": "add", + "path": f"{path}/enum", + "value": sorted(enums), + } + ) + except AttributeError as e: + print(f"{patch.source}, {patch.shape}") + print(e) json.dump( d, @@ -1101,8 +85,10 @@ def build_resource_type_patches(dir: str, resource_patches: ResourcePatch): def build_patches(dir: str): - for patch in patches: - build_resource_type_patches(dir, resource_patches=patch) + for resource_name, patch in patches.items(): + build_resource_type_patches( + dir, resource_name=resource_name, resource_patches=patch + ) def main(): From 938f5efeecf6d6f48c5b48e39fcd21cc15576c7a Mon Sep 17 00:00:00 2001 From: Kevin DeJong Date: Fri, 11 Oct 2024 16:55:58 -0700 Subject: [PATCH 3/7] Clean up boto automation --- scripts/boto/_automated_patches.py | 202 +++ scripts/boto/_manual_patches.py | 146 +- scripts/boto/data.json | 1389 ----------------- scripts/boto/update_schemas_from_boto.py | 93 +- .../aws_accessanalyzer_analyzer/__init__.py | 0 .../all/aws_accessanalyzer_analyzer/boto.json | 17 + .../__init__.py | 0 .../aws_acmpca_certificateauthority/boto.json | 19 + .../all/aws_acmpca_permission/__init__.py | 0 .../all/aws_acmpca_permission/boto.json | 17 + .../aws_amazonmq_configuration/__init__.py | 0 .../all/aws_amplify_app/__init__.py | 0 .../extensions/all/aws_amplify_app/boto.json | 7 + .../all/aws_appconfig_extension/__init__.py | 0 .../all/aws_appconfig_extension/boto.json | 7 + .../aws_appflow_connectorprofile/__init__.py | 0 .../aws_appflow_connectorprofile/boto.json | 32 + .../__init__.py | 0 .../aws_appintegrations_application/boto.json | 1 + .../__init__.py | 0 .../boto.json | 1 + .../__init__.py | 0 .../boto.json | 1 + .../__init__.py | 0 .../boto.json | 52 + .../boto.json | 55 + .../all/aws_appstream_appblock/__init__.py | 0 .../all/aws_appstream_appblock/boto.json | 15 + .../aws_appstream_appblockbuilder/boto.json | 19 + .../all/aws_appstream_application/__init__.py | 0 .../all/aws_appstream_application/boto.json | 12 + .../all/aws_appstream_entitlement/__init__.py | 0 .../all/aws_appstream_entitlement/boto.json | 20 + .../all/aws_appstream_imagebuilder/boto.json | 17 + .../all/aws_appsync_domainname/__init__.py | 0 .../all/aws_appsync_domainname/boto.json | 7 + .../__init__.py | 0 .../boto.json | 22 + .../all/aws_appsync_resolver/boto.json | 25 + .../all/aws_athena_datacatalog/__init__.py | 0 .../all/aws_athena_datacatalog/boto.json | 1 + .../all/aws_athena_namedquery/__init__.py | 0 .../all/aws_athena_namedquery/boto.json | 7 + .../aws_athena_preparedstatement/__init__.py | 0 .../aws_athena_preparedstatement/boto.json | 12 + .../aws_auditmanager_assessment/__init__.py | 0 .../all/aws_auditmanager_assessment/boto.json | 17 + .../boto.json | 1 + .../aws_autoscaling_lifecyclehook/boto.json | 12 + .../__init__.py | 0 .../aws_autoscaling_scheduledaction/boto.json | 1 + .../all/aws_autoscaling_warmpool/__init__.py | 0 .../all/aws_autoscaling_warmpool/boto.json | 11 + .../all/aws_b2bi_capability/__init__.py | 0 .../all/aws_b2bi_capability/boto.json | 9 + .../all/aws_b2bi_profile/__init__.py | 0 .../extensions/all/aws_b2bi_profile/boto.json | 10 + .../all/aws_b2bi_transformer/__init__.py | 0 .../all/aws_b2bi_transformer/boto.json | 11 + .../all/aws_backup_backupvault/__init__.py | 0 .../all/aws_backup_backupvault/boto.json | 7 + .../all/aws_backup_framework/__init__.py | 0 .../all/aws_backup_framework/boto.json | 7 + .../aws_batch_computeenvironment/boto.json | 10 + .../all/aws_budgets_budgetsaction/__init__.py | 0 .../all/aws_budgets_budgetsaction/boto.json | 12 + .../all/aws_ce_costcategory/__init__.py | 0 .../all/aws_ce_costcategory/boto.json | 17 + .../aws_cleanrooms_collaboration/__init__.py | 0 .../aws_cleanrooms_collaboration/boto.json | 15 + .../__init__.py | 0 .../aws_cleanrooms_configuredtable/boto.json | 9 + .../__init__.py | 0 .../boto.json | 7 + .../aws_cleanrooms_idmappingtable/__init__.py | 0 .../aws_cleanrooms_idmappingtable/boto.json | 12 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_cleanrooms_membership/__init__.py | 0 .../all/aws_cleanrooms_membership/boto.json | 10 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_cloudformation_stackset/boto.json | 5 + .../all/aws_cloudfront_function/__init__.py | 0 .../all/aws_cloudfront_function/boto.json | 7 + .../aws_cloudfront_keyvaluestore/__init__.py | 0 .../aws_cloudfront_keyvaluestore/boto.json | 7 + .../all/aws_cloudtrail_channel/__init__.py | 0 .../all/aws_cloudtrail_channel/boto.json | 7 + .../aws_cloudtrail_eventdatastore/__init__.py | 0 .../aws_cloudtrail_eventdatastore/boto.json | 25 + .../aws_cloudtrail_resourcepolicy/__init__.py | 0 .../aws_cloudtrail_resourcepolicy/boto.json | 7 + .../all/aws_cloudwatch_alarm/boto.json | 25 +- .../aws_cloudwatch_metricstream/__init__.py | 0 .../all/aws_cloudwatch_metricstream/boto.json | 11 + .../all/aws_codeartifact_domain/__init__.py | 0 .../all/aws_codeartifact_domain/boto.json | 7 + .../aws_codeartifact_packagegroup/__init__.py | 0 .../aws_codeartifact_packagegroup/boto.json | 12 + .../aws_codeartifact_repository/__init__.py | 0 .../all/aws_codeartifact_repository/boto.json | 7 + .../all/aws_codebuild_fleet/boto.json | 7 + .../__init__.py | 0 .../aws_codeconnections_connection/boto.json | 18 + .../aws_codedeploy_deploymentconfig/boto.json | 9 + .../boto.json | 23 + .../__init__.py | 0 .../boto.json | 18 + .../__init__.py | 0 .../boto.json | 19 + .../boto.json | 12 + .../__init__.py | 0 .../boto.json | 17 + .../all/aws_connect_tasktemplate/__init__.py | 0 .../all/aws_connect_tasktemplate/boto.json | 10 + .../__init__.py | 0 .../boto.json | 31 + .../all/aws_datapipeline_pipeline/__init__.py | 0 .../all/aws_datapipeline_pipeline/boto.json | 1 + .../all/aws_datazone_datasource/__init__.py | 0 .../all/aws_datazone_datasource/boto.json | 10 + .../__init__.py | 0 .../aws_datazone_projectmembership/boto.json | 10 + .../all/aws_datazone_userprofile/__init__.py | 0 .../all/aws_datazone_userprofile/boto.json | 11 + .../aws_deadline_licenseendpoint/boto.json | 7 + .../all/aws_deadline_queue/__init__.py | 0 .../all/aws_deadline_queue/boto.json | 11 + .../aws_deadline_queueenvironment/__init__.py | 0 .../aws_deadline_queueenvironment/boto.json | 10 + .../aws_deadline_storageprofile/__init__.py | 0 .../all/aws_deadline_storageprofile/boto.json | 11 + .../all/aws_docdbelastic_cluster/__init__.py | 0 .../all/aws_docdbelastic_cluster/boto.json | 10 + .../all/aws_dynamodb_globaltable/boto.json | 10 + .../all/aws_dynamodb_table/boto.json | 24 +- .../all/aws_ec2_capacityreservation/boto.json | 50 +- .../extensions/all/aws_ec2_host/boto.json | 16 + .../extensions/all/aws_ec2_instance/boto.json | 842 ++++++++++ .../all/aws_ec2_ipampool/__init__.py | 0 .../extensions/all/aws_ec2_ipampool/boto.json | 10 + .../all/aws_ec2_launchtemplate/boto.json | 5 + .../__init__.py | 0 .../aws_ec2_localgatewayroutetable/boto.json | 10 + .../all/aws_ec2_natgateway/__init__.py | 0 .../all/aws_ec2_natgateway/boto.json | 10 + .../aws_ec2_networkinsightspath/__init__.py | 0 .../all/aws_ec2_networkinsightspath/boto.json | 20 + .../all/aws_ec2_networkinterface/boto.json | 11 + .../all/aws_ec2_placementgroup/boto.json | 8 + .../aws_ec2_verifiedaccessendpoint/boto.json | 17 + .../__init__.py | 0 .../boto.json | 27 + .../extensions/all/aws_ec2_volume/__init__.py | 0 .../extensions/all/aws_ec2_volume/boto.json | 15 + .../extensions/all/aws_ec2_vpc/boto.json | 11 + .../all/aws_ec2_vpngateway/__init__.py | 0 .../all/aws_ec2_vpngateway/boto.json | 9 + .../aws_ecr_pullthroughcacherule/__init__.py | 0 .../aws_ecr_pullthroughcacherule/boto.json | 15 + .../all/aws_ecs_taskdefinition/boto.json | 21 +- .../all/aws_efs_accesspoint/__init__.py | 0 .../all/aws_efs_accesspoint/boto.json | 12 + .../all/aws_efs_filesystem/boto.json | 15 + .../all/aws_efs_mounttarget/boto.json | 17 + .../extensions/all/aws_eks_addon/__init__.py | 0 .../extensions/all/aws_eks_addon/boto.json | 7 + .../all/aws_eks_nodegroup/__init__.py | 0 .../all/aws_eks_nodegroup/boto.json | 33 + .../all/aws_elasticache_user/__init__.py | 0 .../all/aws_elasticache_user/boto.json | 7 + .../aws_emr_securityconfiguration/__init__.py | 0 .../aws_emr_securityconfiguration/boto.json | 1 + .../extensions/all/aws_emr_step/__init__.py | 0 .../extensions/all/aws_emr_step/boto.json | 1 + .../extensions/all/aws_emr_studio/boto.json | 1 + .../aws_emr_studiosessionmapping/__init__.py | 0 .../aws_emr_studiosessionmapping/boto.json | 1 + .../aws_emrserverless_application/boto.json | 10 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 20 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_events_apidestination/__init__.py | 0 .../all/aws_events_apidestination/boto.json | 17 + .../all/aws_events_archive/__init__.py | 0 .../all/aws_events_archive/boto.json | 7 + .../all/aws_events_connection/__init__.py | 0 .../all/aws_events_connection/boto.json | 7 + .../all/aws_events_eventbus/__init__.py | 0 .../all/aws_events_eventbus/boto.json | 12 + .../extensions/all/aws_events_rule/boto.json | 12 + .../all/aws_evidently_experiment/__init__.py | 0 .../all/aws_evidently_experiment/boto.json | 1 + .../all/aws_evidently_feature/__init__.py | 0 .../all/aws_evidently_feature/boto.json | 1 + .../all/aws_evidently_launch/__init__.py | 0 .../all/aws_evidently_launch/boto.json | 1 + .../all/aws_evidently_project/__init__.py | 0 .../all/aws_evidently_project/boto.json | 1 + .../all/aws_evidently_segment/__init__.py | 0 .../all/aws_evidently_segment/boto.json | 1 + .../aws_fis_experimenttemplate/__init__.py | 0 .../all/aws_fis_experimenttemplate/boto.json | 12 + .../__init__.py | 0 .../boto.json | 22 + .../aws_fms_notificationchannel/__init__.py | 0 .../all/aws_fms_notificationchannel/boto.json | 12 + .../__init__.py | 0 .../boto.json | 17 + .../all/aws_gamelift_build/__init__.py | 0 .../all/aws_gamelift_build/boto.json | 7 + .../all/aws_gamelift_fleet/__init__.py | 0 .../all/aws_gamelift_fleet/boto.json | 12 + .../aws_gamelift_gameservergroup/__init__.py | 0 .../aws_gamelift_gameservergroup/boto.json | 29 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_glue_database/__init__.py | 0 .../all/aws_glue_database/boto.json | 1 + .../extensions/all/aws_glue_job/boto.json | 29 + .../all/aws_glue_registry/__init__.py | 0 .../all/aws_glue_registry/boto.json | 1 + .../all/aws_glue_schema/__init__.py | 0 .../extensions/all/aws_glue_schema/boto.json | 7 + .../all/aws_glue_schemaversion/__init__.py | 0 .../all/aws_glue_schemaversion/boto.json | 7 + .../all/aws_glue_usageprofile/__init__.py | 0 .../all/aws_glue_usageprofile/boto.json | 1 + .../all/aws_grafana_workspace/boto.json | 18 + .../aws_healthlake_fhirdatastore/__init__.py | 0 .../aws_healthlake_fhirdatastore/boto.json | 14 + .../extensions/all/aws_iam_group/boto.json | 12 + .../all/aws_iam_grouppolicy/__init__.py | 0 .../all/aws_iam_grouppolicy/boto.json | 17 + .../all/aws_iam_instanceprofile/boto.json | 12 + .../all/aws_iam_managedpolicy/boto.json | 12 + .../extensions/all/aws_iam_policy/boto.json | 12 + .../extensions/all/aws_iam_role/boto.json | 22 + .../all/aws_iam_rolepolicy/__init__.py | 0 .../all/aws_iam_rolepolicy/boto.json | 17 + .../all/aws_iam_servicelinkedrole/__init__.py | 0 .../all/aws_iam_servicelinkedrole/boto.json | 17 + .../extensions/all/aws_iam_user/boto.json | 12 + .../all/aws_iam_userpolicy/__init__.py | 0 .../all/aws_iam_userpolicy/boto.json | 17 + .../aws_imagebuilder_component/__init__.py | 0 .../all/aws_imagebuilder_component/boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_imagebuilder_image/boto.json | 27 + .../__init__.py | 0 .../aws_imagebuilder_imagepipeline/boto.json | 32 + .../aws_imagebuilder_imagerecipe/__init__.py | 0 .../aws_imagebuilder_imagerecipe/boto.json | 7 + .../boto.json | 17 + .../__init__.py | 0 .../boto.json | 12 + .../all/aws_imagebuilder_workflow/__init__.py | 0 .../all/aws_imagebuilder_workflow/boto.json | 12 + .../all/aws_iot_authorizer/__init__.py | 0 .../all/aws_iot_authorizer/boto.json | 12 + .../all/aws_iot_certificate/__init__.py | 0 .../all/aws_iot_certificate/boto.json | 17 + .../aws_iot_certificateprovider/__init__.py | 0 .../all/aws_iot_certificateprovider/boto.json | 7 + .../all/aws_iot_custommetric/__init__.py | 0 .../all/aws_iot_custommetric/boto.json | 7 + .../aws_iot_domainconfiguration/__init__.py | 0 .../all/aws_iot_domainconfiguration/boto.json | 7 + .../all/aws_iot_fleetmetric/__init__.py | 0 .../all/aws_iot_fleetmetric/boto.json | 50 + .../extensions/all/aws_iot_policy/__init__.py | 0 .../extensions/all/aws_iot_policy/boto.json | 12 + .../aws_iot_provisioningtemplate/__init__.py | 0 .../aws_iot_provisioningtemplate/boto.json | 12 + .../all/aws_iot_securityprofile/__init__.py | 0 .../all/aws_iot_securityprofile/boto.json | 7 + .../all/aws_iot_topicrule/__init__.py | 0 .../all/aws_iot_topicrule/boto.json | 7 + .../all/aws_iotfleetwise_campaign/__init__.py | 0 .../all/aws_iotfleetwise_campaign/boto.json | 26 + .../all/aws_iotfleetwise_vehicle/__init__.py | 0 .../all/aws_iotfleetwise_vehicle/boto.json | 10 + .../aws_iotsitewise_accesspolicy/__init__.py | 0 .../aws_iotsitewise_accesspolicy/boto.json | 10 + .../all/aws_iotsitewise_asset/__init__.py | 0 .../all/aws_iotsitewise_asset/boto.json | 17 + .../aws_iotsitewise_assetmodel/__init__.py | 0 .../all/aws_iotsitewise_assetmodel/boto.json | 20 + .../all/aws_iotsitewise_dashboard/__init__.py | 0 .../all/aws_iotsitewise_dashboard/boto.json | 22 + .../all/aws_iotsitewise_gateway/__init__.py | 0 .../all/aws_iotsitewise_gateway/boto.json | 7 + .../all/aws_iotsitewise_portal/__init__.py | 0 .../all/aws_iotsitewise_portal/boto.json | 35 + .../all/aws_iotsitewise_project/__init__.py | 0 .../all/aws_iotsitewise_project/boto.json | 17 + .../__init__.py | 0 .../aws_iottwinmaker_componenttype/boto.json | 1 + .../all/aws_iottwinmaker_entity/__init__.py | 0 .../all/aws_iottwinmaker_entity/boto.json | 1 + .../all/aws_iottwinmaker_scene/__init__.py | 0 .../all/aws_iottwinmaker_scene/boto.json | 1 + .../all/aws_iottwinmaker_syncjob/__init__.py | 0 .../all/aws_iottwinmaker_syncjob/boto.json | 7 + .../aws_iottwinmaker_workspace/__init__.py | 0 .../all/aws_iottwinmaker_workspace/boto.json | 7 + .../__init__.py | 0 .../aws_iotwireless_wirelessdevice/boto.json | 7 + .../all/aws_kendra_datasource/boto.json | 52 + .../extensions/all/aws_kendra_faq/__init__.py | 0 .../extensions/all/aws_kendra_faq/boto.json | 36 + .../all/aws_kendra_index/__init__.py | 0 .../extensions/all/aws_kendra_index/boto.json | 33 + .../__init__.py | 0 .../aws_kendraranking_executionplan/boto.json | 12 + .../boto.json | 5 + .../all/aws_lakeformation_tag/__init__.py | 0 .../all/aws_lakeformation_tag/boto.json | 7 + .../all/aws_lambda_alias/__init__.py | 0 .../extensions/all/aws_lambda_alias/boto.json | 17 + .../aws_lambda_eventsourcemapping/boto.json | 11 - .../all/aws_lambda_function/boto.json | 13 + .../__init__.py | 0 .../boto.json | 17 + .../all/aws_licensemanager_grant/__init__.py | 0 .../all/aws_licensemanager_grant/boto.json | 7 + .../all/aws_lightsail_alarm/__init__.py | 0 .../all/aws_lightsail_alarm/boto.json | 58 + .../all/aws_lightsail_bucket/__init__.py | 0 .../all/aws_lightsail_bucket/boto.json | 7 + .../all/aws_lightsail_container/__init__.py | 0 .../all/aws_lightsail_container/boto.json | 14 + .../all/aws_lightsail_disk/__init__.py | 0 .../all/aws_lightsail_disk/boto.json | 7 + .../aws_lightsail_distribution/__init__.py | 0 .../all/aws_lightsail_distribution/boto.json | 16 + .../all/aws_lightsail_instance/__init__.py | 0 .../all/aws_lightsail_instance/boto.json | 17 + .../aws_lightsail_loadbalancer/__init__.py | 0 .../all/aws_lightsail_loadbalancer/boto.json | 11 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_lightsail_staticip/__init__.py | 0 .../all/aws_lightsail_staticip/boto.json | 7 + .../__init__.py | 0 .../aws_location_geofencecollection/boto.json | 11 + .../all/aws_location_map/__init__.py | 0 .../extensions/all/aws_location_map/boto.json | 11 + .../all/aws_location_placeindex/__init__.py | 0 .../all/aws_location_placeindex/boto.json | 11 + .../aws_location_routecalculator/__init__.py | 0 .../aws_location_routecalculator/boto.json | 11 + .../all/aws_location_tracker/__init__.py | 0 .../all/aws_location_tracker/boto.json | 20 + .../all/aws_logs_logstream/__init__.py | 0 .../all/aws_logs_logstream/boto.json | 12 + .../aws_logs_subscriptionfilter/__init__.py | 0 .../all/aws_logs_subscriptionfilter/boto.json | 12 + .../all/aws_lookoutvision_project/__init__.py | 0 .../all/aws_lookoutvision_project/boto.json | 7 + .../all/aws_m2_application/boto.json | 10 + .../all/aws_m2_environment/boto.json | 10 + .../__init__.py | 0 .../aws_managedblockchain_accessor/boto.json | 20 + .../__init__.py | 0 .../boto.json | 47 + .../all/aws_medialive_cluster/__init__.py | 0 .../all/aws_medialive_cluster/boto.json | 9 + .../__init__.py | 0 .../boto.json | 21 + .../aws_mediapackagev2_channel/__init__.py | 0 .../all/aws_mediapackagev2_channel/boto.json | 10 + .../__init__.py | 0 .../boto.json | 10 + .../all/aws_mediatailor_channel/__init__.py | 0 .../all/aws_mediatailor_channel/boto.json | 18 + .../all/aws_memorydb_user/__init__.py | 0 .../all/aws_memorydb_user/boto.json | 7 + .../all/aws_mwaa_environment/boto.json | 48 + .../boto.json | 12 + .../aws_networkfirewall_firewall/boto.json | 7 + .../__init__.py | 0 .../boto.json | 17 + .../__init__.py | 0 .../aws_networkmanager_connectpeer/boto.json | 22 + .../__init__.py | 0 .../aws_networkmanager_corenetwork/boto.json | 17 + .../all/aws_networkmanager_device/__init__.py | 0 .../all/aws_networkmanager_device/boto.json | 37 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_networkmanager_link/__init__.py | 0 .../all/aws_networkmanager_link/boto.json | 27 + .../all/aws_networkmanager_site/__init__.py | 0 .../all/aws_networkmanager_site/boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../extensions/all/aws_oam_link/__init__.py | 0 .../extensions/all/aws_oam_link/boto.json | 7 + .../all/aws_omics_annotationstore/__init__.py | 0 .../all/aws_omics_annotationstore/boto.json | 11 + .../all/aws_omics_workflow/__init__.py | 0 .../all/aws_omics_workflow/boto.json | 18 + .../__init__.py | 0 .../boto.json | 9 + .../__init__.py | 0 .../boto.json | 19 + .../__init__.py | 0 .../boto.json | 9 + .../__init__.py | 0 .../boto.json | 9 + .../__init__.py | 0 .../boto.json | 10 + .../all/aws_opsworkscm_server/boto.json | 22 + .../__init__.py | 0 .../boto.json | 27 + .../all/aws_panorama_package/__init__.py | 0 .../all/aws_panorama_package/boto.json | 7 + .../aws_panorama_packageversion/__init__.py | 0 .../all/aws_panorama_packageversion/boto.json | 22 + .../aws_paymentcryptography_key/__init__.py | 0 .../all/aws_paymentcryptography_key/boto.json | 10 + .../extensions/all/aws_pipes_pipe/__init__.py | 0 .../extensions/all/aws_pipes_pipe/boto.json | 15 + .../__init__.py | 0 .../aws_proton_environmenttemplate/boto.json | 9 + .../aws_proton_servicetemplate/__init__.py | 0 .../all/aws_proton_servicetemplate/boto.json | 9 + .../all/aws_qbusiness_application/__init__.py | 0 .../all/aws_qbusiness_application/boto.json | 11 + .../all/aws_qbusiness_index/__init__.py | 0 .../all/aws_qbusiness_index/boto.json | 10 + .../all/aws_qbusiness_plugin/__init__.py | 0 .../all/aws_qbusiness_plugin/boto.json | 13 + .../all/aws_qbusiness_retriever/__init__.py | 0 .../all/aws_qbusiness_retriever/boto.json | 10 + .../aws_qbusiness_webexperience/__init__.py | 0 .../all/aws_qbusiness_webexperience/boto.json | 10 + .../all/aws_quicksight_dataset/__init__.py | 0 .../all/aws_quicksight_dataset/boto.json | 10 + .../all/aws_quicksight_datasource/__init__.py | 0 .../all/aws_quicksight_datasource/boto.json | 37 + .../all/aws_quicksight_folder/__init__.py | 0 .../all/aws_quicksight_folder/boto.json | 18 + .../all/aws_ram_permission/__init__.py | 0 .../all/aws_ram_permission/boto.json | 7 + .../aws_rds_customdbengineversion/boto.json | 22 + .../all/aws_rds_dbinstance/boto.json | 10 + .../all/aws_rds_integration/__init__.py | 0 .../all/aws_rds_integration/boto.json | 12 + .../all/aws_redshift_cluster/boto.json | 11 + .../aws_rekognition_collection/__init__.py | 0 .../all/aws_rekognition_collection/boto.json | 7 + .../all/aws_rekognition_project/__init__.py | 0 .../all/aws_rekognition_project/boto.json | 7 + .../__init__.py | 0 .../aws_rekognition_streamprocessor/boto.json | 7 + .../all/aws_resourcegroups_group/__init__.py | 0 .../all/aws_resourcegroups_group/boto.json | 12 + .../all/aws_robomaker_robot/__init__.py | 0 .../all/aws_robomaker_robot/boto.json | 12 + .../__init__.py | 0 .../aws_robomaker_robotapplication/boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_rolesanywhere_profile/__init__.py | 0 .../all/aws_rolesanywhere_profile/boto.json | 7 + .../aws_rolesanywhere_trustanchor/__init__.py | 0 .../aws_rolesanywhere_trustanchor/boto.json | 7 + .../aws_route53profiles_profile/__init__.py | 0 .../all/aws_route53profiles_profile/boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_sagemaker_app/__init__.py | 0 .../all/aws_sagemaker_app/boto.json | 7 + .../boto.json | 7 + .../all/aws_sagemaker_image/__init__.py | 0 .../all/aws_sagemaker_image/boto.json | 7 + .../aws_sagemaker_imageversion/__init__.py | 0 .../all/aws_sagemaker_imageversion/boto.json | 44 + .../__init__.py | 0 .../boto.json | 17 + .../__init__.py | 0 .../boto.json | 12 + .../boto.json | 7 + .../all/aws_sagemaker_modelcard/__init__.py | 0 .../all/aws_sagemaker_modelcard/boto.json | 1 + .../boto.json | 7 + .../aws_sagemaker_modelpackage/__init__.py | 0 .../all/aws_sagemaker_modelpackage/boto.json | 49 + .../__init__.py | 0 .../aws_sagemaker_modelpackagegroup/boto.json | 12 + .../boto.json | 7 + .../boto.json | 7 + .../all/aws_sagemaker_pipeline/__init__.py | 0 .../all/aws_sagemaker_pipeline/boto.json | 7 + .../all/aws_sagemaker_project/__init__.py | 0 .../all/aws_sagemaker_project/boto.json | 12 + .../all/aws_sagemaker_space/__init__.py | 0 .../all/aws_sagemaker_space/boto.json | 12 + .../all/aws_sagemaker_userprofile/boto.json | 12 + .../__init__.py | 0 .../aws_securityhub_automationrule/boto.json | 12 + .../__init__.py | 0 .../boto.json | 12 + .../all/aws_securityhub_insight/__init__.py | 0 .../all/aws_securityhub_insight/boto.json | 12 + .../aws_securitylake_subscriber/__init__.py | 0 .../all/aws_securitylake_subscriber/boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_shield_protection/__init__.py | 0 .../all/aws_shield_protection/boto.json | 7 + .../all/aws_signer_signingprofile/__init__.py | 0 .../all/aws_signer_signingprofile/boto.json | 7 + .../aws_simspaceweaver_simulation/__init__.py | 0 .../aws_simspaceweaver_simulation/boto.json | 12 + .../all/aws_ssm_resourcepolicy/__init__.py | 0 .../all/aws_ssm_resourcepolicy/boto.json | 7 + .../all/aws_ssmcontacts_rotation/__init__.py | 0 .../all/aws_ssmcontacts_rotation/boto.json | 7 + .../__init__.py | 0 .../boto.json | 7 + .../all/aws_synthetics_canary/boto.json | 7 + .../aws_vpclattice_resourcepolicy/__init__.py | 0 .../aws_vpclattice_resourcepolicy/boto.json | 7 + .../extensions/all/aws_waf_rule/boto.json | 15 - .../all/aws_wafv2_ipset/__init__.py | 0 .../extensions/all/aws_wafv2_ipset/boto.json | 28 + .../all/aws_wafv2_rulegroup/__init__.py | 0 .../all/aws_wafv2_rulegroup/boto.json | 20 + .../all/aws_wafv2_webacl/__init__.py | 0 .../extensions/all/aws_wafv2_webacl/boto.json | 20 + .../all/aws_wisdom_assistant/__init__.py | 0 .../all/aws_wisdom_assistant/boto.json | 19 + .../__init__.py | 0 .../aws_wisdom_assistantassociation/boto.json | 9 + .../all/aws_wisdom_knowledgebase/__init__.py | 0 .../all/aws_wisdom_knowledgebase/boto.json | 21 + .../__init__.py | 0 .../boto.json | 14 + .../all/aws_workspacesweb_portal/__init__.py | 0 .../all/aws_workspacesweb_portal/boto.json | 19 + .../__init__.py | 0 .../aws_workspacesweb_usersettings/boto.json | 50 + 572 files changed, 5240 insertions(+), 1606 deletions(-) create mode 100644 scripts/boto/_automated_patches.py delete mode 100644 scripts/boto/data.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_imagebuilder/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_lifecyclehook/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_batch_computeenvironment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_collaboration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_collaboration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_configuredtable/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_configuredtable/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_configuredtableassociation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_configuredtableassociation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idmappingtable/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idmappingtable/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idnamespaceassociation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idnamespaceassociation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_membership/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_membership/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_resourceversion/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_resourceversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_function/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_function/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_keyvaluestore/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_keyvaluestore/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_channel/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_channel/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_eventdatastore/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_eventdatastore/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_resourcepolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_resourcepolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudwatch_metricstream/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudwatch_metricstream/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeartifact_domain/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeartifact_domain/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeartifact_packagegroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeartifact_packagegroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeartifact_repository/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeartifact_repository/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codebuild_fleet/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeconnections_connection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codeconnections_connection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codestarconnections_connection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codestarconnections_connection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codestarconnections_syncconfiguration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_codestarconnections_syncconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_comprehend_documentclassifier/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_connect_integrationassociation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_connect_integrationassociation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_connect_tasktemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_connect_tasktemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_customerprofiles_calculatedattributedefinition/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_customerprofiles_calculatedattributedefinition/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datapipeline_pipeline/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datapipeline_pipeline/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_datasource/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_datasource/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_projectmembership/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_projectmembership/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_userprofile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_userprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_licenseendpoint/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queue/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queue/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queueenvironment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queueenvironment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_storageprofile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_storageprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_docdbelastic_cluster/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_docdbelastic_cluster/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_globaltable/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_ipampool/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_ipampool/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_localgatewayroutetable/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_localgatewayroutetable/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_natgateway/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_natgateway/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_networkinsightspath/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_networkinsightspath/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_networkinterface/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccessendpoint/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccesstrustprovider/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccesstrustprovider/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_volume/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_volume/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_vpc/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_vpngateway/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_vpngateway/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ecr_pullthroughcacherule/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ecr_pullthroughcacherule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_efs_accesspoint/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_efs_accesspoint/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_efs_mounttarget/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_eks_addon/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_eks_addon/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_eks_nodegroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_eks_nodegroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_elasticache_user/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_elasticache_user/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_securityconfiguration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_securityconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_step/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_step/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studio/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studiosessionmapping/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studiosessionmapping/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emrserverless_application/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idmappingworkflow/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idmappingworkflow/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idnamespace/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idnamespace/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_matchingworkflow/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_matchingworkflow/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_policystatement/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_policystatement/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_schemamapping/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_schemamapping/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_apidestination/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_apidestination/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_archive/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_archive/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_connection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_connection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_eventbus/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_eventbus/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_events_rule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_experiment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_experiment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_feature/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_feature/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_launch/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_launch/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_project/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_project/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_segment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_segment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fis_experimenttemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fis_experimenttemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fis_targetaccountconfiguration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fis_targetaccountconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fms_notificationchannel/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fms_notificationchannel/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fsx_datarepositoryassociation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fsx_datarepositoryassociation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_build/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_build/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_fleet/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_fleet/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_gameservergroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_gameservergroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_globalaccelerator_endpointgroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_globalaccelerator_endpointgroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_database/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_database/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_job/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_registry/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_registry/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_schema/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_schema/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_schemaversion/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_schemaversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_usageprofile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_usageprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_grafana_workspace/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_healthlake_fhirdatastore/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_healthlake_fhirdatastore/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_group/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_grouppolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_grouppolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_instanceprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_managedpolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_policy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_role/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_rolepolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_rolepolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_servicelinkedrole/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_servicelinkedrole/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_user/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_userpolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iam_userpolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_component/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_component/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_containerrecipe/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_containerrecipe/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_distributionconfiguration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_distributionconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_image/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagepipeline/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagepipeline/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagerecipe/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagerecipe/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_infrastructureconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_lifecyclepolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_lifecyclepolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_workflow/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_workflow/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_authorizer/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_authorizer/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_certificate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_certificate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_certificateprovider/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_certificateprovider/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_custommetric/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_custommetric/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_domainconfiguration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_domainconfiguration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_fleetmetric/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_fleetmetric/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_policy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_policy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_provisioningtemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_provisioningtemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_securityprofile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_securityprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_topicrule/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iot_topicrule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotfleetwise_campaign/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotfleetwise_campaign/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotfleetwise_vehicle/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotfleetwise_vehicle/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_accesspolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_accesspolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_asset/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_asset/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_assetmodel/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_assetmodel/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_dashboard/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_dashboard/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_gateway/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_gateway/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_portal/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_portal/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_project/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_project/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_componenttype/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_componenttype/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_entity/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_entity/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_scene/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_scene/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_syncjob/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_syncjob/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_workspace/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_workspace/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_wirelessdevice/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_wirelessdevice/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_datasource/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_faq/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_faq/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_index/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_index/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendraranking_executionplan/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_kendraranking_executionplan/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lakeformation_tag/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lakeformation_tag/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_alias/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_alias/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_eventsourcemapping/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_layerversionpermission/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_layerversionpermission/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_licensemanager_grant/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_licensemanager_grant/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_alarm/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_alarm/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_bucket/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_bucket/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_container/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_container/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_disk/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_disk/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_distribution/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_distribution/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_instance/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_instance/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_loadbalancer/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_loadbalancer/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_loadbalancertlscertificate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_loadbalancertlscertificate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_staticip/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lightsail_staticip/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_geofencecollection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_geofencecollection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_map/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_map/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_placeindex/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_placeindex/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_routecalculator/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_routecalculator/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_tracker/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_tracker/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_logs_logstream/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_logs_logstream/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_logs_subscriptionfilter/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_logs_subscriptionfilter/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lookoutvision_project/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lookoutvision_project/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_m2_application/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_m2_environment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_managedblockchain_accessor/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_managedblockchain_accessor/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_cloudwatchalarmtemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_cloudwatchalarmtemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_cluster/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_cluster/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_eventbridgeruletemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_eventbridgeruletemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediapackagev2_channel/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediapackagev2_channel/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediapackagev2_originendpoint/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediapackagev2_originendpoint/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediatailor_channel/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediatailor_channel/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_memorydb_user/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_memorydb_user/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mwaa_environment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_neptunegraph_privategraphendpoint/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkfirewall_firewall/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_connectattachment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_connectattachment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_connectpeer/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_connectpeer/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_corenetwork/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_corenetwork/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_device/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_device/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_globalnetwork/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_globalnetwork/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_link/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_link/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_site/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_site/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_sitetositevpnattachment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_sitetositevpnattachment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_transitgatewaypeering/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_transitgatewaypeering/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_transitgatewayregistration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_transitgatewayregistration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_transitgatewayroutetableattachment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_transitgatewayroutetableattachment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_vpcattachment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkmanager_vpcattachment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_oam_link/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_oam_link/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_omics_annotationstore/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_omics_annotationstore/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_omics_workflow/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_omics_workflow/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_accesspolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_accesspolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_collection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_collection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_lifecyclepolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_lifecyclepolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_securityconfig/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_securityconfig/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_securitypolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_securitypolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opsworkscm_server/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_applicationinstance/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_applicationinstance/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_package/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_package/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_packageversion/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_packageversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_paymentcryptography_key/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_paymentcryptography_key/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_pipes_pipe/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_pipes_pipe/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_proton_environmenttemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_proton_environmenttemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_proton_servicetemplate/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_proton_servicetemplate/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_application/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_application/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_index/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_index/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_plugin/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_plugin/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_retriever/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_retriever/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_webexperience/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_webexperience/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_dataset/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_dataset/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_datasource/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_datasource/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_folder/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_folder/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ram_permission/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ram_permission/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rds_customdbengineversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rds_dbinstance/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rds_integration/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rds_integration/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_redshift_cluster/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_collection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_collection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_project/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_project/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_streamprocessor/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_streamprocessor/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_resourcegroups_group/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_resourcegroups_group/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robot/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robot/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robotapplication/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robotapplication/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robotapplicationversion/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robotapplicationversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_simulationapplicationversion/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_simulationapplicationversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rolesanywhere_profile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rolesanywhere_profile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rolesanywhere_trustanchor/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rolesanywhere_trustanchor/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53profiles_profile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53profiles_profile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53recoveryreadiness_resourceset/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53recoveryreadiness_resourceset/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53resolver_outpostresolver/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53resolver_outpostresolver/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53resolver_resolverrule/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_route53resolver_resolverrule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_app/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_app/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_dataqualityjobdefinition/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_image/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_image/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_imageversion/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_imageversion/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_inferencecomponent/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_inferencecomponent/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_inferenceexperiment/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_inferenceexperiment/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelbiasjobdefinition/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelcard/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelcard/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelexplainabilityjobdefinition/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelpackage/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelpackage/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelpackagegroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelpackagegroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelqualityjobdefinition/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_monitoringschedule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_pipeline/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_pipeline/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_project/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_project/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_space/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_space/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_userprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securityhub_automationrule/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securityhub_automationrule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securityhub_configurationpolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securityhub_configurationpolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securityhub_insight/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securityhub_insight/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securitylake_subscriber/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_securitylake_subscriber/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_servicecatalog_serviceaction/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_servicecatalog_serviceaction/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_servicecatalogappregistry_attributegroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_servicecatalogappregistry_attributegroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_shield_protection/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_shield_protection/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_signer_signingprofile/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_signer_signingprofile/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_simspaceweaver_simulation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_simspaceweaver_simulation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ssm_resourcepolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ssm_resourcepolicy/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ssmcontacts_rotation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_ssmcontacts_rotation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_stepfunctions_statemachinealias/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_stepfunctions_statemachinealias/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_synthetics_canary/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_vpclattice_resourcepolicy/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_vpclattice_resourcepolicy/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_waf_rule/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_ipset/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_ipset/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_rulegroup/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_rulegroup/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_webacl/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_webacl/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_assistant/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_assistant/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_assistantassociation/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_assistantassociation/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_knowledgebase/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_knowledgebase/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_identityprovider/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_identityprovider/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_portal/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_portal/boto.json create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_usersettings/__init__.py create mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_usersettings/boto.json diff --git a/scripts/boto/_automated_patches.py b/scripts/boto/_automated_patches.py new file mode 100644 index 0000000000..e3eecad925 --- /dev/null +++ b/scripts/boto/_automated_patches.py @@ -0,0 +1,202 @@ +""" +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: MIT-0 +""" + +import json +from pathlib import Path +from typing import Any + +from _types import AllPatches, Patch, ResourcePatches + +skip = [ + "account", + "chime", + "chimesdkidentity", + "chimesdkmessaging", + "chimesdkmeetings", + "chimesdkvoice", + "paymentcryptographydata", + "rdsdata", + "finspacedata", + "appconfigdata", + "iotjobsdata", + "dataexchange", + "bedrockruntime", + "swf", + "cloudhsm", + "cloudhsmv2", + "workdocs", +] + +skip_property_names = ["State"] + +_fields = ["pattern", "enum"] + + +def renamer(name): + manual_fixes = { + "acm": "CertificateManager", + "mq": "AmazonMQ", + "kafka": "MSK", + "firehose": "KinesisFirehose", + "es": "ElasticSearch", + } + if name in manual_fixes: + return manual_fixes[name].lower() + + return name.replace("-", "").lower() + + +def get_shapes(data: dict[str, Any], name: str): + shapes: dict[str, Any] = {} + + input_shape = data.get("operations", {}).get(name, {}).get("input", {}).get("shape") + if not input_shape: + return shapes + + for shape_name, shap_data in data.get("shapes", {}).items(): + if "enum" in shap_data: + shapes[shape_name] = {"enum": shap_data.get("enum")} + + return shapes + + +def get_schema_create_operations(data: dict[str, Any]) -> list[str]: + results = [] + + action_prefixes = ["Put", "Add", "Create", "Register", "Allocate", "Start", "Run"] + + for api in data.get("handlers", {}).get("create", {}).get("permissions", []): + if ":" not in api: + continue + api = api.split(":")[1] + for action_prefix in action_prefixes: + if api.startswith(action_prefix): + results.append(api) + + return results + + +def get_last_date(service_dir: Path) -> str: + last_date = "0000-00-00" + for date_dir in service_dir.iterdir(): + if not date_dir.is_dir(): + continue + + if date_dir.name > last_date: + last_date = date_dir.name + + return last_date + + +def _per_resource_patch( + schema_data: dict[str, Any], boto_data: dict[str, Any], source: list[str] +) -> ResourcePatches: + results: ResourcePatches = {} + create_operations = get_schema_create_operations(schema_data) + shapes = {} + for create_operation in create_operations: + shapes.update(get_shapes(boto_data, create_operation)) + create_shape = ( + boto_data.get("operations", {}) + .get(create_operation, {}) + .get("input", {}) + .get("shape") + ) + + for member, member_data in ( + boto_data.get("shapes", {}).get(create_shape, {}).get("members", {}).items() + ): + for p_name, p_data in schema_data.get("properties", {}).items(): + if p_name in skip_property_names: + continue + if p_name.lower() == member.lower(): + + # skip if we already have an enum or pattern + if any([p_data.get(field) for field in _fields]): + continue + + member_shape_name = member_data.get("shape") + member_shape = boto_data.get("shapes", {}).get( + member_shape_name, {} + ) + + if not any([member_shape.get(field) for field in _fields]): + continue + + results[f"/properties/{p_name}"] = Patch( + source=source, + shape=member_shape_name, + ) + + return results + + +def get_resource_patches( + service_dir: Path, schema_path: Path, service_name: str, last_date: str +) -> AllPatches: + + results: AllPatches = {} + + services_file = Path(f"{service_dir}/{last_date}/service-2.json") + if not services_file.exists(): + return results + + boto_data = {} + with open(services_file, "r") as f: + boto_data = json.load(f) + + if not boto_data: + return results + + resources = list(schema_path.glob(f"aws-{service_name}-*.json")) + if not resources: + print(f"No resource files found for {service_name}") + + for resource in resources: + with open(resource, "r") as f: + schema_data = json.load(f) + + resource_type = schema_data.get("typeName", "") + if resource_type not in results: + results[resource_type] = {} + + results[resource_type].update( + _per_resource_patch( + schema_data, boto_data, [service_dir.name, last_date] + ) + ) + + return results + + +def each_boto_service(boto_path: Path, schema_path: Path) -> AllPatches: + results: AllPatches = {} + _results: AllPatches = {} + boto_path = boto_path / "botocore-master" / "botocore" / "data" + + for service_dir in boto_path.iterdir(): + print(service_dir) + if not service_dir.is_dir(): + continue + + service_name = renamer(service_dir.name) + + if service_name in skip: + continue + + last_date = get_last_date(service_dir) + + _results = get_resource_patches( + service_dir, schema_path, service_name, last_date + ) + for type_name, patches in _results.items(): + if patches: + results[type_name] = patches + + return results + + +def build_automated_patches(boto_path: Path, schema_path: Path) -> AllPatches: + return each_boto_service(boto_path, schema_path) diff --git a/scripts/boto/_manual_patches.py b/scripts/boto/_manual_patches.py index 6bc8168759..da36799c6b 100644 --- a/scripts/boto/_manual_patches.py +++ b/scripts/boto/_manual_patches.py @@ -61,7 +61,10 @@ source=["application-autoscaling", "2016-02-06"], shape="PolicyType", ), - "/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType": Patch( + ( + "/definitions/PredefinedMetricSpecification/" + "properties/PredefinedMetricType" + ): Patch( source=["application-autoscaling", "2016-02-06"], shape="MetricType", ), @@ -78,12 +81,6 @@ shape="AuthenticationType", ), }, - "AWS::AppSync::Resolver": { - "/properties/Kind": Patch( - source=["appsync", "2017-07-25"], - shape="ResolverKind", - ), - }, "AWS::AutoScaling::LaunchConfiguration": { "/definitions/BlockDevice/properties/VolumeType": Patch( source=["ec2", "2016-11-15"], @@ -95,7 +92,10 @@ source=["autoscaling", "2011-01-01"], shape="MetricStatistic", ), - "/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType": Patch( + ( + "/definitions/PredefinedMetricSpecification/" + "properties/PredefinedMetricType" + ): Patch( source=["autoscaling", "2011-01-01"], shape="MetricType", ), @@ -109,7 +109,10 @@ source=["autoscaling-plans", "2018-01-06"], shape="ServiceNamespace", ), - "/definitions/ScalingInstruction/properties/PredictiveScalingMaxCapacityBehavior": Patch( + ( + "/definitions/ScalingInstruction/properties/" + "PredictiveScalingMaxCapacityBehavior" + ): Patch( source=["autoscaling-plans", "2018-01-06"], shape="PredictiveScalingMaxCapacityBehavior", ), @@ -198,20 +201,6 @@ shape="SSLSupportMethod", ), }, - "AWS::CloudWatch::Alarm": { - "/properties/ComparisonOperator": Patch( - source=["cloudwatch", "2010-08-01"], - shape="ComparisonOperator", - ), - "/properties/Statistic": Patch( - source=["cloudwatch", "2010-08-01"], - shape="Statistic", - ), - "/properties/Unit": Patch( - source=["cloudwatch", "2010-08-01"], - shape="StandardUnit", - ), - }, "AWS::CodeBuild::Project": { "/definitions/Artifacts/properties/Packaging": Patch( source=["codebuild", "2016-10-06"], @@ -248,12 +237,6 @@ shape="RepositoryTriggerEventEnum", ), }, - "AWS::CodeDeploy::Application": { - "/properties/ComputePlatform": Patch( - source=["codedeploy", "2014-10-06"], - shape="ComputePlatform", - ), - }, "AWS::CodeDeploy::DeploymentGroup": { "/definitions/AutoRollbackConfiguration/properties/Events/items": Patch( source=["codedeploy", "2014-10-06"], @@ -389,10 +372,6 @@ source=["dynamodb", "2012-08-10"], shape="ScalarAttributeType", ), - "/properties/BillingMode": Patch( - source=["dynamodb", "2012-08-10"], - shape="BillingMode", - ), "/definitions/KeySchema/properties/KeyType": Patch( source=["dynamodb", "2012-08-10"], shape="KeyType", @@ -406,44 +385,18 @@ shape="StreamViewType", ), }, - "AWS::EC2::CapacityReservation": { - "/properties/EndDateType": Patch( - source=["ec2", "2016-11-15"], - shape="EndDateType", - ), - "/properties/InstanceMatchCriteria": Patch( - source=["ec2", "2016-11-15"], - shape="InstanceMatchCriteria", - ), - "/properties/InstancePlatform": Patch( - source=["ec2", "2016-11-15"], - shape="CapacityReservationInstancePlatform", - ), - }, "AWS::EC2::CustomerGateway": { "/properties/Type": Patch( source=["ec2", "2016-11-15"], shape="GatewayType", ), }, - "AWS::EC2::EIP": { - "/properties/Domain": Patch( - source=["ec2", "2016-11-15"], - shape="DomainType", - ), - }, "AWS::EC2::EC2Fleet": { "/definitions/OnDemandOptionsRequest/properties/AllocationStrategy": Patch( source=["ec2", "2016-11-15"], shape="FleetOnDemandAllocationStrategy", ), }, - "AWS::EC2::Host": { - "/properties/AutoPlacement": Patch( - source=["ec2", "2016-11-15"], - shape="AutoPlacement", - ), - }, "AWS::EC2::Instance": { "/properties/Affinity": Patch( source=["ec2", "2016-11-15"], @@ -455,7 +408,10 @@ ), }, "AWS::EC2::LaunchTemplate": { - "/definitions/LaunchTemplateData/properties/InstanceInitiatedShutdownBehavior": Patch( + ( + "/definitions/LaunchTemplateData/properties/" + "InstanceInitiatedShutdownBehavior" + ): Patch( source=["ec2", "2016-11-15"], shape="ShutdownBehavior", ), @@ -484,24 +440,12 @@ shape="ResourceType", ), }, - "AWS::EC2::NetworkAclEntry": { - "/properties/RuleAction": Patch( - source=["ec2", "2016-11-15"], - shape="RuleAction", - ), - }, "AWS::EC2::NetworkInterfacePermission": { "/properties/Permission": Patch( source=["ec2", "2016-11-15"], shape="InterfacePermissionType", ), }, - "AWS::EC2::PlacementGroup": { - "/properties/Strategy": Patch( - source=["ec2", "2016-11-15"], - shape="PlacementGroupStrategy", - ), - }, "AWS::EC2::SpotFleet": { "/definitions/EbsBlockDevice/properties/VolumeType": Patch( source=["ec2", "2016-11-15"], @@ -509,10 +453,6 @@ ), }, "AWS::ECS::TaskDefinition": { - "/properties/NetworkMode": Patch( - source=["ecs", "2014-11-13"], - shape="NetworkMode", - ), "/definitions/ProxyConfiguration/properties/Type": Patch( source=["ecs", "2014-11-13"], shape="ProxyConfigurationType", @@ -523,14 +463,6 @@ source=["efs", "2015-02-01"], shape="TransitionToIARules", ), - "/properties/PerformanceMode": Patch( - source=["efs", "2015-02-01"], - shape="PerformanceMode", - ), - "/properties/ThroughputMode": Patch( - source=["efs", "2015-02-01"], - shape="ThroughputMode", - ), }, "AWS::Glue::Connection": { "/definitions/ConnectionInput/properties/ConnectionType": Patch( @@ -557,34 +489,6 @@ source=["glue", "2017-03-31"], shape="LogicalOperator", ), - "/properties/Type": Patch( - source=["glue", "2017-03-31"], - shape="TriggerType", - ), - }, - "AWS::GuardDuty::Detector": { - "/properties/FindingPublishingFrequency": Patch( - source=["guardduty", "2017-11-28"], - shape="FindingPublishingFrequency", - ), - }, - "AWS::GuardDuty::Filter": { - "/properties/Action": Patch( - source=["guardduty", "2017-11-28"], - shape="FilterAction", - ), - }, - "AWS::GuardDuty::IPSet": { - "/properties/Format": Patch( - source=["guardduty", "2017-11-28"], - shape="IpSetFormat", - ), - }, - "AWS::GuardDuty::ThreatIntelSet": { - "/properties/Format": Patch( - source=["guardduty", "2017-11-28"], - shape="ThreatIntelSetFormat", - ), }, "AWS::IAM::AccessKey": { "/properties/Status": Patch( @@ -592,24 +496,6 @@ shape="statusType", ), }, - "AWS::KinesisAnalyticsV2::Application": { - "/properties/RuntimeEnvironment": Patch( - source=["kinesisanalyticsv2", "2018-05-23"], - shape="RuntimeEnvironment", - ), - }, - "AWS::Lambda::Function": { - "/properties/Runtime": Patch( - source=["lambda", "2015-03-31"], - shape="Runtime", - ), - }, - "AWS::Lambda::EventSourceMapping": { - "/properties/StartingPosition": Patch( - source=["lambda", "2015-03-31"], - shape="EventSourcePosition", - ), - }, "AWS::OpsWorks::Instance": { "/definitions/EbsBlockDevice/properties/VolumeType": Patch( source=["ec2", "2016-11-15"], diff --git a/scripts/boto/data.json b/scripts/boto/data.json deleted file mode 100644 index 15aaa6cb4b..0000000000 --- a/scripts/boto/data.json +++ /dev/null @@ -1,1389 +0,0 @@ -{ - "AWS::AccessAnalyzer::Analyzer": { - "/properties/Type": { - "shape": "Type", - "source": [ - "accessanalyzer", - "2019-11-01" - ] - } - }, - "AWS::AppFlow::Connector": { - "/properties/ConnectorProvisioningType": { - "shape": "ConnectorProvisioningType", - "source": [ - "appflow", - "2020-08-23" - ] - } - }, - "AWS::AppFlow::ConnectorProfile": { - "/properties/ConnectorType": { - "shape": "ConnectorType", - "source": [ - "appflow", - "2020-08-23" - ] - } - }, - "AWS::AppStream::AppBlock": { - "/properties/PackagingType": { - "shape": "PackagingType", - "source": [ - "appstream", - "2016-12-01" - ] - } - }, - "AWS::AppStream::AppBlockBuilder": { - "/properties/Platform": { - "shape": "AppBlockBuilderPlatformType", - "source": [ - "appstream", - "2016-12-01" - ] - } - }, - "AWS::AppStream::Entitlement": { - "/properties/AppVisibility": { - "shape": "AppVisibility", - "source": [ - "appstream", - "2016-12-01" - ] - } - }, - "AWS::AppSync::Resolver": { - "/properties/Kind": { - "shape": "ResolverKind", - "source": [ - "appsync", - "2017-07-25" - ] - } - }, - "AWS::AutoScaling::WarmPool": { - "/properties/PoolState": { - "shape": "WarmPoolState", - "source": [ - "autoscaling", - "2011-01-01" - ] - } - }, - "AWS::B2BI::Capability": { - "/properties/Type": { - "shape": "CapabilityType", - "source": [ - "b2bi", - "2022-06-23" - ] - } - }, - "AWS::B2BI::Profile": { - "/properties/Logging": { - "shape": "Logging", - "source": [ - "b2bi", - "2022-06-23" - ] - } - }, - "AWS::B2BI::Transformer": { - "/properties/FileFormat": { - "shape": "FileFormat", - "source": [ - "b2bi", - "2022-06-23" - ] - } - }, - "AWS::Batch::ComputeEnvironment": { - "/properties/Type": { - "shape": "CEType", - "source": [ - "batch", - "2016-08-10" - ] - } - }, - "AWS::CleanRooms::Collaboration": { - "/properties/QueryLogStatus": { - "shape": "CollaborationQueryLogStatus", - "source": [ - "cleanrooms", - "2022-02-17" - ] - } - }, - "AWS::CleanRooms::ConfiguredTable": { - "/properties/AnalysisMethod": { - "shape": "AnalysisMethod", - "source": [ - "cleanrooms", - "2022-02-17" - ] - } - }, - "AWS::CleanRooms::Membership": { - "/properties/QueryLogStatus": { - "shape": "MembershipQueryLogStatus", - "source": [ - "cleanrooms", - "2022-02-17" - ] - } - }, - "AWS::CloudTrail::EventDataStore": { - "/properties/BillingMode": { - "shape": "BillingMode", - "source": [ - "cloudtrail", - "2013-11-01" - ] - } - }, - "AWS::CloudWatch::Alarm": { - "/properties/ComparisonOperator": { - "shape": "ComparisonOperator", - "source": [ - "cloudwatch", - "2010-08-01" - ] - }, - "/properties/Statistic": { - "shape": "Statistic", - "source": [ - "cloudwatch", - "2010-08-01" - ] - }, - "/properties/Unit": { - "shape": "StandardUnit", - "source": [ - "cloudwatch", - "2010-08-01" - ] - } - }, - "AWS::CloudWatch::MetricStream": { - "/properties/OutputFormat": { - "shape": "MetricStreamOutputFormat", - "source": [ - "cloudwatch", - "2010-08-01" - ] - } - }, - "AWS::CodeConnections::Connection": { - "/properties/ProviderType": { - "shape": "ProviderType", - "source": [ - "codeconnections", - "2023-12-01" - ] - } - }, - "AWS::CodeDeploy::Application": { - "/properties/ComputePlatform": { - "shape": "ComputePlatform", - "source": [ - "codedeploy", - "2014-10-06" - ] - } - }, - "AWS::CodeDeploy::DeploymentConfig": { - "/properties/ComputePlatform": { - "shape": "ComputePlatform", - "source": [ - "codedeploy", - "2014-10-06" - ] - } - }, - "AWS::CodePipeline::CustomActionType": { - "/properties/Category": { - "shape": "ActionCategory", - "source": [ - "codepipeline", - "2015-07-09" - ] - } - }, - "AWS::Connect::IntegrationAssociation": { - "/properties/IntegrationType": { - "shape": "IntegrationType", - "source": [ - "connect", - "2017-08-08" - ] - } - }, - "AWS::Connect::TaskTemplate": { - "/properties/Status": { - "shape": "TaskTemplateStatus", - "source": [ - "connect", - "2017-08-08" - ] - } - }, - "AWS::DataZone::DataSource": { - "/properties/EnableSetting": { - "shape": "EnableSetting", - "source": [ - "datazone", - "2018-05-10" - ] - } - }, - "AWS::DataZone::ProjectMembership": { - "/properties/Designation": { - "shape": "UserDesignation", - "source": [ - "datazone", - "2018-05-10" - ] - } - }, - "AWS::DataZone::UserProfile": { - "/properties/UserType": { - "shape": "UserType", - "source": [ - "datazone", - "2018-05-10" - ] - } - }, - "AWS::Deadline::Queue": { - "/properties/DefaultBudgetAction": { - "shape": "DefaultQueueBudgetAction", - "source": [ - "deadline", - "2023-10-12" - ] - } - }, - "AWS::Deadline::QueueEnvironment": { - "/properties/TemplateType": { - "shape": "EnvironmentTemplateType", - "source": [ - "deadline", - "2023-10-12" - ] - } - }, - "AWS::Deadline::StorageProfile": { - "/properties/OsFamily": { - "shape": "StorageProfileOperatingSystemFamily", - "source": [ - "deadline", - "2023-10-12" - ] - } - }, - "AWS::DynamoDB::GlobalTable": { - "/properties/BillingMode": { - "shape": "BillingMode", - "source": [ - "dynamodb", - "2012-08-10" - ] - } - }, - "AWS::DynamoDB::Table": { - "/properties/BillingMode": { - "shape": "BillingMode", - "source": [ - "dynamodb", - "2012-08-10" - ] - }, - "/properties/TableClass": { - "shape": "TableClass", - "source": [ - "dynamodb", - "2012-08-10" - ] - } - }, - "AWS::EC2::CapacityReservation": { - "/properties/EndDateType": { - "shape": "EndDateType", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/InstanceMatchCriteria": { - "shape": "InstanceMatchCriteria", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/InstancePlatform": { - "shape": "CapacityReservationInstancePlatform", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/Tenancy": { - "shape": "CapacityReservationTenancy", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::CustomerGateway": { - "/properties/Type": { - "shape": "GatewayType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::EIP": { - "/properties/Domain": { - "shape": "DomainType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::Host": { - "/properties/AutoPlacement": { - "shape": "AutoPlacement", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/HostMaintenance": { - "shape": "HostMaintenance", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/HostRecovery": { - "shape": "HostRecovery", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::IPAMPool": { - "/properties/AddressFamily": { - "shape": "AddressFamily", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::Instance": { - "/properties/InstanceInitiatedShutdownBehavior": { - "shape": "ShutdownBehavior", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/InstanceType": { - "shape": "InstanceType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::LocalGatewayRouteTable": { - "/properties/Mode": { - "shape": "LocalGatewayRouteTableMode", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::NatGateway": { - "/properties/ConnectivityType": { - "shape": "ConnectivityType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::NetworkAclEntry": { - "/properties/RuleAction": { - "shape": "RuleAction", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::NetworkInsightsPath": { - "/properties/Protocol": { - "shape": "Protocol", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::NetworkInterface": { - "/properties/InterfaceType": { - "shape": "NetworkInterfaceCreationType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::PlacementGroup": { - "/properties/SpreadLevel": { - "shape": "SpreadLevel", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/Strategy": { - "shape": "PlacementStrategy", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::VPC": { - "/properties/InstanceTenancy": { - "shape": "Tenancy", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::VPNGateway": { - "/properties/Type": { - "shape": "GatewayType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::VerifiedAccessEndpoint": { - "/properties/AttachmentType": { - "shape": "VerifiedAccessEndpointAttachmentType", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/EndpointType": { - "shape": "VerifiedAccessEndpointType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::VerifiedAccessTrustProvider": { - "/properties/DeviceTrustProviderType": { - "shape": "DeviceTrustProviderType", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/TrustProviderType": { - "shape": "TrustProviderType", - "source": [ - "ec2", - "2016-11-15" - ] - }, - "/properties/UserTrustProviderType": { - "shape": "UserTrustProviderType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::EC2::Volume": { - "/properties/VolumeType": { - "shape": "VolumeType", - "source": [ - "ec2", - "2016-11-15" - ] - } - }, - "AWS::ECR::PullThroughCacheRule": { - "/properties/UpstreamRegistry": { - "shape": "UpstreamRegistry", - "source": [ - "ecr", - "2015-09-21" - ] - } - }, - "AWS::ECS::TaskDefinition": { - "/properties/IpcMode": { - "shape": "IpcMode", - "source": [ - "ecs", - "2014-11-13" - ] - }, - "/properties/NetworkMode": { - "shape": "NetworkMode", - "source": [ - "ecs", - "2014-11-13" - ] - }, - "/properties/PidMode": { - "shape": "PidMode", - "source": [ - "ecs", - "2014-11-13" - ] - } - }, - "AWS::EFS::FileSystem": { - "/properties/PerformanceMode": { - "shape": "PerformanceMode", - "source": [ - "efs", - "2015-02-01" - ] - }, - "/properties/ThroughputMode": { - "shape": "ThroughputMode", - "source": [ - "efs", - "2015-02-01" - ] - } - }, - "AWS::EKS::Nodegroup": { - "/properties/AmiType": { - "shape": "AMITypes", - "source": [ - "eks", - "2017-11-01" - ] - }, - "/properties/CapacityType": { - "shape": "CapacityTypes", - "source": [ - "eks", - "2017-11-01" - ] - } - }, - "AWS::EntityResolution::PolicyStatement": { - "/properties/Effect": { - "shape": "StatementEffect", - "source": [ - "entityresolution", - "2018-05-10" - ] - } - }, - "AWS::GameLift::Fleet": { - "/properties/EC2InstanceType": { - "shape": "EC2InstanceType", - "source": [ - "gamelift", - "2015-10-01" - ] - } - }, - "AWS::GameLift::GameServerGroup": { - "/properties/BalancingStrategy": { - "shape": "BalancingStrategy", - "source": [ - "gamelift", - "2015-10-01" - ] - }, - "/properties/GameServerProtectionPolicy": { - "shape": "GameServerProtectionPolicy", - "source": [ - "gamelift", - "2015-10-01" - ] - } - }, - "AWS::Glue::Job": { - "/properties/ExecutionClass": { - "shape": "ExecutionClass", - "source": [ - "glue", - "2017-03-31" - ] - }, - "/properties/JobMode": { - "shape": "JobMode", - "source": [ - "glue", - "2017-03-31" - ] - } - }, - "AWS::Glue::Trigger": { - "/properties/Type": { - "shape": "TriggerType", - "source": [ - "glue", - "2017-03-31" - ] - } - }, - "AWS::Grafana::Workspace": { - "/properties/AccountAccessType": { - "shape": "AccountAccessType", - "source": [ - "grafana", - "2020-08-18" - ] - }, - "/properties/PermissionType": { - "shape": "PermissionType", - "source": [ - "grafana", - "2020-08-18" - ] - } - }, - "AWS::GuardDuty::Detector": { - "/properties/FindingPublishingFrequency": { - "shape": "FindingPublishingFrequency", - "source": [ - "guardduty", - "2017-11-28" - ] - } - }, - "AWS::GuardDuty::Filter": { - "/properties/Action": { - "shape": "FilterAction", - "source": [ - "guardduty", - "2017-11-28" - ] - } - }, - "AWS::GuardDuty::IPSet": { - "/properties/Format": { - "shape": "IpSetFormat", - "source": [ - "guardduty", - "2017-11-28" - ] - } - }, - "AWS::GuardDuty::ThreatIntelSet": { - "/properties/Format": { - "shape": "ThreatIntelSetFormat", - "source": [ - "guardduty", - "2017-11-28" - ] - } - }, - "AWS::HealthLake::FHIRDatastore": { - "/properties/DatastoreTypeVersion": { - "shape": "FHIRVersion", - "source": [ - "healthlake", - "2017-07-01" - ] - } - }, - "AWS::IoT::FleetMetric": { - "/properties/Unit": { - "shape": "FleetMetricUnit", - "source": [ - "iot", - "2015-05-28" - ] - } - }, - "AWS::IoTFleetWise::Campaign": { - "/properties/Compression": { - "shape": "Compression", - "source": [ - "iotfleetwise", - "2021-06-17" - ] - }, - "/properties/DiagnosticsMode": { - "shape": "DiagnosticsMode", - "source": [ - "iotfleetwise", - "2021-06-17" - ] - }, - "/properties/SpoolingMode": { - "shape": "SpoolingMode", - "source": [ - "iotfleetwise", - "2021-06-17" - ] - } - }, - "AWS::IoTFleetWise::Vehicle": { - "/properties/AssociationBehavior": { - "shape": "VehicleAssociationBehavior", - "source": [ - "iotfleetwise", - "2021-06-17" - ] - } - }, - "AWS::IoTSiteWise::AccessPolicy": { - "/properties/AccessPolicyPermission": { - "shape": "Permission", - "source": [ - "iotsitewise", - "2019-12-02" - ] - } - }, - "AWS::IoTSiteWise::AssetModel": { - "/properties/AssetModelType": { - "shape": "AssetModelType", - "source": [ - "iotsitewise", - "2019-12-02" - ] - } - }, - "AWS::IoTSiteWise::Portal": { - "/properties/PortalAuthMode": { - "shape": "AuthMode", - "source": [ - "iotsitewise", - "2019-12-02" - ] - } - }, - "AWS::Kendra::DataSource": { - "/properties/Type": { - "shape": "DataSourceType", - "source": [ - "kendra", - "2019-02-03" - ] - } - }, - "AWS::Kendra::Faq": { - "/properties/FileFormat": { - "shape": "FaqFileFormat", - "source": [ - "kendra", - "2019-02-03" - ] - } - }, - "AWS::Kendra::Index": { - "/properties/Edition": { - "shape": "IndexEdition", - "source": [ - "kendra", - "2019-02-03" - ] - }, - "/properties/UserContextPolicy": { - "shape": "UserContextPolicy", - "source": [ - "kendra", - "2019-02-03" - ] - } - }, - "AWS::KinesisAnalyticsV2::Application": { - "/properties/RuntimeEnvironment": { - "shape": "RuntimeEnvironment", - "source": [ - "kinesisanalyticsv2", - "2018-05-23" - ] - } - }, - "AWS::Lambda::EventSourceMapping": { - "/properties/StartingPosition": { - "shape": "EventSourcePosition", - "source": [ - "lambda", - "2015-03-31" - ] - } - }, - "AWS::Lambda::Function": { - "/properties/RecursiveLoop": { - "shape": "RecursiveLoop", - "source": [ - "lambda", - "2015-03-31" - ] - }, - "/properties/Runtime": { - "shape": "Runtime", - "source": [ - "lambda", - "2015-03-31" - ] - } - }, - "AWS::Lightsail::Alarm": { - "/properties/ComparisonOperator": { - "shape": "ComparisonOperator", - "source": [ - "lightsail", - "2016-11-28" - ] - }, - "/properties/MetricName": { - "shape": "MetricName", - "source": [ - "lightsail", - "2016-11-28" - ] - }, - "/properties/TreatMissingData": { - "shape": "TreatMissingData", - "source": [ - "lightsail", - "2016-11-28" - ] - } - }, - "AWS::Lightsail::Container": { - "/properties/Power": { - "shape": "ContainerServicePowerName", - "source": [ - "lightsail", - "2016-11-28" - ] - } - }, - "AWS::Lightsail::Distribution": { - "/properties/IpAddressType": { - "shape": "IpAddressType", - "source": [ - "lightsail", - "2016-11-28" - ] - } - }, - "AWS::Lightsail::LoadBalancer": { - "/properties/IpAddressType": { - "shape": "IpAddressType", - "source": [ - "lightsail", - "2016-11-28" - ] - } - }, - "AWS::Location::GeofenceCollection": { - "/properties/PricingPlan": { - "shape": "PricingPlan", - "source": [ - "location", - "2020-11-19" - ] - } - }, - "AWS::Location::Map": { - "/properties/PricingPlan": { - "shape": "PricingPlan", - "source": [ - "location", - "2020-11-19" - ] - } - }, - "AWS::Location::PlaceIndex": { - "/properties/PricingPlan": { - "shape": "PricingPlan", - "source": [ - "location", - "2020-11-19" - ] - } - }, - "AWS::Location::RouteCalculator": { - "/properties/PricingPlan": { - "shape": "PricingPlan", - "source": [ - "location", - "2020-11-19" - ] - } - }, - "AWS::Location::Tracker": { - "/properties/PositionFiltering": { - "shape": "PositionFiltering", - "source": [ - "location", - "2020-11-19" - ] - }, - "/properties/PricingPlan": { - "shape": "PricingPlan", - "source": [ - "location", - "2020-11-19" - ] - } - }, - "AWS::M2::Application": { - "/properties/EngineType": { - "shape": "EngineType", - "source": [ - "m2", - "2021-04-28" - ] - } - }, - "AWS::M2::Environment": { - "/properties/EngineType": { - "shape": "EngineType", - "source": [ - "m2", - "2021-04-28" - ] - } - }, - "AWS::MWAA::Environment": { - "/properties/EndpointManagement": { - "shape": "EndpointManagement", - "source": [ - "mwaa", - "2020-07-01" - ] - }, - "/properties/WebserverAccessMode": { - "shape": "WebserverAccessMode", - "source": [ - "mwaa", - "2020-07-01" - ] - } - }, - "AWS::ManagedBlockchain::Accessor": { - "/properties/AccessorType": { - "shape": "AccessorType", - "source": [ - "managedblockchain", - "2018-09-24" - ] - }, - "/properties/NetworkType": { - "shape": "AccessorNetworkType", - "source": [ - "managedblockchain", - "2018-09-24" - ] - } - }, - "AWS::MediaLive::CloudWatchAlarmTemplate": { - "/properties/ComparisonOperator": { - "shape": "CloudWatchAlarmTemplateComparisonOperator", - "source": [ - "medialive", - "2017-10-14" - ] - }, - "/properties/Statistic": { - "shape": "CloudWatchAlarmTemplateStatistic", - "source": [ - "medialive", - "2017-10-14" - ] - }, - "/properties/TargetResourceType": { - "shape": "CloudWatchAlarmTemplateTargetResourceType", - "source": [ - "medialive", - "2017-10-14" - ] - }, - "/properties/TreatMissingData": { - "shape": "CloudWatchAlarmTemplateTreatMissingData", - "source": [ - "medialive", - "2017-10-14" - ] - } - }, - "AWS::MediaLive::Cluster": { - "/properties/ClusterType": { - "shape": "ClusterType", - "source": [ - "medialive", - "2017-10-14" - ] - } - }, - "AWS::MediaLive::EventBridgeRuleTemplate": { - "/properties/EventType": { - "shape": "EventBridgeRuleTemplateEventType", - "source": [ - "medialive", - "2017-10-14" - ] - } - }, - "AWS::MediaPackageV2::Channel": { - "/properties/InputType": { - "shape": "InputType", - "source": [ - "mediapackagev2", - "2022-12-25" - ] - } - }, - "AWS::MediaPackageV2::OriginEndpoint": { - "/properties/ContainerType": { - "shape": "ContainerType", - "source": [ - "mediapackagev2", - "2022-12-25" - ] - } - }, - "AWS::MediaTailor::Channel": { - "/properties/PlaybackMode": { - "shape": "PlaybackMode", - "source": [ - "mediatailor", - "2018-04-23" - ] - }, - "/properties/Tier": { - "shape": "Tier", - "source": [ - "mediatailor", - "2018-04-23" - ] - } - }, - "AWS::Omics::AnnotationStore": { - "/properties/StoreFormat": { - "shape": "StoreFormat", - "source": [ - "omics", - "2022-11-28" - ] - } - }, - "AWS::Omics::Workflow": { - "/properties/Accelerators": { - "shape": "Accelerators", - "source": [ - "omics", - "2022-11-28" - ] - }, - "/properties/Engine": { - "shape": "WorkflowEngine", - "source": [ - "omics", - "2022-11-28" - ] - } - }, - "AWS::OpenSearchServerless::AccessPolicy": { - "/properties/Type": { - "shape": "AccessPolicyType", - "source": [ - "opensearchserverless", - "2021-11-01" - ] - } - }, - "AWS::OpenSearchServerless::Collection": { - "/properties/StandbyReplicas": { - "shape": "StandbyReplicas", - "source": [ - "opensearchserverless", - "2021-11-01" - ] - }, - "/properties/Type": { - "shape": "CollectionType", - "source": [ - "opensearchserverless", - "2021-11-01" - ] - } - }, - "AWS::OpenSearchServerless::LifecyclePolicy": { - "/properties/Type": { - "shape": "LifecyclePolicyType", - "source": [ - "opensearchserverless", - "2021-11-01" - ] - } - }, - "AWS::OpenSearchServerless::SecurityConfig": { - "/properties/Type": { - "shape": "SecurityConfigType", - "source": [ - "opensearchserverless", - "2021-11-01" - ] - } - }, - "AWS::OpenSearchServerless::SecurityPolicy": { - "/properties/Type": { - "shape": "SecurityPolicyType", - "source": [ - "opensearchserverless", - "2021-11-01" - ] - } - }, - "AWS::Pipes::Pipe": { - "/properties/DesiredState": { - "shape": "RequestedPipeState", - "source": [ - "pipes", - "2015-10-07" - ] - } - }, - "AWS::Proton::EnvironmentTemplate": { - "/properties/Provisioning": { - "shape": "Provisioning", - "source": [ - "proton", - "2020-07-20" - ] - } - }, - "AWS::Proton::ServiceTemplate": { - "/properties/PipelineProvisioning": { - "shape": "Provisioning", - "source": [ - "proton", - "2020-07-20" - ] - } - }, - "AWS::QBusiness::Application": { - "/properties/IdentityType": { - "shape": "IdentityType", - "source": [ - "qbusiness", - "2023-11-27" - ] - } - }, - "AWS::QBusiness::Index": { - "/properties/Type": { - "shape": "IndexType", - "source": [ - "qbusiness", - "2023-11-27" - ] - } - }, - "AWS::QBusiness::Plugin": { - "/properties/Type": { - "shape": "PluginType", - "source": [ - "qbusiness", - "2023-11-27" - ] - } - }, - "AWS::QBusiness::Retriever": { - "/properties/Type": { - "shape": "RetrieverType", - "source": [ - "qbusiness", - "2023-11-27" - ] - } - }, - "AWS::QBusiness::WebExperience": { - "/properties/SamplePromptsControlMode": { - "shape": "WebExperienceSamplePromptsControlMode", - "source": [ - "qbusiness", - "2023-11-27" - ] - } - }, - "AWS::QuickSight::DataSet": { - "/properties/ImportMode": { - "shape": "DataSetImportMode", - "source": [ - "quicksight", - "2018-04-01" - ] - } - }, - "AWS::QuickSight::DataSource": { - "/properties/Type": { - "shape": "DataSourceType", - "source": [ - "quicksight", - "2018-04-01" - ] - } - }, - "AWS::QuickSight::Folder": { - "/properties/FolderType": { - "shape": "FolderType", - "source": [ - "quicksight", - "2018-04-01" - ] - }, - "/properties/SharingModel": { - "shape": "SharingModel", - "source": [ - "quicksight", - "2018-04-01" - ] - } - }, - "AWS::RDS::DBInstance": { - "/properties/ReplicaMode": { - "shape": "ReplicaMode", - "source": [ - "rds", - "2014-10-31" - ] - } - }, - "AWS::Redshift::Cluster": { - "/properties/AquaConfigurationStatus": { - "shape": "AquaConfigurationStatus", - "source": [ - "redshift", - "2012-12-01" - ] - } - }, - "AWS::SageMaker::ImageVersion": { - "/properties/JobType": { - "shape": "JobType", - "source": [ - "sagemaker", - "2017-07-24" - ] - }, - "/properties/Processor": { - "shape": "Processor", - "source": [ - "sagemaker", - "2017-07-24" - ] - }, - "/properties/VendorGuidance": { - "shape": "VendorGuidance", - "source": [ - "sagemaker", - "2017-07-24" - ] - } - }, - "AWS::SageMaker::ModelPackage": { - "/properties/ModelApprovalStatus": { - "shape": "ModelApprovalStatus", - "source": [ - "sagemaker", - "2017-07-24" - ] - }, - "/properties/SkipModelValidation": { - "shape": "SkipModelValidation", - "source": [ - "sagemaker", - "2017-07-24" - ] - } - }, - "AWS::WAFv2::IPSet": { - "/properties/IPAddressVersion": { - "shape": "IPAddressVersion", - "source": [ - "wafv2", - "2019-07-29" - ] - }, - "/properties/Scope": { - "shape": "Scope", - "source": [ - "wafv2", - "2019-07-29" - ] - } - }, - "AWS::WAFv2::RuleGroup": { - "/properties/Scope": { - "shape": "Scope", - "source": [ - "wafv2", - "2019-07-29" - ] - } - }, - "AWS::WAFv2::WebACL": { - "/properties/Scope": { - "shape": "Scope", - "source": [ - "wafv2", - "2019-07-29" - ] - } - }, - "AWS::Wisdom::Assistant": { - "/properties/Type": { - "shape": "AssistantType", - "source": [ - "wisdom", - "2020-10-19" - ] - } - }, - "AWS::Wisdom::AssistantAssociation": { - "/properties/AssociationType": { - "shape": "AssociationType", - "source": [ - "wisdom", - "2020-10-19" - ] - } - }, - "AWS::Wisdom::KnowledgeBase": { - "/properties/KnowledgeBaseType": { - "shape": "KnowledgeBaseType", - "source": [ - "wisdom", - "2020-10-19" - ] - } - } -} diff --git a/scripts/boto/update_schemas_from_boto.py b/scripts/boto/update_schemas_from_boto.py index 6d9796754d..5e1b4be1e4 100755 --- a/scripts/boto/update_schemas_from_boto.py +++ b/scripts/boto/update_schemas_from_boto.py @@ -9,14 +9,20 @@ import os import tempfile import zipfile +from pathlib import Path +import regex as re import requests +from _automated_patches import build_automated_patches from _manual_patches import patches -from _types import ResourcePatches +from _types import AllPatches, ResourcePatches LOGGER = logging.getLogger("cfnlint") BOTO_URL = "https://github.com/boto/botocore/archive/refs/heads/master.zip" +SCHEMA_URL = ( + "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip" +) def configure_logging(): @@ -42,37 +48,52 @@ def build_resource_type_patches( LOGGER.info(f"Applying patches for {resource_name}") resource_name = resource_name.lower().replace("::", "_") - output_dir = os.path.join("src/cfnlint/data/schemas/patches/extensions/all/") - output_file = os.path.join( - output_dir, - resource_name, - "boto.json", - ) + output_path = Path("src/cfnlint/data/schemas/patches/extensions/all/") + resource_path = output_path / resource_name + if not resource_path.exists(): + resource_path.mkdir(parents=True) + (resource_path / "__init__.py").touch() + + output_file = resource_path / "boto.json" with open(output_file, "w+") as fh: d = [] boto_d = {} for path, patch in resource_patches.items(): - enums = [] - print(patch.source) service_path = ( ["botocore-master/botocore/data"] + patch.source + ["service-2.json"] ) with open(os.path.join(dir, *service_path), "r") as f: boto_d = json.load(f) - try: - enums = boto_d.get("shapes").get(patch.shape).get("enum") # type: ignore - d.append( - { - "op": "add", - "path": f"{path}/enum", - "value": sorted(enums), - } - ) - except AttributeError as e: - print(f"{patch.source}, {patch.shape}") - print(e) + for field in ["enum", "pattern"]: + value = boto_d.get("shapes", {}).get(patch.shape, {}).get(field) + if not value: + continue + if field == "pattern": + if value == ".*": + continue + try: + re.compile(value) + except Exception: + LOGGER.info( + ( + f"Pattern {value!r} failed to " + "compile for resource " + f"{resource_name!r}" + ) + ) + continue + if value: + d.append( + { + "op": "add", + "path": f"{path}/{field}", + "value": ( + sorted(value) if isinstance(value, list) else value + ), + } + ) json.dump( d, @@ -84,7 +105,10 @@ def build_resource_type_patches( fh.write("\n") -def build_patches(dir: str): +def build_patches( + dir: str, + patches: AllPatches, +): for resource_name, patch in patches.items(): build_resource_type_patches( dir, resource_name=resource_name, resource_patches=patch @@ -92,14 +116,33 @@ def build_patches(dir: str): def main(): - """main function""" configure_logging() with tempfile.TemporaryDirectory() as dir: + path = Path(dir) + boto_path = path / "botocore" + schema_path = path / "schemas" r = requests.get(BOTO_URL) z = zipfile.ZipFile(io.BytesIO(r.content)) - z.extractall(dir) + z.extractall(boto_path) - build_patches(dir) + r = requests.get(SCHEMA_URL) + z = zipfile.ZipFile(io.BytesIO(r.content)) + z.extractall(schema_path) + + _patches = patches + for k, v in patches.items(): + _patches[k] = v + for k, v in build_automated_patches(boto_path, schema_path).items(): + if k not in _patches: + _patches[k] = v + else: + for path, patch in v.items(): + if path in _patches[k]: + LOGGER.info(f"Patch {path!r} already found in resource {k!r}") + else: + _patches[k][path] = patch + + build_patches(boto_path, _patches) if __name__ == "__main__": diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/boto.json new file mode 100644 index 0000000000..f6ddc98937 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_accessanalyzer_analyzer/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/properties/AnalyzerName/pattern", + "value": "[A-Za-z][A-Za-z0-9_.-]*" + }, + { + "op": "add", + "path": "/properties/Type/enum", + "value": [ + "ACCOUNT", + "ACCOUNT_UNUSED_ACCESS", + "ORGANIZATION", + "ORGANIZATION_UNUSED_ACCESS" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json new file mode 100644 index 0000000000..4c03fcd262 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json @@ -0,0 +1,19 @@ +[ + { + "op": "add", + "path": "/properties/KeyStorageSecurityStandard/enum", + "value": [ + "CCPC_LEVEL_1_OR_HIGHER", + "FIPS_140_2_LEVEL_2_OR_HIGHER", + "FIPS_140_2_LEVEL_3_OR_HIGHER" + ] + }, + { + "op": "add", + "path": "/properties/UsageMode/enum", + "value": [ + "GENERAL_PURPOSE", + "SHORT_LIVED_CERTIFICATE" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/boto.json new file mode 100644 index 0000000000..b57b011a90 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_permission/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/properties/CertificateAuthorityArn/pattern", + "value": "arn:[\\w+=/,.@-]+:acm-pca:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + }, + { + "op": "add", + "path": "/properties/Principal/pattern", + "value": "[^*]+" + }, + { + "op": "add", + "path": "/properties/SourceAccount/pattern", + "value": "[0-9]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_amazonmq_configuration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json new file mode 100644 index 0000000000..0816f12386 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/properties/AccessToken/pattern", + "value": "(?s).+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/boto.json new file mode 100644 index 0000000000..fa7086e68f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appconfig_extension/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[^\\/#:\\n]{1,64}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json new file mode 100644 index 0000000000..4157546819 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json @@ -0,0 +1,32 @@ +[ + { + "op": "add", + "path": "/properties/ConnectorType/enum", + "value": [ + "Amplitude", + "CustomConnector", + "CustomerProfiles", + "Datadog", + "Dynatrace", + "EventBridge", + "Googleanalytics", + "Honeycode", + "Infornexus", + "LookoutMetrics", + "Marketo", + "Pardot", + "Redshift", + "S3", + "SAPOData", + "Salesforce", + "Servicenow", + "Singular", + "Slack", + "Snowflake", + "Trendmicro", + "Upsolver", + "Veeva", + "Zendesk" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json @@ -0,0 +1 @@ +[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json @@ -0,0 +1 @@ +[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json @@ -0,0 +1 @@ +[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/boto.json new file mode 100644 index 0000000000..58c29e4a42 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalabletarget/boto.json @@ -0,0 +1,52 @@ +[ + { + "op": "add", + "path": "/properties/ServiceNamespace/enum", + "value": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ] + }, + { + "op": "add", + "path": "/properties/ScalableDimension/enum", + "value": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json index e4f8c9a905..472b7ff68f 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json @@ -39,5 +39,60 @@ "SageMakerVariantProvisionedConcurrencyUtilization", "WorkSpacesAverageUserSessionsCapacityUtilization" ] + }, + { + "op": "add", + "path": "/properties/PolicyName/pattern", + "value": "\\p{Print}+" + }, + { + "op": "add", + "path": "/properties/ServiceNamespace/enum", + "value": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ] + }, + { + "op": "add", + "path": "/properties/ScalableDimension/enum", + "value": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json new file mode 100644 index 0000000000..13e1f98258 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json @@ -0,0 +1,15 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" + }, + { + "op": "add", + "path": "/properties/PackagingType/enum", + "value": [ + "APPSTREAM2", + "CUSTOM" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json new file mode 100644 index 0000000000..bee905e564 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json @@ -0,0 +1,19 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" + }, + { + "op": "add", + "path": "/properties/Platform/enum", + "value": [ + "WINDOWS_SERVER_2019" + ] + }, + { + "op": "add", + "path": "/properties/IamRoleArn/pattern", + "value": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json new file mode 100644 index 0000000000..05a903ed0f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" + }, + { + "op": "add", + "path": "/properties/AppBlockArn/pattern", + "value": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/boto.json new file mode 100644 index 0000000000..1e3200ebf5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_entitlement/boto.json @@ -0,0 +1,20 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" + }, + { + "op": "add", + "path": "/properties/StackName/pattern", + "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" + }, + { + "op": "add", + "path": "/properties/AppVisibility/enum", + "value": [ + "ALL", + "ASSOCIATED" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_imagebuilder/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_imagebuilder/boto.json new file mode 100644 index 0000000000..2e057ac160 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_imagebuilder/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" + }, + { + "op": "add", + "path": "/properties/ImageArn/pattern", + "value": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" + }, + { + "op": "add", + "path": "/properties/IamRoleArn/pattern", + "value": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/boto.json new file mode 100644 index 0000000000..5983722157 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_domainname/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/properties/Description/pattern", + "value": "^.*$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/boto.json new file mode 100644 index 0000000000..3cc817afef --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_functionconfiguration/boto.json @@ -0,0 +1,22 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "[_A-Za-z][_0-9A-Za-z]*" + }, + { + "op": "add", + "path": "/properties/DataSourceName/pattern", + "value": "[_A-Za-z][_0-9A-Za-z]*" + }, + { + "op": "add", + "path": "/properties/RequestMappingTemplate/pattern", + "value": "^.*$" + }, + { + "op": "add", + "path": "/properties/ResponseMappingTemplate/pattern", + "value": "^.*$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_resolver/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_resolver/boto.json index 91158a262f..5394860acb 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_resolver/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appsync_resolver/boto.json @@ -1,4 +1,29 @@ [ + { + "op": "add", + "path": "/properties/TypeName/pattern", + "value": "[_A-Za-z][_0-9A-Za-z]*" + }, + { + "op": "add", + "path": "/properties/FieldName/pattern", + "value": "[_A-Za-z][_0-9A-Za-z]*" + }, + { + "op": "add", + "path": "/properties/DataSourceName/pattern", + "value": "[_A-Za-z][_0-9A-Za-z]*" + }, + { + "op": "add", + "path": "/properties/RequestMappingTemplate/pattern", + "value": "^.*$" + }, + { + "op": "add", + "path": "/properties/ResponseMappingTemplate/pattern", + "value": "^.*$" + }, { "op": "add", "path": "/properties/Kind/enum", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json @@ -0,0 +1 @@ +[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/boto.json new file mode 100644 index 0000000000..cbddac217a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_namedquery/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/properties/WorkGroup/pattern", + "value": "[a-zA-Z0-9._-]{1,128}" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/boto.json new file mode 100644 index 0000000000..850447ae03 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_preparedstatement/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/properties/StatementName/pattern", + "value": "[a-zA-Z_][a-zA-Z0-9_@:]{1,256}" + }, + { + "op": "add", + "path": "/properties/WorkGroup/pattern", + "value": "[a-zA-Z0-9._-]{1,128}" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json new file mode 100644 index 0000000000..93e7a16bd6 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^[^\\\\]*$" + }, + { + "op": "add", + "path": "/properties/Description/pattern", + "value": "^[\\w\\W\\s\\S]*$" + }, + { + "op": "add", + "path": "/properties/FrameworkId/pattern", + "value": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json @@ -0,0 +1 @@ +[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_lifecyclehook/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_lifecyclehook/boto.json new file mode 100644 index 0000000000..a28679873b --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_lifecyclehook/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/properties/LifecycleHookName/pattern", + "value": "[A-Za-z0-9\\-_\\/]+" + }, + { + "op": "add", + "path": "/properties/NotificationMetadata/pattern", + "value": "[\\u0009\\u000A\\u000D\\u0020-\\u007e]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json @@ -0,0 +1 @@ +[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/boto.json new file mode 100644 index 0000000000..f94d9f7cd3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_warmpool/boto.json @@ -0,0 +1,11 @@ +[ + { + "op": "add", + "path": "/properties/PoolState/enum", + "value": [ + "Hibernated", + "Running", + "Stopped" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json new file mode 100644 index 0000000000..b1e9134e8d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json @@ -0,0 +1,9 @@ +[ + { + "op": "add", + "path": "/properties/Type/enum", + "value": [ + "edi" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json new file mode 100644 index 0000000000..70f6b6a9ce --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json @@ -0,0 +1,10 @@ +[ + { + "op": "add", + "path": "/properties/Logging/enum", + "value": [ + "DISABLED", + "ENABLED" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json new file mode 100644 index 0000000000..a6dace4450 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json @@ -0,0 +1,11 @@ +[ + { + "op": "add", + "path": "/properties/FileFormat/enum", + "value": [ + "JSON", + "NOT_USED", + "XML" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json new file mode 100644 index 0000000000..4dff994bef --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/properties/BackupVaultName/pattern", + "value": "^[a-zA-Z0-9\\-\\_]{2,50}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/boto.json new file mode 100644 index 0000000000..3462b14cb4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_framework/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/properties/FrameworkDescription/pattern", + "value": ".*\\S.*" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_batch_computeenvironment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_batch_computeenvironment/boto.json new file mode 100644 index 0000000000..eeece2d31d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_batch_computeenvironment/boto.json @@ -0,0 +1,10 @@ +[ + { + "op": "add", + "path": "/properties/Type/enum", + "value": [ + "MANAGED", + "UNMANAGED" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/boto.json new file mode 100644 index 0000000000..e1181bfb7b --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_budgets_budgetsaction/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/properties/BudgetName/pattern", + "value": "^(?![^:\\\\]*/action/|(?i).*.*)[^:\\\\]+$" + }, + { + "op": "add", + "path": "/properties/ExecutionRoleArn/pattern", + "value": "^arn:aws(-cn|-us-gov|-iso|-iso-[a-z]{1})?:iam::\\d{12}:role(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json new file mode 100644 index 0000000000..09c40890fe --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/properties/Name/pattern", + "value": "^(?! )[\\p{L}\\p{N}\\p{Z}-_]*(? Date: Fri, 11 Oct 2024 16:56:33 -0700 Subject: [PATCH 4/7] patch specs --- .../aws-codepipeline-customactiontype.json | 11 + .../af_south_1/aws-events-apidestination.json | 3 + .../af_south_1/aws-events-connection.json | 1 + .../af_south_1/aws-gamelift-fleet.json | 2 + .../af_south_1/aws-iam-managedpolicy.json | 1 + .../af_south_1/aws-iot-certificate.json | 1 + .../providers/af_south_1/aws-iot-policy.json | 2 + .../af_south_1/aws-iot-topicrule.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../ap_east_1/aws-events-apidestination.json | 3 + .../ap_east_1/aws-events-connection.json | 1 + .../ap_east_1/aws-gamelift-fleet.json | 2 + .../ap_east_1/aws-sagemaker-imageversion.json | 30 +- .../aws-events-apidestination.json | 3 + .../ap_northeast_1/aws-events-connection.json | 1 + .../aws-events-apidestination.json | 3 + .../ap_northeast_2/aws-events-connection.json | 1 + .../ap_northeast_2/aws-iam-managedpolicy.json | 1 + .../ap_northeast_2/aws-memorydb-user.json | 1 + .../ap_northeast_2/aws-robomaker-robot.json | 2 + .../aws-robomaker-robotapplication.json | 1 + ...aws-robomaker-robotapplicationversion.json | 1 + ...obomaker-simulationapplicationversion.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../aws-codepipeline-customactiontype.json | 11 + .../ap_northeast_3/aws-gamelift-fleet.json | 2 + .../ap_northeast_3/aws-iot-certificate.json | 1 + .../ap_northeast_3/aws-iot-policy.json | 2 + .../ap_northeast_3/aws-iot-topicrule.json | 1 + ...vicecatalogappregistry-attributegroup.json | 1 + .../ap_south_1/aws-events-apidestination.json | 3 + .../ap_south_1/aws-events-connection.json | 1 + .../ap_south_1/aws-robomaker-robot.json | 2 + .../aws-robomaker-robotapplication.json | 1 + ...aws-robomaker-robotapplicationversion.json | 1 + ...obomaker-simulationapplicationversion.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../aws-codepipeline-customactiontype.json | 11 + .../providers/ap_south_2/aws-ec2-host.json | 4 + .../ap_south_2/aws-gamelift-fleet.json | 2 + .../ap_south_2/aws-iam-instanceprofile.json | 2 + .../ap_south_2/aws-iot-certificate.json | 1 + .../providers/ap_south_2/aws-iot-policy.json | 2 + .../ap_south_2/aws-iot-topicrule.json | 1 + .../aws-events-apidestination.json | 3 + .../ap_southeast_1/aws-events-connection.json | 1 + .../aws-events-apidestination.json | 3 + .../ap_southeast_2/aws-events-connection.json | 1 + .../aws-iotsitewise-portal.json | 9 + .../aws-iotwireless-wirelessdevice.json | 1 + .../ap_southeast_2/aws-robomaker-robot.json | 2 + .../aws-robomaker-robotapplication.json | 1 + ...aws-robomaker-robotapplicationversion.json | 1 + ...obomaker-simulationapplicationversion.json | 1 + .../aws-codepipeline-customactiontype.json | 11 + .../ap_southeast_3/aws-ec2-host.json | 4 + .../ap_southeast_3/aws-gamelift-fleet.json | 2 + .../ap_southeast_3/aws-iam-managedpolicy.json | 1 + .../ap_southeast_3/aws-iot-certificate.json | 1 + .../ap_southeast_3/aws-iot-policy.json | 2 + .../ap_southeast_3/aws-iot-topicrule.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../aws-autoscaling-lifecyclehook.json | 2 + .../aws-codepipeline-customactiontype.json | 11 + .../ap_southeast_4/aws-ec2-host.json | 4 + .../ap_southeast_4/aws-ec2-volume.json | 9 + .../ap_southeast_4/aws-gamelift-fleet.json | 2 + .../aws-iam-instanceprofile.json | 2 + .../ap_southeast_4/aws-iam-managedpolicy.json | 1 + .../ap_southeast_4/aws-iot-certificate.json | 1 + .../ap_southeast_4/aws-iot-policy.json | 2 + .../ap_southeast_4/aws-iot-topicrule.json | 1 + ...applicationautoscaling-scalabletarget.json | 42 + ...-applicationautoscaling-scalingpolicy.json | 43 + .../aws-autoscaling-lifecyclehook.json | 2 + .../aws-codedeploy-deploymentconfig.json | 5 + .../aws-codepipeline-customactiontype.json | 11 + .../ap_southeast_5/aws-ec2-host.json | 4 + .../ap_southeast_5/aws-ec2-instance.json | 834 ++++++++++++++++++ .../ap_southeast_5/aws-ec2-volume.json | 9 + .../ap_southeast_5/aws-gamelift-fleet.json | 2 + .../aws-iam-instanceprofile.json | 2 + .../ap_southeast_5/aws-iot-certificate.json | 1 + .../ap_southeast_5/aws-iot-policy.json | 2 + .../ap_southeast_5/aws-iot-topicrule.json | 1 + .../aws-appstream-imagebuilder.json | 3 + .../aws-events-apidestination.json | 3 + .../ca_central_1/aws-events-connection.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- ...applicationautoscaling-scalabletarget.json | 42 + ...-applicationautoscaling-scalingpolicy.json | 43 + .../aws-autoscaling-lifecyclehook.json | 2 + .../aws-codepipeline-customactiontype.json | 11 + .../providers/ca_west_1/aws-ec2-host.json | 4 + .../providers/ca_west_1/aws-ec2-volume.json | 9 + .../ca_west_1/aws-gamelift-fleet.json | 2 + .../providers/ca_west_1/aws-glue-job.json | 11 + .../providers/ca_west_1/aws-iam-group.json | 1 + .../ca_west_1/aws-iam-instanceprofile.json | 2 + .../ca_west_1/aws-iam-managedpolicy.json | 1 + .../providers/ca_west_1/aws-iam-policy.json | 1 + .../providers/ca_west_1/aws-iam-role.json | 3 + .../providers/ca_west_1/aws-iam-user.json | 1 + .../ca_west_1/aws-iot-certificate.json | 1 + .../providers/ca_west_1/aws-iot-policy.json | 2 + .../ca_west_1/aws-iot-topicrule.json | 1 + .../ca_west_1/aws-lambda-function.json | 1 + .../ca_west_1/aws-rds-dbinstance.json | 4 + .../cn_north_1/aws-iotsitewise-portal.json | 9 + .../cn_north_1/aws-synthetics-canary.json | 1 + .../aws-appstream-imagebuilder.json | 3 + .../aws-iam-instanceprofile.json | 2 + .../cn_northwest_1/aws-iam-managedpolicy.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../cn_northwest_1/aws-synthetics-canary.json | 1 + .../eu_central_1/aws-codebuild-fleet.json | 1 + .../eu_central_1/aws-ec2-launchtemplate.json | 1 + .../aws-events-apidestination.json | 3 + .../eu_central_1/aws-events-connection.json | 1 + .../aws-codepipeline-customactiontype.json | 11 + .../providers/eu_central_2/aws-ec2-host.json | 4 + .../eu_central_2/aws-gamelift-fleet.json | 2 + .../providers/eu_central_2/aws-glue-job.json | 11 + .../eu_central_2/aws-iam-managedpolicy.json | 1 + .../eu_central_2/aws-iot-certificate.json | 1 + .../eu_central_2/aws-iot-policy.json | 2 + .../eu_central_2/aws-iot-topicrule.json | 1 + .../eu_central_2/aws-rds-dbinstance.json | 4 + .../eu_north_1/aws-events-apidestination.json | 3 + .../eu_north_1/aws-events-connection.json | 1 + .../eu_north_1/aws-gamelift-fleet.json | 2 + .../aws-route53resolver-resolverrule.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../eu_south_1/aws-events-apidestination.json | 3 + .../eu_south_1/aws-events-connection.json | 1 + .../eu_south_1/aws-gamelift-fleet.json | 2 + .../eu_south_1/aws-iam-managedpolicy.json | 1 + .../eu_south_1/aws-iot-certificate.json | 1 + .../providers/eu_south_1/aws-iot-policy.json | 2 + .../eu_south_1/aws-iot-topicrule.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../aws-codepipeline-customactiontype.json | 11 + .../providers/eu_south_2/aws-ec2-host.json | 4 + .../eu_south_2/aws-gamelift-fleet.json | 2 + .../providers/eu_south_2/aws-glue-job.json | 11 + .../eu_south_2/aws-iam-instanceprofile.json | 2 + .../eu_south_2/aws-iam-managedpolicy.json | 1 + .../eu_south_2/aws-iot-certificate.json | 1 + .../providers/eu_south_2/aws-iot-policy.json | 2 + .../eu_south_2/aws-iot-topicrule.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../eu_west_1/aws-events-apidestination.json | 3 + .../eu_west_1/aws-events-connection.json | 1 + .../aws-workspacesweb-identityprovider.json | 10 +- .../aws-workspacesweb-usersettings.json | 36 +- .../eu_west_2/aws-appstream-imagebuilder.json | 3 + .../eu_west_2/aws-events-apidestination.json | 3 + .../eu_west_2/aws-events-connection.json | 1 + .../eu_west_2/aws-sagemaker-imageversion.json | 30 +- .../eu_west_3/aws-events-apidestination.json | 3 + .../eu_west_3/aws-events-connection.json | 1 + .../eu_west_3/aws-gamelift-fleet.json | 2 + .../eu_west_3/aws-iam-managedpolicy.json | 1 + .../eu_west_3/aws-sagemaker-imageversion.json | 30 +- .../aws-amazonmq-configuration.json | 8 + ...applicationautoscaling-scalabletarget.json | 42 + .../aws-autoscaling-lifecyclehook.json | 2 + .../aws-codepipeline-customactiontype.json | 11 + .../providers/il_central_1/aws-ec2-host.json | 4 + .../il_central_1/aws-ec2-volume.json | 9 + .../il_central_1/aws-gamelift-fleet.json | 2 + .../il_central_1/aws-iam-instanceprofile.json | 2 + .../il_central_1/aws-iam-managedpolicy.json | 1 + .../il_central_1/aws-iam-policy.json | 1 + .../il_central_1/aws-iot-certificate.json | 1 + .../il_central_1/aws-iot-policy.json | 2 + .../il_central_1/aws-iot-topicrule.json | 1 + .../il_central_1/aws-lambda-function.json | 1 + .../aws-route53resolver-resolverrule.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../aws-codepipeline-customactiontype.json | 11 + .../providers/me_central_1/aws-ec2-host.json | 4 + .../me_central_1/aws-gamelift-fleet.json | 2 + .../aws-sagemaker-imageversion.json | 30 +- .../aws-codepipeline-customactiontype.json | 11 + .../me_south_1/aws-gamelift-fleet.json | 2 + .../me_south_1/aws-iam-managedpolicy.json | 1 + .../aws-sagemaker-imageversion.json | 30 +- .../sa_east_1/aws-events-apidestination.json | 3 + .../sa_east_1/aws-events-connection.json | 1 + .../aws-networkmanager-connectattachment.json | 3 + .../aws-networkmanager-connectpeer.json | 3 + .../aws-networkmanager-corenetwork.json | 3 + ...etworkmanager-sitetositevpnattachment.json | 2 + .../aws-networkmanager-vpcattachment.json | 2 + .../aws-accessanalyzer-analyzer.json | 7 + .../aws-acmpca-certificateauthority.json | 9 + .../us_east_1/aws-acmpca-permission.json | 3 + .../us_east_1/aws-amazonmq-broker.json | 12 + .../us_east_1/aws-amazonmq-configuration.json | 8 + .../providers/us_east_1/aws-amplify-app.json | 1 + .../us_east_1/aws-appconfig-extension.json | 1 + .../aws-appflow-connectorprofile.json | 28 +- ...applicationautoscaling-scalabletarget.json | 42 + ...-applicationautoscaling-scalingpolicy.json | 43 + .../us_east_1/aws-appstream-appblock.json | 7 +- .../aws-appstream-appblockbuilder.json | 7 +- .../us_east_1/aws-appstream-application.json | 4 +- .../us_east_1/aws-appstream-entitlement.json | 6 + .../us_east_1/aws-appstream-imagebuilder.json | 3 + .../us_east_1/aws-appsync-domainname.json | 1 + .../aws-appsync-functionconfiguration.json | 4 + .../us_east_1/aws-appsync-resolver.json | 5 + .../us_east_1/aws-athena-namedquery.json | 1 + .../aws-athena-preparedstatement.json | 2 + .../aws-auditmanager-assessment.json | 9 +- .../aws-autoscaling-lifecyclehook.json | 2 + .../us_east_1/aws-autoscaling-warmpool.json | 5 + .../us_east_1/aws-b2bi-capability.json | 5 +- .../providers/us_east_1/aws-b2bi-profile.json | 6 +- .../us_east_1/aws-b2bi-transformer.json | 7 +- .../us_east_1/aws-backup-backupvault.json | 3 +- .../us_east_1/aws-backup-framework.json | 1 + .../aws-batch-computeenvironment.json | 4 + .../us_east_1/aws-budgets-budgetsaction.json | 2 + .../us_east_1/aws-ce-costcategory.json | 5 +- .../aws-cleanrooms-collaboration.json | 9 +- .../aws-cleanrooms-configuredtable.json | 5 +- ...cleanrooms-configuredtableassociation.json | 1 + .../aws-cleanrooms-idmappingtable.json | 4 +- ...aws-cleanrooms-idnamespaceassociation.json | 3 +- .../us_east_1/aws-cleanrooms-membership.json | 6 +- .../aws-cloudformation-resourceversion.json | 1 + .../aws-cloudformation-stackset.json | 1 + .../us_east_1/aws-cloudfront-function.json | 1 + .../aws-cloudfront-keyvaluestore.json | 1 + .../us_east_1/aws-cloudtrail-channel.json | 3 +- .../aws-cloudtrail-eventdatastore.json | 7 + .../aws-cloudtrail-resourcepolicy.json | 1 + .../us_east_1/aws-cloudwatch-alarm.json | 1 + .../aws-cloudwatch-metricstream.json | 5 + .../us_east_1/aws-codeartifact-domain.json | 1 + .../aws-codeartifact-packagegroup.json | 2 + .../aws-codeartifact-repository.json | 1 + .../us_east_1/aws-codebuild-fleet.json | 1 + .../aws-codeconnections-connection.json | 8 + .../aws-codedeploy-deploymentconfig.json | 5 + .../aws-codepipeline-customactiontype.json | 11 + .../aws-codestarconnections-connection.json | 8 + ...codestarconnections-syncconfiguration.json | 5 + .../aws-comprehend-documentclassifier.json | 6 +- .../aws-connect-integrationassociation.json | 13 +- .../us_east_1/aws-connect-tasktemplate.json | 6 +- ...rofiles-calculatedattributedefinition.json | 21 +- .../us_east_1/aws-datazone-datasource.json | 6 +- .../aws-datazone-projectmembership.json | 6 +- .../us_east_1/aws-datazone-userprofile.json | 7 +- .../aws-deadline-licenseendpoint.json | 1 + .../us_east_1/aws-deadline-queue.json | 7 +- .../aws-deadline-queueenvironment.json | 6 +- .../aws-deadline-storageprofile.json | 7 +- .../us_east_1/aws-docdbelastic-cluster.json | 4 + .../us_east_1/aws-dynamodb-globaltable.json | 4 + .../aws-ec2-capacityreservation.json | 6 + .../providers/us_east_1/aws-ec2-host.json | 8 + .../providers/us_east_1/aws-ec2-instance.json | 834 ++++++++++++++++++ .../providers/us_east_1/aws-ec2-ipampool.json | 4 + .../us_east_1/aws-ec2-launchtemplate.json | 1 + .../aws-ec2-localgatewayroutetable.json | 4 + .../us_east_1/aws-ec2-natgateway.json | 4 + .../aws-ec2-networkinsightspath.json | 12 +- .../us_east_1/aws-ec2-networkinterface.json | 5 + .../us_east_1/aws-ec2-placementgroup.json | 4 + .../aws-ec2-verifiedaccessendpoint.json | 7 + .../aws-ec2-verifiedaccesstrustprovider.json | 13 + .../providers/us_east_1/aws-ec2-volume.json | 9 + .../providers/us_east_1/aws-ec2-vpc.json | 5 + .../us_east_1/aws-ec2-vpngateway.json | 3 + .../aws-ecr-pullthroughcacherule.json | 9 + .../us_east_1/aws-ecs-taskdefinition.json | 9 + .../us_east_1/aws-efs-accesspoint.json | 2 + .../us_east_1/aws-efs-filesystem.json | 3 + .../us_east_1/aws-efs-mounttarget.json | 3 + .../providers/us_east_1/aws-eks-addon.json | 1 + .../us_east_1/aws-eks-nodegroup.json | 23 + .../us_east_1/aws-elasticache-user.json | 1 + .../aws-emrserverless-application.json | 6 +- ...ws-entityresolution-idmappingworkflow.json | 3 +- .../aws-entityresolution-idnamespace.json | 3 +- ...aws-entityresolution-matchingworkflow.json | 3 +- .../aws-entityresolution-policystatement.json | 12 +- .../aws-entityresolution-schemamapping.json | 3 +- .../us_east_1/aws-events-apidestination.json | 3 + .../us_east_1/aws-events-archive.json | 1 + .../us_east_1/aws-events-connection.json | 1 + .../us_east_1/aws-events-eventbus.json | 2 + .../providers/us_east_1/aws-events-rule.json | 2 + .../us_east_1/aws-fis-experimenttemplate.json | 6 +- .../aws-fis-targetaccountconfiguration.json | 12 +- .../aws-fms-notificationchannel.json | 6 +- .../aws-fsx-datarepositoryassociation.json | 3 + .../us_east_1/aws-gamelift-build.json | 1 + .../us_east_1/aws-gamelift-fleet.json | 2 + .../aws-gamelift-gameservergroup.json | 19 +- .../aws-globalaccelerator-endpointgroup.json | 1 + .../providers/us_east_1/aws-glue-job.json | 11 + .../providers/us_east_1/aws-glue-schema.json | 1 + .../us_east_1/aws-glue-schemaversion.json | 1 + .../us_east_1/aws-grafana-workspace.json | 12 +- .../aws-healthlake-fhirdatastore.json | 8 +- .../providers/us_east_1/aws-iam-group.json | 1 + .../us_east_1/aws-iam-grouppolicy.json | 3 + .../us_east_1/aws-iam-instanceprofile.json | 2 + .../us_east_1/aws-iam-managedpolicy.json | 1 + .../providers/us_east_1/aws-iam-policy.json | 1 + .../providers/us_east_1/aws-iam-role.json | 3 + .../us_east_1/aws-iam-rolepolicy.json | 3 + .../us_east_1/aws-iam-servicelinkedrole.json | 3 + .../providers/us_east_1/aws-iam-user.json | 1 + .../us_east_1/aws-iam-userpolicy.json | 3 + .../us_east_1/aws-imagebuilder-component.json | 2 + .../aws-imagebuilder-containerrecipe.json | 2 + ...magebuilder-distributionconfiguration.json | 1 + .../us_east_1/aws-imagebuilder-image.json | 5 + .../aws-imagebuilder-imagepipeline.json | 6 + .../aws-imagebuilder-imagerecipe.json | 1 + ...gebuilder-infrastructureconfiguration.json | 3 + .../aws-imagebuilder-lifecyclepolicy.json | 2 + .../us_east_1/aws-imagebuilder-workflow.json | 2 + .../us_east_1/aws-iot-authorizer.json | 2 + .../us_east_1/aws-iot-certificate.json | 3 + .../aws-iot-certificateprovider.json | 1 + .../us_east_1/aws-iot-custommetric.json | 1 + .../aws-iot-domainconfiguration.json | 1 + .../us_east_1/aws-iot-fleetmetric.json | 32 + .../providers/us_east_1/aws-iot-policy.json | 2 + .../aws-iot-provisioningtemplate.json | 2 + .../us_east_1/aws-iot-securityprofile.json | 1 + .../us_east_1/aws-iot-topicrule.json | 1 + .../us_east_1/aws-iotfleetwise-campaign.json | 18 +- .../us_east_1/aws-iotfleetwise-vehicle.json | 6 +- .../aws-iotsitewise-accesspolicy.json | 4 + .../us_east_1/aws-iotsitewise-asset.json | 3 + .../us_east_1/aws-iotsitewise-assetmodel.json | 6 + .../us_east_1/aws-iotsitewise-dashboard.json | 4 + .../us_east_1/aws-iotsitewise-gateway.json | 1 + .../us_east_1/aws-iotsitewise-portal.json | 9 + .../us_east_1/aws-iotsitewise-project.json | 3 + .../us_east_1/aws-iottwinmaker-syncjob.json | 1 + .../us_east_1/aws-iottwinmaker-workspace.json | 1 + .../aws-iotwireless-wirelessdevice.json | 1 + .../us_east_1/aws-kendra-datasource.json | 38 +- .../providers/us_east_1/aws-kendra-faq.json | 22 +- .../providers/us_east_1/aws-kendra-index.json | 21 +- .../aws-kendraranking-executionplan.json | 6 +- .../aws-kinesisanalyticsv2-application.json | 3 +- .../us_east_1/aws-lakeformation-tag.json | 3 +- .../providers/us_east_1/aws-lambda-alias.json | 3 + .../us_east_1/aws-lambda-function.json | 7 +- .../aws-lambda-layerversionpermission.json | 3 + .../us_east_1/aws-licensemanager-grant.json | 3 +- .../us_east_1/aws-lightsail-alarm.json | 40 + .../us_east_1/aws-lightsail-bucket.json | 1 + .../us_east_1/aws-lightsail-container.json | 8 + .../us_east_1/aws-lightsail-disk.json | 1 + .../us_east_1/aws-lightsail-distribution.json | 6 + .../us_east_1/aws-lightsail-instance.json | 3 + .../us_east_1/aws-lightsail-loadbalancer.json | 5 + ...-lightsail-loadbalancertlscertificate.json | 1 + .../us_east_1/aws-lightsail-staticip.json | 1 + .../aws-location-geofencecollection.json | 7 +- .../providers/us_east_1/aws-location-map.json | 7 +- .../us_east_1/aws-location-placeindex.json | 7 +- .../aws-location-routecalculator.json | 7 +- .../us_east_1/aws-location-tracker.json | 14 +- .../us_east_1/aws-logs-logstream.json | 2 + .../aws-logs-subscriptionfilter.json | 2 + .../us_east_1/aws-lookoutvision-project.json | 3 +- .../us_east_1/aws-m2-application.json | 6 +- .../us_east_1/aws-m2-environment.json | 6 +- .../aws-managedblockchain-accessor.json | 14 +- ...aws-medialive-cloudwatchalarmtemplate.json | 37 +- .../us_east_1/aws-medialive-cluster.json | 5 +- ...aws-medialive-eventbridgeruletemplate.json | 17 +- .../us_east_1/aws-mediapackagev2-channel.json | 6 +- .../aws-mediapackagev2-originendpoint.json | 6 +- .../us_east_1/aws-mediatailor-channel.json | 12 +- .../us_east_1/aws-memorydb-user.json | 1 + .../us_east_1/aws-mwaa-environment.json | 30 +- ...aws-neptunegraph-privategraphendpoint.json | 2 + .../aws-networkfirewall-firewall.json | 3 +- .../aws-networkmanager-connectattachment.json | 3 + .../aws-networkmanager-connectpeer.json | 4 + .../aws-networkmanager-corenetwork.json | 3 + .../us_east_1/aws-networkmanager-device.json | 7 + .../aws-networkmanager-globalnetwork.json | 1 + .../us_east_1/aws-networkmanager-link.json | 5 + .../us_east_1/aws-networkmanager-site.json | 2 + ...etworkmanager-sitetositevpnattachment.json | 2 + ...-networkmanager-transitgatewaypeering.json | 2 + ...orkmanager-transitgatewayregistration.json | 2 + ...er-transitgatewayroutetableattachment.json | 2 + .../aws-networkmanager-vpcattachment.json | 2 + .../providers/us_east_1/aws-oam-link.json | 1 + .../us_east_1/aws-omics-annotationstore.json | 7 +- .../us_east_1/aws-omics-workflow.json | 12 +- ...aws-opensearchserverless-accesspolicy.json | 5 +- .../aws-opensearchserverless-collection.json | 13 +- ...-opensearchserverless-lifecyclepolicy.json | 5 +- ...s-opensearchserverless-securityconfig.json | 5 +- ...s-opensearchserverless-securitypolicy.json | 6 +- .../us_east_1/aws-opsworkscm-server.json | 4 + .../aws-panorama-applicationinstance.json | 15 +- .../us_east_1/aws-panorama-package.json | 3 +- .../aws-panorama-packageversion.json | 12 +- .../aws-paymentcryptography-key.json | 6 +- .../providers/us_east_1/aws-pipes-pipe.json | 7 +- .../aws-proton-environmenttemplate.json | 5 +- .../us_east_1/aws-proton-servicetemplate.json | 5 +- .../us_east_1/aws-qbusiness-application.json | 7 +- .../us_east_1/aws-qbusiness-index.json | 6 +- .../us_east_1/aws-qbusiness-plugin.json | 9 +- .../us_east_1/aws-qbusiness-retriever.json | 6 +- .../aws-qbusiness-webexperience.json | 6 +- .../us_east_1/aws-quicksight-dataset.json | 6 +- .../us_east_1/aws-quicksight-datasource.json | 33 +- .../us_east_1/aws-quicksight-folder.json | 12 +- .../us_east_1/aws-ram-permission.json | 1 + .../aws-rds-customdbengineversion.json | 4 + .../us_east_1/aws-rds-dbinstance.json | 4 + .../us_east_1/aws-rds-integration.json | 2 + .../us_east_1/aws-redshift-cluster.json | 5 + .../us_east_1/aws-rekognition-collection.json | 3 +- .../us_east_1/aws-rekognition-project.json | 3 +- .../aws-rekognition-streamprocessor.json | 1 + .../us_east_1/aws-resourcegroups-group.json | 2 + .../us_east_1/aws-robomaker-robot.json | 2 + .../aws-robomaker-robotapplication.json | 1 + ...aws-robomaker-robotapplicationversion.json | 3 +- ...obomaker-simulationapplicationversion.json | 3 +- .../us_east_1/aws-rolesanywhere-profile.json | 1 + .../aws-rolesanywhere-trustanchor.json | 1 + .../aws-route53profiles-profile.json | 1 + ...-route53recoveryreadiness-resourceset.json | 1 + .../aws-route53resolver-outpostresolver.json | 1 + .../aws-route53resolver-resolverrule.json | 1 + .../us_east_1/aws-sagemaker-app.json | 1 + ...ws-sagemaker-dataqualityjobdefinition.json | 3 +- .../us_east_1/aws-sagemaker-image.json | 3 +- .../us_east_1/aws-sagemaker-imageversion.json | 30 +- .../aws-sagemaker-inferencecomponent.json | 9 +- .../aws-sagemaker-inferenceexperiment.json | 4 +- .../aws-sagemaker-modelbiasjobdefinition.json | 3 +- ...aker-modelexplainabilityjobdefinition.json | 3 +- .../us_east_1/aws-sagemaker-modelpackage.json | 31 +- .../aws-sagemaker-modelpackagegroup.json | 6 +- ...s-sagemaker-modelqualityjobdefinition.json | 3 +- .../aws-sagemaker-monitoringschedule.json | 3 +- .../us_east_1/aws-sagemaker-pipeline.json | 1 + .../us_east_1/aws-sagemaker-project.json | 6 +- .../us_east_1/aws-sagemaker-space.json | 2 + .../us_east_1/aws-sagemaker-userprofile.json | 2 + .../aws-securityhub-automationrule.json | 2 + .../aws-securityhub-configurationpolicy.json | 2 + .../us_east_1/aws-securityhub-insight.json | 4 +- .../aws-securitylake-subscriber.json | 1 + .../aws-servicecatalog-serviceaction.json | 1 + ...vicecatalogappregistry-attributegroup.json | 1 + .../us_east_1/aws-shield-protection.json | 1 + .../us_east_1/aws-signer-signingprofile.json | 3 +- .../aws-simspaceweaver-simulation.json | 2 + .../us_east_1/aws-ssm-resourcepolicy.json | 1 + .../us_east_1/aws-ssmcontacts-rotation.json | 1 + .../aws-stepfunctions-statemachinealias.json | 1 + .../us_east_1/aws-synthetics-canary.json | 1 + .../aws-vpclattice-resourcepolicy.json | 1 + .../providers/us_east_1/aws-wafv2-ipset.json | 18 +- .../us_east_1/aws-wafv2-rulegroup.json | 12 +- .../providers/us_east_1/aws-wafv2-webacl.json | 12 +- .../us_east_1/aws-wisdom-assistant.json | 7 +- .../aws-wisdom-assistantassociation.json | 5 +- .../us_east_1/aws-wisdom-knowledgebase.json | 9 +- .../aws-workspacesweb-identityprovider.json | 10 +- .../us_east_1/aws-workspacesweb-portal.json | 13 +- .../aws-workspacesweb-usersettings.json | 36 +- .../us_east_2/aws-events-apidestination.json | 3 + .../us_east_2/aws-events-connection.json | 1 + .../us_east_2/aws-sagemaker-imageversion.json | 30 +- .../aws-amazonmq-configuration.json | 8 + ...applicationautoscaling-scalabletarget.json | 42 + .../aws-autoscaling-lifecyclehook.json | 2 + .../aws-codepipeline-customactiontype.json | 11 + .../providers/us_gov_east_1/aws-ec2-host.json | 4 + .../us_gov_east_1/aws-ec2-volume.json | 9 + .../us_gov_east_1/aws-efs-mounttarget.json | 3 + .../us_gov_east_1/aws-events-eventbus.json | 2 + .../us_gov_east_1/aws-events-rule.json | 2 + .../us_gov_east_1/aws-gamelift-fleet.json | 2 + .../providers/us_gov_east_1/aws-glue-job.json | 11 + .../us_gov_east_1/aws-iam-group.json | 1 + .../aws-iam-instanceprofile.json | 2 + .../us_gov_east_1/aws-iam-managedpolicy.json | 1 + .../us_gov_east_1/aws-iam-policy.json | 1 + .../aws-iam-servicelinkedrole.json | 3 + .../providers/us_gov_east_1/aws-iam-user.json | 1 + .../aws-lambda-layerversionpermission.json | 3 + .../us_gov_east_1/aws-rds-dbinstance.json | 4 + .../aws-sagemaker-imageversion.json | 30 +- .../us_gov_east_1/aws-synthetics-canary.json | 1 + .../us_gov_east_1/aws-wafv2-rulegroup.json | 12 +- .../us_gov_east_1/aws-wafv2-webacl.json | 12 +- .../aws-amazonmq-configuration.json | 8 + ...applicationautoscaling-scalabletarget.json | 42 + .../aws-appstream-imagebuilder.json | 3 + .../aws-autoscaling-lifecyclehook.json | 2 + .../aws-codepipeline-customactiontype.json | 11 + .../providers/us_gov_west_1/aws-ec2-host.json | 4 + .../us_gov_west_1/aws-ec2-volume.json | 9 + .../us_gov_west_1/aws-efs-mounttarget.json | 3 + .../us_gov_west_1/aws-events-eventbus.json | 2 + .../us_gov_west_1/aws-events-rule.json | 2 + .../us_gov_west_1/aws-gamelift-fleet.json | 2 + .../providers/us_gov_west_1/aws-glue-job.json | 11 + .../us_gov_west_1/aws-iam-group.json | 1 + .../aws-iam-instanceprofile.json | 2 + .../us_gov_west_1/aws-iam-managedpolicy.json | 1 + .../us_gov_west_1/aws-iam-policy.json | 1 + .../aws-iam-servicelinkedrole.json | 3 + .../providers/us_gov_west_1/aws-iam-user.json | 1 + .../us_gov_west_1/aws-iotsitewise-portal.json | 9 + .../aws-lambda-layerversionpermission.json | 3 + .../us_gov_west_1/aws-rds-dbinstance.json | 4 + .../aws-sagemaker-imageversion.json | 30 +- .../us_gov_west_1/aws-synthetics-canary.json | 1 + .../us_gov_west_1/aws-wafv2-rulegroup.json | 12 +- .../us_gov_west_1/aws-wafv2-webacl.json | 12 +- .../us_west_1/aws-events-apidestination.json | 3 + .../us_west_1/aws-events-connection.json | 1 + .../us_west_1/aws-rds-dbinstance.json | 4 + .../us_west_1/aws-sagemaker-imageversion.json | 30 +- .../us_west_2/aws-events-apidestination.json | 3 + .../us_west_2/aws-events-connection.json | 1 + .../us_west_2/aws-iotsitewise-portal.json | 9 + .../aws-iotwireless-wirelessdevice.json | 1 + 544 files changed, 4699 insertions(+), 338 deletions(-) diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-memorydb-user.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-memorydb-user.json index 675d5ae1c3..1caa8cdc1e 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-memorydb-user.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-memorydb-user.json @@ -31,6 +31,7 @@ ], "properties": { "AccessString": { + "pattern": ".*\\S.*", "type": "string" }, "Arn": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json index eabddd02a1..0f09e3e638 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json @@ -14,6 +14,7 @@ "type": "string" }, "Fleet": { + "pattern": "arn:.*", "type": "string" }, "GreengrassGroupId": { @@ -23,6 +24,7 @@ "type": "string" }, "Name": { + "pattern": "[a-zA-Z0-9_\\-]*", "type": "string" }, "Tags": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json index 9c6315e679..81df18c0e0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json @@ -56,6 +56,7 @@ "type": "string" }, "Name": { + "pattern": "[a-zA-Z0-9_\\-]*", "type": "string" }, "RobotSoftwareSuite": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json index 0558937133..941a6e9d2d 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json @@ -9,6 +9,7 @@ ], "properties": { "Application": { + "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json index f9797ed8ae..4006f060f8 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json @@ -9,6 +9,7 @@ ], "properties": { "Application": { + "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codepipeline-customactiontype.json index 89235a97cf..3b51d25fe6 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-certificate.json index 5e0b08e757..71c566a886 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json index b9b73c32c5..465eb251b0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json index 3eac963ff4..a18ee380f5 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json @@ -29,6 +29,7 @@ }, "Attributes": { "format": "json", + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json index eabddd02a1..0f09e3e638 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json @@ -14,6 +14,7 @@ "type": "string" }, "Fleet": { + "pattern": "arn:.*", "type": "string" }, "GreengrassGroupId": { @@ -23,6 +24,7 @@ "type": "string" }, "Name": { + "pattern": "[a-zA-Z0-9_\\-]*", "type": "string" }, "Tags": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json index 9c6315e679..81df18c0e0 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json @@ -56,6 +56,7 @@ "type": "string" }, "Name": { + "pattern": "[a-zA-Z0-9_\\-]*", "type": "string" }, "RobotSoftwareSuite": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json index 0558937133..941a6e9d2d 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json @@ -9,6 +9,7 @@ ], "properties": { "Application": { + "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json index f9797ed8ae..4006f060f8 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json @@ -9,6 +9,7 @@ ], "properties": { "Application": { + "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json index 5114eef31f..a71c9d32a8 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json @@ -15,9 +15,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json index e92dfd4312..68f42ea09d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json @@ -43,33 +43,42 @@ "type": "object" }, "NotificationSenderEmail": { + "pattern": "[^@]+@[^@]+", "type": "string" }, "PortalArn": { "type": "string" }, "PortalAuthMode": { + "enum": [ + "IAM", + "SSO" + ], "type": "string" }, "PortalClientId": { "type": "string" }, "PortalContactEmail": { + "pattern": "[^@]+@[^@]+", "type": "string" }, "PortalDescription": { + "pattern": "[^\\u0000-\\u001F\\u007F]+", "type": "string" }, "PortalId": { "type": "string" }, "PortalName": { + "pattern": "[^\\u0000-\\u001F\\u007F]+", "type": "string" }, "PortalStartUrl": { "type": "string" }, "RoleArn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" }, "Tags": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotwireless-wirelessdevice.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotwireless-wirelessdevice.json index 2742abbe69..67b4a6c80d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotwireless-wirelessdevice.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotwireless-wirelessdevice.json @@ -204,6 +204,7 @@ }, "DestinationName": { "maxLength": 128, + "pattern": "[a-zA-Z0-9-_]+", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json index eabddd02a1..0f09e3e638 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json @@ -14,6 +14,7 @@ "type": "string" }, "Fleet": { + "pattern": "arn:.*", "type": "string" }, "GreengrassGroupId": { @@ -23,6 +24,7 @@ "type": "string" }, "Name": { + "pattern": "[a-zA-Z0-9_\\-]*", "type": "string" }, "Tags": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json index 9c6315e679..81df18c0e0 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json @@ -56,6 +56,7 @@ "type": "string" }, "Name": { + "pattern": "[a-zA-Z0-9_\\-]*", "type": "string" }, "RobotSoftwareSuite": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json index 0558937133..941a6e9d2d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json @@ -9,6 +9,7 @@ ], "properties": { "Application": { + "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json index f9797ed8ae..4006f060f8 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json @@ -9,6 +9,7 @@ ], "properties": { "Application": { + "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json index dcade48812..cfe7bde60d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json @@ -25,6 +25,7 @@ "type": "string" }, "LifecycleHookName": { + "pattern": "[A-Za-z0-9\\-_\\/]+", "type": "string" }, "LifecycleTransition": { @@ -35,6 +36,7 @@ "type": "string" }, "NotificationMetadata": { + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007e]+", "type": "string" }, "NotificationTargetARN": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json index 11935248ba..60a5519884 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json @@ -63,6 +63,15 @@ "type": "integer" }, "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json index 5114eef31f..a71c9d32a8 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json @@ -15,9 +15,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalabletarget.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalabletarget.json index dfd1b1a11e..7cc97d6dc6 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalabletarget.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalabletarget.json @@ -82,6 +82,31 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScheduledActions": { @@ -92,6 +117,23 @@ "uniqueItems": true }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "SuspendedState": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalingpolicy.json index 78487c1780..e04d931f21 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalingpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalingpolicy.json @@ -263,6 +263,7 @@ "type": "string" }, "PolicyName": { + "pattern": "\\p{Print}+", "type": "string" }, "PolicyType": { @@ -276,12 +277,54 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScalingTargetId": { "type": "string" }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "StepScalingPolicyConfiguration": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-lifecyclehook.json index dcade48812..cfe7bde60d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-lifecyclehook.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-lifecyclehook.json @@ -25,6 +25,7 @@ "type": "string" }, "LifecycleHookName": { + "pattern": "[A-Za-z0-9\\-_\\/]+", "type": "string" }, "LifecycleTransition": { @@ -35,6 +36,7 @@ "type": "string" }, "NotificationMetadata": { + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007e]+", "type": "string" }, "NotificationTargetARN": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-deploymentconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-deploymentconfig.json index 4fed48ad0c..97c0a017a7 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-deploymentconfig.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-deploymentconfig.json @@ -83,6 +83,11 @@ ], "properties": { "ComputePlatform": { + "enum": [ + "ECS", + "Lambda", + "Server" + ], "type": "string" }, "DeploymentConfigName": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-instance.json index 80d264a564..1b9ae57e12 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-instance.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-instance.json @@ -442,9 +442,843 @@ "type": "string" }, "InstanceInitiatedShutdownBehavior": { + "enum": [ + "stop", + "terminate" + ], "type": "string" }, "InstanceType": { + "enum": [ + "a1.2xlarge", + "a1.4xlarge", + "a1.large", + "a1.medium", + "a1.metal", + "a1.xlarge", + "c1.medium", + "c1.xlarge", + "c3.2xlarge", + "c3.4xlarge", + "c3.8xlarge", + "c3.large", + "c3.xlarge", + "c4.2xlarge", + "c4.4xlarge", + "c4.8xlarge", + "c4.large", + "c4.xlarge", + "c5.12xlarge", + "c5.18xlarge", + "c5.24xlarge", + "c5.2xlarge", + "c5.4xlarge", + "c5.9xlarge", + "c5.large", + "c5.metal", + "c5.xlarge", + "c5a.12xlarge", + "c5a.16xlarge", + "c5a.24xlarge", + "c5a.2xlarge", + "c5a.4xlarge", + "c5a.8xlarge", + "c5a.large", + "c5a.xlarge", + "c5ad.12xlarge", + "c5ad.16xlarge", + "c5ad.24xlarge", + "c5ad.2xlarge", + "c5ad.4xlarge", + "c5ad.8xlarge", + "c5ad.large", + "c5ad.xlarge", + "c5d.12xlarge", + "c5d.18xlarge", + "c5d.24xlarge", + "c5d.2xlarge", + "c5d.4xlarge", + "c5d.9xlarge", + "c5d.large", + "c5d.metal", + "c5d.xlarge", + "c5n.18xlarge", + "c5n.2xlarge", + "c5n.4xlarge", + "c5n.9xlarge", + "c5n.large", + "c5n.metal", + "c5n.xlarge", + "c6a.12xlarge", + "c6a.16xlarge", + "c6a.24xlarge", + "c6a.2xlarge", + "c6a.32xlarge", + "c6a.48xlarge", + "c6a.4xlarge", + "c6a.8xlarge", + "c6a.large", + "c6a.metal", + "c6a.xlarge", + "c6g.12xlarge", + "c6g.16xlarge", + "c6g.2xlarge", + "c6g.4xlarge", + "c6g.8xlarge", + "c6g.large", + "c6g.medium", + "c6g.metal", + "c6g.xlarge", + "c6gd.12xlarge", + "c6gd.16xlarge", + "c6gd.2xlarge", + "c6gd.4xlarge", + "c6gd.8xlarge", + "c6gd.large", + "c6gd.medium", + "c6gd.metal", + "c6gd.xlarge", + "c6gn.12xlarge", + "c6gn.16xlarge", + "c6gn.2xlarge", + "c6gn.4xlarge", + "c6gn.8xlarge", + "c6gn.large", + "c6gn.medium", + "c6gn.xlarge", + "c6i.12xlarge", + "c6i.16xlarge", + "c6i.24xlarge", + "c6i.2xlarge", + "c6i.32xlarge", + "c6i.4xlarge", + "c6i.8xlarge", + "c6i.large", + "c6i.metal", + "c6i.xlarge", + "c6id.12xlarge", + "c6id.16xlarge", + "c6id.24xlarge", + "c6id.2xlarge", + "c6id.32xlarge", + "c6id.4xlarge", + "c6id.8xlarge", + "c6id.large", + "c6id.metal", + "c6id.xlarge", + "c6in.12xlarge", + "c6in.16xlarge", + "c6in.24xlarge", + "c6in.2xlarge", + "c6in.32xlarge", + "c6in.4xlarge", + "c6in.8xlarge", + "c6in.large", + "c6in.metal", + "c6in.xlarge", + "c7a.12xlarge", + "c7a.16xlarge", + "c7a.24xlarge", + "c7a.2xlarge", + "c7a.32xlarge", + "c7a.48xlarge", + "c7a.4xlarge", + "c7a.8xlarge", + "c7a.large", + "c7a.medium", + "c7a.metal-48xl", + "c7a.xlarge", + "c7g.12xlarge", + "c7g.16xlarge", + "c7g.2xlarge", + "c7g.4xlarge", + "c7g.8xlarge", + "c7g.large", + "c7g.medium", + "c7g.metal", + "c7g.xlarge", + "c7gd.12xlarge", + "c7gd.16xlarge", + "c7gd.2xlarge", + "c7gd.4xlarge", + "c7gd.8xlarge", + "c7gd.large", + "c7gd.medium", + "c7gd.metal", + "c7gd.xlarge", + "c7gn.12xlarge", + "c7gn.16xlarge", + "c7gn.2xlarge", + "c7gn.4xlarge", + "c7gn.8xlarge", + "c7gn.large", + "c7gn.medium", + "c7gn.metal", + "c7gn.xlarge", + "c7i-flex.2xlarge", + "c7i-flex.4xlarge", + "c7i-flex.8xlarge", + "c7i-flex.large", + "c7i-flex.xlarge", + "c7i.12xlarge", + "c7i.16xlarge", + "c7i.24xlarge", + "c7i.2xlarge", + "c7i.48xlarge", + "c7i.4xlarge", + "c7i.8xlarge", + "c7i.large", + "c7i.metal-24xl", + "c7i.metal-48xl", + "c7i.xlarge", + "cc1.4xlarge", + "cc2.8xlarge", + "cg1.4xlarge", + "cr1.8xlarge", + "d2.2xlarge", + "d2.4xlarge", + "d2.8xlarge", + "d2.xlarge", + "d3.2xlarge", + "d3.4xlarge", + "d3.8xlarge", + "d3.xlarge", + "d3en.12xlarge", + "d3en.2xlarge", + "d3en.4xlarge", + "d3en.6xlarge", + "d3en.8xlarge", + "d3en.xlarge", + "dl1.24xlarge", + "dl2q.24xlarge", + "f1.16xlarge", + "f1.2xlarge", + "f1.4xlarge", + "g2.2xlarge", + "g2.8xlarge", + "g3.16xlarge", + "g3.4xlarge", + "g3.8xlarge", + "g3s.xlarge", + "g4ad.16xlarge", + "g4ad.2xlarge", + "g4ad.4xlarge", + "g4ad.8xlarge", + "g4ad.xlarge", + "g4dn.12xlarge", + "g4dn.16xlarge", + "g4dn.2xlarge", + "g4dn.4xlarge", + "g4dn.8xlarge", + "g4dn.metal", + "g4dn.xlarge", + "g5.12xlarge", + "g5.16xlarge", + "g5.24xlarge", + "g5.2xlarge", + "g5.48xlarge", + "g5.4xlarge", + "g5.8xlarge", + "g5.xlarge", + "g5g.16xlarge", + "g5g.2xlarge", + "g5g.4xlarge", + "g5g.8xlarge", + "g5g.metal", + "g5g.xlarge", + "g6.12xlarge", + "g6.16xlarge", + "g6.24xlarge", + "g6.2xlarge", + "g6.48xlarge", + "g6.4xlarge", + "g6.8xlarge", + "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", + "gr6.4xlarge", + "gr6.8xlarge", + "h1.16xlarge", + "h1.2xlarge", + "h1.4xlarge", + "h1.8xlarge", + "hi1.4xlarge", + "hpc6a.48xlarge", + "hpc6id.32xlarge", + "hpc7a.12xlarge", + "hpc7a.24xlarge", + "hpc7a.48xlarge", + "hpc7a.96xlarge", + "hpc7g.16xlarge", + "hpc7g.4xlarge", + "hpc7g.8xlarge", + "hs1.8xlarge", + "i2.2xlarge", + "i2.4xlarge", + "i2.8xlarge", + "i2.xlarge", + "i3.16xlarge", + "i3.2xlarge", + "i3.4xlarge", + "i3.8xlarge", + "i3.large", + "i3.metal", + "i3.xlarge", + "i3en.12xlarge", + "i3en.24xlarge", + "i3en.2xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "i3en.large", + "i3en.metal", + "i3en.xlarge", + "i4g.16xlarge", + "i4g.2xlarge", + "i4g.4xlarge", + "i4g.8xlarge", + "i4g.large", + "i4g.xlarge", + "i4i.12xlarge", + "i4i.16xlarge", + "i4i.24xlarge", + "i4i.2xlarge", + "i4i.32xlarge", + "i4i.4xlarge", + "i4i.8xlarge", + "i4i.large", + "i4i.metal", + "i4i.xlarge", + "im4gn.16xlarge", + "im4gn.2xlarge", + "im4gn.4xlarge", + "im4gn.8xlarge", + "im4gn.large", + "im4gn.xlarge", + "inf1.24xlarge", + "inf1.2xlarge", + "inf1.6xlarge", + "inf1.xlarge", + "inf2.24xlarge", + "inf2.48xlarge", + "inf2.8xlarge", + "inf2.xlarge", + "is4gen.2xlarge", + "is4gen.4xlarge", + "is4gen.8xlarge", + "is4gen.large", + "is4gen.medium", + "is4gen.xlarge", + "m1.large", + "m1.medium", + "m1.small", + "m1.xlarge", + "m2.2xlarge", + "m2.4xlarge", + "m2.xlarge", + "m3.2xlarge", + "m3.large", + "m3.medium", + "m3.xlarge", + "m4.10xlarge", + "m4.16xlarge", + "m4.2xlarge", + "m4.4xlarge", + "m4.large", + "m4.xlarge", + "m5.12xlarge", + "m5.16xlarge", + "m5.24xlarge", + "m5.2xlarge", + "m5.4xlarge", + "m5.8xlarge", + "m5.large", + "m5.metal", + "m5.xlarge", + "m5a.12xlarge", + "m5a.16xlarge", + "m5a.24xlarge", + "m5a.2xlarge", + "m5a.4xlarge", + "m5a.8xlarge", + "m5a.large", + "m5a.xlarge", + "m5ad.12xlarge", + "m5ad.16xlarge", + "m5ad.24xlarge", + "m5ad.2xlarge", + "m5ad.4xlarge", + "m5ad.8xlarge", + "m5ad.large", + "m5ad.xlarge", + "m5d.12xlarge", + "m5d.16xlarge", + "m5d.24xlarge", + "m5d.2xlarge", + "m5d.4xlarge", + "m5d.8xlarge", + "m5d.large", + "m5d.metal", + "m5d.xlarge", + "m5dn.12xlarge", + "m5dn.16xlarge", + "m5dn.24xlarge", + "m5dn.2xlarge", + "m5dn.4xlarge", + "m5dn.8xlarge", + "m5dn.large", + "m5dn.metal", + "m5dn.xlarge", + "m5n.12xlarge", + "m5n.16xlarge", + "m5n.24xlarge", + "m5n.2xlarge", + "m5n.4xlarge", + "m5n.8xlarge", + "m5n.large", + "m5n.metal", + "m5n.xlarge", + "m5zn.12xlarge", + "m5zn.2xlarge", + "m5zn.3xlarge", + "m5zn.6xlarge", + "m5zn.large", + "m5zn.metal", + "m5zn.xlarge", + "m6a.12xlarge", + "m6a.16xlarge", + "m6a.24xlarge", + "m6a.2xlarge", + "m6a.32xlarge", + "m6a.48xlarge", + "m6a.4xlarge", + "m6a.8xlarge", + "m6a.large", + "m6a.metal", + "m6a.xlarge", + "m6g.12xlarge", + "m6g.16xlarge", + "m6g.2xlarge", + "m6g.4xlarge", + "m6g.8xlarge", + "m6g.large", + "m6g.medium", + "m6g.metal", + "m6g.xlarge", + "m6gd.12xlarge", + "m6gd.16xlarge", + "m6gd.2xlarge", + "m6gd.4xlarge", + "m6gd.8xlarge", + "m6gd.large", + "m6gd.medium", + "m6gd.metal", + "m6gd.xlarge", + "m6i.12xlarge", + "m6i.16xlarge", + "m6i.24xlarge", + "m6i.2xlarge", + "m6i.32xlarge", + "m6i.4xlarge", + "m6i.8xlarge", + "m6i.large", + "m6i.metal", + "m6i.xlarge", + "m6id.12xlarge", + "m6id.16xlarge", + "m6id.24xlarge", + "m6id.2xlarge", + "m6id.32xlarge", + "m6id.4xlarge", + "m6id.8xlarge", + "m6id.large", + "m6id.metal", + "m6id.xlarge", + "m6idn.12xlarge", + "m6idn.16xlarge", + "m6idn.24xlarge", + "m6idn.2xlarge", + "m6idn.32xlarge", + "m6idn.4xlarge", + "m6idn.8xlarge", + "m6idn.large", + "m6idn.metal", + "m6idn.xlarge", + "m6in.12xlarge", + "m6in.16xlarge", + "m6in.24xlarge", + "m6in.2xlarge", + "m6in.32xlarge", + "m6in.4xlarge", + "m6in.8xlarge", + "m6in.large", + "m6in.metal", + "m6in.xlarge", + "m7a.12xlarge", + "m7a.16xlarge", + "m7a.24xlarge", + "m7a.2xlarge", + "m7a.32xlarge", + "m7a.48xlarge", + "m7a.4xlarge", + "m7a.8xlarge", + "m7a.large", + "m7a.medium", + "m7a.metal-48xl", + "m7a.xlarge", + "m7g.12xlarge", + "m7g.16xlarge", + "m7g.2xlarge", + "m7g.4xlarge", + "m7g.8xlarge", + "m7g.large", + "m7g.medium", + "m7g.metal", + "m7g.xlarge", + "m7gd.12xlarge", + "m7gd.16xlarge", + "m7gd.2xlarge", + "m7gd.4xlarge", + "m7gd.8xlarge", + "m7gd.large", + "m7gd.medium", + "m7gd.metal", + "m7gd.xlarge", + "m7i-flex.2xlarge", + "m7i-flex.4xlarge", + "m7i-flex.8xlarge", + "m7i-flex.large", + "m7i-flex.xlarge", + "m7i.12xlarge", + "m7i.16xlarge", + "m7i.24xlarge", + "m7i.2xlarge", + "m7i.48xlarge", + "m7i.4xlarge", + "m7i.8xlarge", + "m7i.large", + "m7i.metal-24xl", + "m7i.metal-48xl", + "m7i.xlarge", + "mac1.metal", + "mac2-m1ultra.metal", + "mac2-m2.metal", + "mac2-m2pro.metal", + "mac2.metal", + "p2.16xlarge", + "p2.8xlarge", + "p2.xlarge", + "p3.16xlarge", + "p3.2xlarge", + "p3.8xlarge", + "p3dn.24xlarge", + "p4d.24xlarge", + "p4de.24xlarge", + "p5.48xlarge", + "r3.2xlarge", + "r3.4xlarge", + "r3.8xlarge", + "r3.large", + "r3.xlarge", + "r4.16xlarge", + "r4.2xlarge", + "r4.4xlarge", + "r4.8xlarge", + "r4.large", + "r4.xlarge", + "r5.12xlarge", + "r5.16xlarge", + "r5.24xlarge", + "r5.2xlarge", + "r5.4xlarge", + "r5.8xlarge", + "r5.large", + "r5.metal", + "r5.xlarge", + "r5a.12xlarge", + "r5a.16xlarge", + "r5a.24xlarge", + "r5a.2xlarge", + "r5a.4xlarge", + "r5a.8xlarge", + "r5a.large", + "r5a.xlarge", + "r5ad.12xlarge", + "r5ad.16xlarge", + "r5ad.24xlarge", + "r5ad.2xlarge", + "r5ad.4xlarge", + "r5ad.8xlarge", + "r5ad.large", + "r5ad.xlarge", + "r5b.12xlarge", + "r5b.16xlarge", + "r5b.24xlarge", + "r5b.2xlarge", + "r5b.4xlarge", + "r5b.8xlarge", + "r5b.large", + "r5b.metal", + "r5b.xlarge", + "r5d.12xlarge", + "r5d.16xlarge", + "r5d.24xlarge", + "r5d.2xlarge", + "r5d.4xlarge", + "r5d.8xlarge", + "r5d.large", + "r5d.metal", + "r5d.xlarge", + "r5dn.12xlarge", + "r5dn.16xlarge", + "r5dn.24xlarge", + "r5dn.2xlarge", + "r5dn.4xlarge", + "r5dn.8xlarge", + "r5dn.large", + "r5dn.metal", + "r5dn.xlarge", + "r5n.12xlarge", + "r5n.16xlarge", + "r5n.24xlarge", + "r5n.2xlarge", + "r5n.4xlarge", + "r5n.8xlarge", + "r5n.large", + "r5n.metal", + "r5n.xlarge", + "r6a.12xlarge", + "r6a.16xlarge", + "r6a.24xlarge", + "r6a.2xlarge", + "r6a.32xlarge", + "r6a.48xlarge", + "r6a.4xlarge", + "r6a.8xlarge", + "r6a.large", + "r6a.metal", + "r6a.xlarge", + "r6g.12xlarge", + "r6g.16xlarge", + "r6g.2xlarge", + "r6g.4xlarge", + "r6g.8xlarge", + "r6g.large", + "r6g.medium", + "r6g.metal", + "r6g.xlarge", + "r6gd.12xlarge", + "r6gd.16xlarge", + "r6gd.2xlarge", + "r6gd.4xlarge", + "r6gd.8xlarge", + "r6gd.large", + "r6gd.medium", + "r6gd.metal", + "r6gd.xlarge", + "r6i.12xlarge", + "r6i.16xlarge", + "r6i.24xlarge", + "r6i.2xlarge", + "r6i.32xlarge", + "r6i.4xlarge", + "r6i.8xlarge", + "r6i.large", + "r6i.metal", + "r6i.xlarge", + "r6id.12xlarge", + "r6id.16xlarge", + "r6id.24xlarge", + "r6id.2xlarge", + "r6id.32xlarge", + "r6id.4xlarge", + "r6id.8xlarge", + "r6id.large", + "r6id.metal", + "r6id.xlarge", + "r6idn.12xlarge", + "r6idn.16xlarge", + "r6idn.24xlarge", + "r6idn.2xlarge", + "r6idn.32xlarge", + "r6idn.4xlarge", + "r6idn.8xlarge", + "r6idn.large", + "r6idn.metal", + "r6idn.xlarge", + "r6in.12xlarge", + "r6in.16xlarge", + "r6in.24xlarge", + "r6in.2xlarge", + "r6in.32xlarge", + "r6in.4xlarge", + "r6in.8xlarge", + "r6in.large", + "r6in.metal", + "r6in.xlarge", + "r7a.12xlarge", + "r7a.16xlarge", + "r7a.24xlarge", + "r7a.2xlarge", + "r7a.32xlarge", + "r7a.48xlarge", + "r7a.4xlarge", + "r7a.8xlarge", + "r7a.large", + "r7a.medium", + "r7a.metal-48xl", + "r7a.xlarge", + "r7g.12xlarge", + "r7g.16xlarge", + "r7g.2xlarge", + "r7g.4xlarge", + "r7g.8xlarge", + "r7g.large", + "r7g.medium", + "r7g.metal", + "r7g.xlarge", + "r7gd.12xlarge", + "r7gd.16xlarge", + "r7gd.2xlarge", + "r7gd.4xlarge", + "r7gd.8xlarge", + "r7gd.large", + "r7gd.medium", + "r7gd.metal", + "r7gd.xlarge", + "r7i.12xlarge", + "r7i.16xlarge", + "r7i.24xlarge", + "r7i.2xlarge", + "r7i.48xlarge", + "r7i.4xlarge", + "r7i.8xlarge", + "r7i.large", + "r7i.metal-24xl", + "r7i.metal-48xl", + "r7i.xlarge", + "r7iz.12xlarge", + "r7iz.16xlarge", + "r7iz.2xlarge", + "r7iz.32xlarge", + "r7iz.4xlarge", + "r7iz.8xlarge", + "r7iz.large", + "r7iz.metal-16xl", + "r7iz.metal-32xl", + "r7iz.xlarge", + "r8g.12xlarge", + "r8g.16xlarge", + "r8g.24xlarge", + "r8g.2xlarge", + "r8g.48xlarge", + "r8g.4xlarge", + "r8g.8xlarge", + "r8g.large", + "r8g.medium", + "r8g.metal-24xl", + "r8g.metal-48xl", + "r8g.xlarge", + "t1.micro", + "t2.2xlarge", + "t2.large", + "t2.medium", + "t2.micro", + "t2.nano", + "t2.small", + "t2.xlarge", + "t3.2xlarge", + "t3.large", + "t3.medium", + "t3.micro", + "t3.nano", + "t3.small", + "t3.xlarge", + "t3a.2xlarge", + "t3a.large", + "t3a.medium", + "t3a.micro", + "t3a.nano", + "t3a.small", + "t3a.xlarge", + "t4g.2xlarge", + "t4g.large", + "t4g.medium", + "t4g.micro", + "t4g.nano", + "t4g.small", + "t4g.xlarge", + "trn1.2xlarge", + "trn1.32xlarge", + "trn1n.32xlarge", + "u-12tb1.112xlarge", + "u-12tb1.metal", + "u-18tb1.112xlarge", + "u-18tb1.metal", + "u-24tb1.112xlarge", + "u-24tb1.metal", + "u-3tb1.56xlarge", + "u-6tb1.112xlarge", + "u-6tb1.56xlarge", + "u-6tb1.metal", + "u-9tb1.112xlarge", + "u-9tb1.metal", + "u7i-12tb.224xlarge", + "u7ib-12tb.224xlarge", + "u7in-16tb.224xlarge", + "u7in-24tb.224xlarge", + "u7in-32tb.224xlarge", + "vt1.24xlarge", + "vt1.3xlarge", + "vt1.6xlarge", + "x1.16xlarge", + "x1.32xlarge", + "x1e.16xlarge", + "x1e.2xlarge", + "x1e.32xlarge", + "x1e.4xlarge", + "x1e.8xlarge", + "x1e.xlarge", + "x2gd.12xlarge", + "x2gd.16xlarge", + "x2gd.2xlarge", + "x2gd.4xlarge", + "x2gd.8xlarge", + "x2gd.large", + "x2gd.medium", + "x2gd.metal", + "x2gd.xlarge", + "x2idn.16xlarge", + "x2idn.24xlarge", + "x2idn.32xlarge", + "x2idn.metal", + "x2iedn.16xlarge", + "x2iedn.24xlarge", + "x2iedn.2xlarge", + "x2iedn.32xlarge", + "x2iedn.4xlarge", + "x2iedn.8xlarge", + "x2iedn.metal", + "x2iedn.xlarge", + "x2iezn.12xlarge", + "x2iezn.2xlarge", + "x2iezn.4xlarge", + "x2iezn.6xlarge", + "x2iezn.8xlarge", + "x2iezn.metal", + "z1d.12xlarge", + "z1d.2xlarge", + "z1d.3xlarge", + "z1d.6xlarge", + "z1d.large", + "z1d.metal", + "z1d.xlarge" + ], "type": "string" }, "Ipv6AddressCount": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volume.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volume.json index 11935248ba..60a5519884 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volume.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volume.json @@ -63,6 +63,15 @@ "type": "integer" }, "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-instanceprofile.json index b3c40cd7cd..2c6ad3a83d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-instanceprofile.json @@ -12,9 +12,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-appstream-imagebuilder.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-appstream-imagebuilder.json index 811d64e164..91b4176ccb 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-appstream-imagebuilder.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-appstream-imagebuilder.json @@ -95,12 +95,14 @@ "type": "boolean" }, "IamRoleArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "Id": { "type": "string" }, "ImageArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "ImageName": { @@ -110,6 +112,7 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "StreamingUrl": { diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json index dfd1b1a11e..7cc97d6dc6 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json @@ -82,6 +82,31 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScheduledActions": { @@ -92,6 +117,23 @@ "uniqueItems": true }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "SuspendedState": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json index 78487c1780..e04d931f21 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json @@ -263,6 +263,7 @@ "type": "string" }, "PolicyName": { + "pattern": "\\p{Print}+", "type": "string" }, "PolicyType": { @@ -276,12 +277,54 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScalingTargetId": { "type": "string" }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "StepScalingPolicyConfiguration": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json index dcade48812..cfe7bde60d 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json @@ -25,6 +25,7 @@ "type": "string" }, "LifecycleHookName": { + "pattern": "[A-Za-z0-9\\-_\\/]+", "type": "string" }, "LifecycleTransition": { @@ -35,6 +36,7 @@ "type": "string" }, "NotificationMetadata": { + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007e]+", "type": "string" }, "NotificationTargetARN": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json index 11935248ba..60a5519884 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json @@ -63,6 +63,15 @@ "type": "integer" }, "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json index 09c051399f..10b7901aa4 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json @@ -78,24 +78,35 @@ "type": "string" }, "ExecutionClass": { + "enum": [ + "FLEX", + "STANDARD" + ], "type": "string" }, "ExecutionProperty": { "$ref": "#/definitions/ExecutionProperty" }, "GlueVersion": { + "pattern": "^\\w+\\.\\w+$", "type": "string" }, "Id": { "type": "string" }, "JobMode": { + "enum": [ + "NOTEBOOK", + "SCRIPT", + "VISUAL" + ], "type": "string" }, "LogUri": { "type": "string" }, "MaintenanceWindow": { + "pattern": "^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$", "type": "string" }, "MaxCapacity": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json index 8d562e5847..1912851810 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json @@ -32,6 +32,7 @@ "type": "string" }, "GroupName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json index 5114eef31f..a71c9d32a8 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json @@ -15,9 +15,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json index d1346edfc4..7dfd7bcf97 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json @@ -48,6 +48,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json index 3ac680bbb5..cbb80d143e 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json @@ -33,6 +33,7 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json index a9f3d23252..37134a2ff0 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json @@ -49,9 +49,11 @@ }, "AssumeRolePolicyDocument": { "maxLength": 2048, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": "object" }, "Description": { + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*", "type": "string" }, "ManagedPolicyArns": { @@ -89,6 +91,7 @@ "RoleName": { "maxLength": 64, "minLength": 1, + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Tags": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json index e99187b0fb..055c5a58ee 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json @@ -108,6 +108,7 @@ "uniqueItems": false }, "UserName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json index 1e0debb9c5..817976a546 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json @@ -332,6 +332,7 @@ "FunctionName": { "maxLength": 64, "minLength": 1, + "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)", "type": "string" }, "Handler": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json index 9afcb2e658..cc38cb577b 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json @@ -410,6 +410,10 @@ "type": "boolean" }, "ReplicaMode": { + "enum": [ + "mounted", + "open-read-only" + ], "type": "string" }, "RestoreTime": { diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json index e92dfd4312..68f42ea09d 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json @@ -43,33 +43,42 @@ "type": "object" }, "NotificationSenderEmail": { + "pattern": "[^@]+@[^@]+", "type": "string" }, "PortalArn": { "type": "string" }, "PortalAuthMode": { + "enum": [ + "IAM", + "SSO" + ], "type": "string" }, "PortalClientId": { "type": "string" }, "PortalContactEmail": { + "pattern": "[^@]+@[^@]+", "type": "string" }, "PortalDescription": { + "pattern": "[^\\u0000-\\u001F\\u007F]+", "type": "string" }, "PortalId": { "type": "string" }, "PortalName": { + "pattern": "[^\\u0000-\\u001F\\u007F]+", "type": "string" }, "PortalStartUrl": { "type": "string" }, "RoleArn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" }, "Tags": { diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json index 33d5d5e7b8..39efc725c3 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json @@ -209,6 +209,7 @@ "type": "boolean" }, "ExecutionRoleArn": { + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", "type": "string" }, "FailureRetentionPeriod": { diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-appstream-imagebuilder.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-appstream-imagebuilder.json index 811d64e164..91b4176ccb 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-appstream-imagebuilder.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-appstream-imagebuilder.json @@ -95,12 +95,14 @@ "type": "boolean" }, "IamRoleArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "Id": { "type": "string" }, "ImageArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "ImageName": { @@ -110,6 +112,7 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "StreamingUrl": { diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-instanceprofile.json index b3c40cd7cd..2c6ad3a83d 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-instanceprofile.json @@ -12,9 +12,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json index 33d5d5e7b8..39efc725c3 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json @@ -209,6 +209,7 @@ "type": "boolean" }, "ExecutionRoleArn": { + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", "type": "string" }, "FailureRetentionPeriod": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json index fd8e70b50e..de0359dd68 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json @@ -134,6 +134,7 @@ "Name": { "maxLength": 128, "minLength": 2, + "pattern": "[A-Za-z0-9][A-Za-z0-9\\-_]{1,127}", "type": "string" }, "OverflowBehavior": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-launchtemplate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-launchtemplate.json index 42c2fcb97a..695f0cffe8 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-launchtemplate.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-launchtemplate.json @@ -1012,6 +1012,7 @@ "type": "string" }, "LaunchTemplateName": { + "pattern": "[a-zA-Z0-9\\(\\)\\.\\-/_]+", "type": "string" }, "TagSpecifications": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json index 825d3a7339..9792b3c19a 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json @@ -88,6 +88,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -107,12 +116,14 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { "$ref": "#/definitions/Settings" }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json index 09c051399f..10b7901aa4 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json @@ -78,24 +78,35 @@ "type": "string" }, "ExecutionClass": { + "enum": [ + "FLEX", + "STANDARD" + ], "type": "string" }, "ExecutionProperty": { "$ref": "#/definitions/ExecutionProperty" }, "GlueVersion": { + "pattern": "^\\w+\\.\\w+$", "type": "string" }, "Id": { "type": "string" }, "JobMode": { + "enum": [ + "NOTEBOOK", + "SCRIPT", + "VISUAL" + ], "type": "string" }, "LogUri": { "type": "string" }, "MaintenanceWindow": { + "pattern": "^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$", "type": "string" }, "MaxCapacity": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json index 9afcb2e658..cc38cb577b 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json @@ -410,6 +410,10 @@ "type": "boolean" }, "ReplicaMode": { + "enum": [ + "mounted", + "open-read-only" + ], "type": "string" }, "RestoreTime": { diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53resolver-resolverrule.json index fbbc890ba6..ef1d6fa965 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53resolver-resolverrule.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53resolver-resolverrule.json @@ -67,6 +67,7 @@ "Name": { "maxLength": 64, "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", "type": "string" }, "ResolverEndpointId": { diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json index 09c051399f..10b7901aa4 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json @@ -78,24 +78,35 @@ "type": "string" }, "ExecutionClass": { + "enum": [ + "FLEX", + "STANDARD" + ], "type": "string" }, "ExecutionProperty": { "$ref": "#/definitions/ExecutionProperty" }, "GlueVersion": { + "pattern": "^\\w+\\.\\w+$", "type": "string" }, "Id": { "type": "string" }, "JobMode": { + "enum": [ + "NOTEBOOK", + "SCRIPT", + "VISUAL" + ], "type": "string" }, "LogUri": { "type": "string" }, "MaintenanceWindow": { + "pattern": "^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$", "type": "string" }, "MaxCapacity": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json index 5114eef31f..a71c9d32a8 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json @@ -15,9 +15,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json index 5cc12fe4b3..b385b468dc 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json @@ -48,7 +48,15 @@ "type": "string" }, "IdentityProviderType": { - "$ref": "#/definitions/IdentityProviderType" + "$ref": "#/definitions/IdentityProviderType", + "enum": [ + "Facebook", + "Google", + "LoginWithAmazon", + "OIDC", + "SAML", + "SignInWithApple" + ] }, "PortalArn": { "maxLength": 2048, diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json index b27367123f..4d3494b4b2 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json @@ -121,7 +121,11 @@ "$ref": "#/definitions/CookieSynchronizationConfiguration" }, "CopyAllowed": { - "$ref": "#/definitions/EnabledType" + "$ref": "#/definitions/EnabledType", + "enum": [ + "Disabled", + "Enabled" + ] }, "CustomerManagedKey": { "maxLength": 2048, @@ -130,7 +134,11 @@ "type": "string" }, "DeepLinkAllowed": { - "$ref": "#/definitions/EnabledType" + "$ref": "#/definitions/EnabledType", + "enum": [ + "Disabled", + "Enabled" + ] }, "DisconnectTimeoutInMinutes": { "default": null, @@ -139,7 +147,11 @@ "type": "number" }, "DownloadAllowed": { - "$ref": "#/definitions/EnabledType" + "$ref": "#/definitions/EnabledType", + "enum": [ + "Disabled", + "Enabled" + ] }, "IdleDisconnectTimeoutInMinutes": { "default": null, @@ -148,10 +160,18 @@ "type": "number" }, "PasteAllowed": { - "$ref": "#/definitions/EnabledType" + "$ref": "#/definitions/EnabledType", + "enum": [ + "Disabled", + "Enabled" + ] }, "PrintAllowed": { - "$ref": "#/definitions/EnabledType" + "$ref": "#/definitions/EnabledType", + "enum": [ + "Disabled", + "Enabled" + ] }, "Tags": { "insertionOrder": false, @@ -163,7 +183,11 @@ "type": "array" }, "UploadAllowed": { - "$ref": "#/definitions/EnabledType" + "$ref": "#/definitions/EnabledType", + "enum": [ + "Disabled", + "Enabled" + ] }, "UserSettingsArn": { "maxLength": 2048, diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-appstream-imagebuilder.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-appstream-imagebuilder.json index 811d64e164..91b4176ccb 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-appstream-imagebuilder.json +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-appstream-imagebuilder.json @@ -95,12 +95,14 @@ "type": "boolean" }, "IamRoleArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "Id": { "type": "string" }, "ImageArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "ImageName": { @@ -110,6 +112,7 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "StreamingUrl": { diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-connection.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-connection.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-amazonmq-configuration.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-amazonmq-configuration.json index 81cc7369f7..66bb58afb3 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-amazonmq-configuration.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-amazonmq-configuration.json @@ -32,6 +32,10 @@ "type": "string" }, "AuthenticationStrategy": { + "enum": [ + "LDAP", + "SIMPLE" + ], "type": "string" }, "Data": { @@ -41,6 +45,10 @@ "type": "string" }, "EngineType": { + "enum": [ + "ACTIVEMQ", + "RABBITMQ" + ], "type": "string" }, "EngineVersion": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-applicationautoscaling-scalabletarget.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-applicationautoscaling-scalabletarget.json index dfd1b1a11e..7cc97d6dc6 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-applicationautoscaling-scalabletarget.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-applicationautoscaling-scalabletarget.json @@ -82,6 +82,31 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScheduledActions": { @@ -92,6 +117,23 @@ "uniqueItems": true }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "SuspendedState": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-autoscaling-lifecyclehook.json index dcade48812..cfe7bde60d 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-autoscaling-lifecyclehook.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-autoscaling-lifecyclehook.json @@ -25,6 +25,7 @@ "type": "string" }, "LifecycleHookName": { + "pattern": "[A-Za-z0-9\\-_\\/]+", "type": "string" }, "LifecycleTransition": { @@ -35,6 +36,7 @@ "type": "string" }, "NotificationMetadata": { + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007e]+", "type": "string" }, "NotificationTargetARN": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-volume.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-volume.json index 11935248ba..60a5519884 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-volume.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-volume.json @@ -63,6 +63,15 @@ "type": "integer" }, "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-instanceprofile.json index 5114eef31f..a71c9d32a8 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-instanceprofile.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-instanceprofile.json @@ -15,9 +15,11 @@ "type": "string" }, "InstanceProfileName": { + "pattern": "[\\w+=,.@-]+", "type": "string" }, "Path": { + "pattern": "(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F)", "type": "string" }, "Roles": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-policy.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-policy.json index 3ac680bbb5..cbb80d143e 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-policy.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-iam-policy.json @@ -33,6 +33,7 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-certificate.json index 28534637cc..dd5e29c8ea 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-certificate.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-certificate.json @@ -11,6 +11,7 @@ "type": "string" }, "CertificateSigningRequest": { + "pattern": "[\\s\\S]*", "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-policy.json index a329acfc74..ebabbd9f3d 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-policy.json @@ -16,12 +16,14 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" ] }, "PolicyName": { + "pattern": "[\\w+=,.@-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-topicrule.json index 2d202ebc9c..d2ced3f6b6 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-iot-topicrule.json @@ -600,6 +600,7 @@ "type": "string" }, "RuleName": { + "pattern": "^[a-zA-Z0-9_]+$", "type": "string" }, "TopicRulePayload": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-function.json index 1e0debb9c5..817976a546 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-function.json @@ -332,6 +332,7 @@ "FunctionName": { "maxLength": 64, "minLength": 1, + "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)", "type": "string" }, "Handler": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-route53resolver-resolverrule.json index fbbc890ba6..ef1d6fa965 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-route53resolver-resolverrule.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-route53resolver-resolverrule.json @@ -67,6 +67,7 @@ "Name": { "maxLength": 64, "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", "type": "string" }, "ResolverEndpointId": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json index 19c17f4d7e..3e3c3f3597 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json index 71dc619f5c..c08ad7d3cf 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json @@ -19,6 +19,10 @@ "type": "string" }, "HostRecovery": { + "enum": [ + "off", + "on" + ], "type": "string" }, "Id": { diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-codepipeline-customactiontype.json index 89235a97cf..3b51d25fe6 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-codepipeline-customactiontype.json +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-codepipeline-customactiontype.json @@ -104,6 +104,15 @@ ], "properties": { "Category": { + "enum": [ + "Approval", + "Build", + "Compute", + "Deploy", + "Invoke", + "Source", + "Test" + ], "type": "string" }, "ConfigurationProperties": { @@ -123,6 +132,7 @@ "$ref": "#/definitions/ArtifactDetails" }, "Provider": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" }, "Settings": { @@ -136,6 +146,7 @@ "uniqueItems": false }, "Version": { + "pattern": "[0-9A-Za-z_-]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-gamelift-fleet.json index f603fbeac1..54680c6bba 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-gamelift-fleet.json @@ -178,9 +178,11 @@ "type": "string" }, "ServerLaunchParameters": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+", "type": "string" }, "ServerLaunchPath": { + "pattern": "[A-Za-z0-9_:.+\\/\\\\\\- ]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-managedpolicy.json index e138e5c7fe..41620915f0 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-managedpolicy.json @@ -47,6 +47,7 @@ }, "PolicyDocument": { "maxLength": 6144, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json index e7c91ccc8d..4babd64287 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json @@ -120,28 +120,46 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName" + "$ref": "#/definitions/ImageName", + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType" + "$ref": "#/definitions/JobType", + "enum": [ + "INFERENCE", + "NOTEBOOK_KERNEL", + "TRAINING" + ] }, "MLFramework": { - "$ref": "#/definitions/MLFramework" + "$ref": "#/definitions/MLFramework", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "Processor": { - "$ref": "#/definitions/Processor" + "$ref": "#/definitions/Processor", + "enum": [ + "CPU", + "GPU" + ] }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang" + "$ref": "#/definitions/ProgrammingLang", + "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance" + "$ref": "#/definitions/VendorGuidance", + "enum": [ + "ARCHIVED", + "NOT_PROVIDED", + "STABLE", + "TO_BE_ARCHIVED" + ] }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-apidestination.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-apidestination.json index 2dad3ac2e5..84f7d5fd6e 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-apidestination.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-apidestination.json @@ -11,6 +11,7 @@ "type": "string" }, "ConnectionArn": { + "pattern": "^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$", "type": "string" }, "Description": { @@ -30,6 +31,7 @@ "type": "string" }, "InvocationEndpoint": { + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "InvocationRateLimitPerSecond": { @@ -39,6 +41,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-connection.json index 0ee80bb23e..c49843c440 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-events-connection.json @@ -189,6 +189,7 @@ "Name": { "maxLength": 64, "minLength": 1, + "pattern": "[\\.\\-_A-Za-z0-9]+", "type": "string" }, "SecretArn": { diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectattachment.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectattachment.json index 66a3b9d10e..bce9f6a99a 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectattachment.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectattachment.json @@ -69,12 +69,14 @@ "type": "string" }, "CoreNetworkId": { + "pattern": "^core-network-([0-9a-f]{8,17})$", "type": "string" }, "CreatedAt": { "type": "string" }, "EdgeLocation": { + "pattern": "[\\s\\S]*", "type": "string" }, "Options": { @@ -103,6 +105,7 @@ "type": "array" }, "TransportAttachmentId": { + "pattern": "^attachment-([0-9a-f]{8,17})$", "type": "string" }, "UpdatedAt": { diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectpeer.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectpeer.json index fc49aa0ed4..4546a14b9a 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectpeer.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-connectpeer.json @@ -95,12 +95,14 @@ "$ref": "#/definitions/ConnectPeerConfiguration" }, "ConnectAttachmentId": { + "pattern": "^attachment-([0-9a-f]{8,17})$", "type": "string" }, "ConnectPeerId": { "type": "string" }, "CoreNetworkAddress": { + "pattern": "[\\s\\S]*", "type": "string" }, "CoreNetworkId": { @@ -120,6 +122,7 @@ "type": "array" }, "PeerAddress": { + "pattern": "[\\s\\S]*", "type": "string" }, "State": { diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-corenetwork.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-corenetwork.json index b9c0a86526..3ff2dd3ebb 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-corenetwork.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-corenetwork.json @@ -82,6 +82,7 @@ "type": "string" }, "Description": { + "pattern": "[\\s\\S]*", "type": "string" }, "Edges": { @@ -92,6 +93,7 @@ "type": "array" }, "GlobalNetworkId": { + "pattern": "[\\s\\S]*", "type": "string" }, "OwnerAccount": { @@ -99,6 +101,7 @@ }, "PolicyDocument": { "format": "json", + "pattern": "[\\s\\S]*", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-sitetositevpnattachment.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-sitetositevpnattachment.json index 481075f189..63e01be56c 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-sitetositevpnattachment.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-sitetositevpnattachment.json @@ -64,6 +64,7 @@ "type": "string" }, "CoreNetworkId": { + "pattern": "^core-network-([0-9a-f]{8,17})$", "type": "string" }, "CreatedAt": { @@ -98,6 +99,7 @@ "type": "string" }, "VpnConnectionArn": { + "pattern": "^arn:[^:]{1,63}:ec2:[^:]{0,63}:[^:]{0,63}:vpn-connection\\/vpn-[0-9a-f]{8,17}$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-vpcattachment.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-vpcattachment.json index 46a8636b20..f515aa8105 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-vpcattachment.json +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-networkmanager-vpcattachment.json @@ -69,6 +69,7 @@ "type": "string" }, "CoreNetworkId": { + "pattern": "^core-network-([0-9a-f]{8,17})$", "type": "string" }, "CreatedAt": { @@ -113,6 +114,7 @@ "type": "string" }, "VpcArn": { + "pattern": "^arn:[^:]{1,63}:ec2:[^:]{0,63}:[^:]{0,63}:vpc\\/vpc-[0-9a-f]{8,17}$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json index 6248da0d57..6b6d89571b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json @@ -111,6 +111,7 @@ "AnalyzerName": { "maxLength": 1024, "minLength": 1, + "pattern": "[A-Za-z][A-Za-z0-9_.-]*", "type": "string" }, "ArchiveRules": { @@ -135,6 +136,12 @@ "uniqueItems": true }, "Type": { + "enum": [ + "ACCOUNT", + "ACCOUNT_UNUSED_ACCESS", + "ORGANIZATION", + "ORGANIZATION_UNUSED_ACCESS" + ], "maxLength": 1024, "minLength": 0, "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-certificateauthority.json index 33e041c8fc..e3dbc21bc5 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-certificateauthority.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-certificateauthority.json @@ -352,6 +352,11 @@ "type": "string" }, "KeyStorageSecurityStandard": { + "enum": [ + "CCPC_LEVEL_1_OR_HIGHER", + "FIPS_140_2_LEVEL_2_OR_HIGHER", + "FIPS_140_2_LEVEL_3_OR_HIGHER" + ], "type": "string" }, "RevocationConfiguration": { @@ -373,6 +378,10 @@ "type": "string" }, "UsageMode": { + "enum": [ + "GENERAL_PURPOSE", + "SHORT_LIVED_CERTIFICATE" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-permission.json index fa184f9abb..a2202ce608 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-permission.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-acmpca-permission.json @@ -19,12 +19,15 @@ "type": "array" }, "CertificateAuthorityArn": { + "pattern": "arn:[\\w+=/,.@-]+:acm-pca:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*", "type": "string" }, "Principal": { + "pattern": "[^*]+", "type": "string" }, "SourceAccount": { + "pattern": "[0-9]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-broker.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-broker.json index cdaa37c569..bc33a8d284 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-broker.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-broker.json @@ -187,6 +187,10 @@ "type": "string" }, "AuthenticationStrategy": { + "enum": [ + "LDAP", + "SIMPLE" + ], "type": "string" }, "AutoMinorVersionUpgrade": { @@ -205,6 +209,10 @@ "type": "integer" }, "DataReplicationMode": { + "enum": [ + "CRDR", + "NONE" + ], "type": "string" }, "DataReplicationPrimaryBrokerArn": { @@ -287,6 +295,10 @@ "uniqueItems": false }, "StorageType": { + "enum": [ + "EBS", + "EFS" + ], "type": "string" }, "SubnetIds": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-configuration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-configuration.json index 37e9f26873..4fe77ce0f7 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-configuration.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-amazonmq-configuration.json @@ -32,6 +32,10 @@ "type": "string" }, "AuthenticationStrategy": { + "enum": [ + "LDAP", + "SIMPLE" + ], "type": "string" }, "Data": { @@ -41,6 +45,10 @@ "type": "string" }, "EngineType": { + "enum": [ + "ACTIVEMQ", + "RABBITMQ" + ], "type": "string" }, "EngineVersion": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-amplify-app.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-amplify-app.json index 5846c5f463..f1811081c1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-amplify-app.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-amplify-app.json @@ -179,6 +179,7 @@ "AccessToken": { "maxLength": 255, "minLength": 1, + "pattern": "(?s).+", "type": "string" }, "AppId": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appconfig-extension.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appconfig-extension.json index f0c712e86e..971b17f93b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appconfig-extension.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appconfig-extension.json @@ -112,6 +112,7 @@ "type": "integer" }, "Name": { + "pattern": "^[^\\/#:\\n]{1,64}$", "type": "string" }, "Parameters": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json index 1d4e254a36..13532c5d7c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json @@ -1086,7 +1086,33 @@ "type": "string" }, "ConnectorType": { - "$ref": "#/definitions/ConnectorType" + "$ref": "#/definitions/ConnectorType", + "enum": [ + "Amplitude", + "CustomConnector", + "CustomerProfiles", + "Datadog", + "Dynatrace", + "EventBridge", + "Googleanalytics", + "Honeycode", + "Infornexus", + "LookoutMetrics", + "Marketo", + "Pardot", + "Redshift", + "S3", + "SAPOData", + "Salesforce", + "Servicenow", + "Singular", + "Slack", + "Snowflake", + "Trendmicro", + "Upsolver", + "Veeva", + "Zendesk" + ] }, "CredentialsArn": { "maxLength": 512, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalabletarget.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalabletarget.json index c7b02e1758..0c22e634a8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalabletarget.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalabletarget.json @@ -98,6 +98,31 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScheduledActions": { @@ -109,6 +134,23 @@ "uniqueItems": true }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "SuspendedState": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json index 004e281e32..e35e4457a6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json @@ -257,6 +257,7 @@ "type": "string" }, "PolicyName": { + "pattern": "\\p{Print}+", "type": "string" }, "PolicyType": { @@ -270,12 +271,54 @@ "type": "string" }, "ScalableDimension": { + "enum": [ + "appstream:fleet:DesiredCapacity", + "cassandra:table:ReadCapacityUnits", + "cassandra:table:WriteCapacityUnits", + "comprehend:document-classifier-endpoint:DesiredInferenceUnits", + "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", + "custom-resource:ResourceType:Property", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "ec2:spot-fleet-request:TargetCapacity", + "ecs:service:DesiredCount", + "elasticache:replication-group:NodeGroups", + "elasticache:replication-group:Replicas", + "elasticmapreduce:instancegroup:InstanceCount", + "kafka:broker-storage:VolumeSize", + "lambda:function:ProvisionedConcurrency", + "neptune:cluster:ReadReplicaCount", + "rds:cluster:ReadReplicaCount", + "sagemaker:inference-component:DesiredCopyCount", + "sagemaker:variant:DesiredInstanceCount", + "sagemaker:variant:DesiredProvisionedConcurrency", + "workspaces:workspacespool:DesiredUserSessions" + ], "type": "string" }, "ScalingTargetId": { "type": "string" }, "ServiceNamespace": { + "enum": [ + "appstream", + "cassandra", + "comprehend", + "custom-resource", + "dynamodb", + "ec2", + "ecs", + "elasticache", + "elasticmapreduce", + "kafka", + "lambda", + "neptune", + "rds", + "sagemaker", + "workspaces" + ], "type": "string" }, "StepScalingPolicyConfiguration": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json index 8c3f50a158..9e49a00edb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json @@ -112,10 +112,15 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "PackagingType": { - "$ref": "#/definitions/PackagingType" + "$ref": "#/definitions/PackagingType", + "enum": [ + "APPSTREAM2", + "CUSTOM" + ] }, "PostSetupScriptDetails": { "$ref": "#/definitions/ScriptDetails" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json index baa961821b..a87495b2de 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json @@ -103,16 +103,21 @@ "type": "boolean" }, "IamRoleArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "InstanceType": { "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "Platform": { - "$ref": "#/definitions/PlatformType" + "$ref": "#/definitions/PlatformType", + "enum": [ + "WINDOWS_SERVER_2019" + ] }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json index c6aba2ebeb..eb0e46a30c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json @@ -77,7 +77,8 @@ ], "properties": { "AppBlockArn": { - "$ref": "#/definitions/Arn" + "$ref": "#/definitions/Arn", + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" }, "Arn": { "$ref": "#/definitions/Arn" @@ -117,6 +118,7 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "Platforms": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-entitlement.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-entitlement.json index b2a09d0987..cb8d117429 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-entitlement.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-entitlement.json @@ -28,6 +28,10 @@ ], "properties": { "AppVisibility": { + "enum": [ + "ALL", + "ASSOCIATED" + ], "type": "string" }, "Attributes": { @@ -48,9 +52,11 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "StackName": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-imagebuilder.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-imagebuilder.json index f3c920c064..af2c6d96c2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-imagebuilder.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-imagebuilder.json @@ -95,9 +95,11 @@ "type": "boolean" }, "IamRoleArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "ImageArn": { + "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$", "type": "string" }, "ImageName": { @@ -107,6 +109,7 @@ "type": "string" }, "Name": { + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$", "type": "string" }, "StreamingUrl": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-domainname.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-domainname.json index 7dfba14516..bfa7af151c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-domainname.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-domainname.json @@ -20,6 +20,7 @@ "Description": { "maxLength": 255, "minLength": 0, + "pattern": "^.*$", "type": "string" }, "DomainName": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-functionconfiguration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-functionconfiguration.json index 2940ff1199..31766b0a77 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-functionconfiguration.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-functionconfiguration.json @@ -62,6 +62,7 @@ "type": "string" }, "DataSourceName": { + "pattern": "[_A-Za-z][_0-9A-Za-z]*", "type": "string" }, "Description": { @@ -80,15 +81,18 @@ "type": "integer" }, "Name": { + "pattern": "[_A-Za-z][_0-9A-Za-z]*", "type": "string" }, "RequestMappingTemplate": { + "pattern": "^.*$", "type": "string" }, "RequestMappingTemplateS3Location": { "type": "string" }, "ResponseMappingTemplate": { + "pattern": "^.*$", "type": "string" }, "ResponseMappingTemplateS3Location": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-resolver.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-resolver.json index 4ae385dc22..144958cfd2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-resolver.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-resolver.json @@ -101,9 +101,11 @@ "type": "string" }, "DataSourceName": { + "pattern": "[_A-Za-z][_0-9A-Za-z]*", "type": "string" }, "FieldName": { + "pattern": "[_A-Za-z][_0-9A-Za-z]*", "type": "string" }, "Kind": { @@ -127,6 +129,7 @@ "$ref": "#/definitions/PipelineConfig" }, "RequestMappingTemplate": { + "pattern": "^.*$", "type": "string" }, "RequestMappingTemplateS3Location": { @@ -136,6 +139,7 @@ "type": "string" }, "ResponseMappingTemplate": { + "pattern": "^.*$", "type": "string" }, "ResponseMappingTemplateS3Location": { @@ -148,6 +152,7 @@ "$ref": "#/definitions/SyncConfig" }, "TypeName": { + "pattern": "[_A-Za-z][_0-9A-Za-z]*", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-namedquery.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-namedquery.json index 535dd4c799..dcf636f533 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-namedquery.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-namedquery.json @@ -37,6 +37,7 @@ "WorkGroup": { "maxLength": 128, "minLength": 1, + "pattern": "[a-zA-Z0-9._-]{1,128}", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-preparedstatement.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-preparedstatement.json index 3cd425b5ba..df74327ddd 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-preparedstatement.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-athena-preparedstatement.json @@ -22,11 +22,13 @@ "StatementName": { "maxLength": 256, "minLength": 1, + "pattern": "[a-zA-Z_][a-zA-Z0-9_@:]{1,256}", "type": "string" }, "WorkGroup": { "maxLength": 128, "minLength": 1, + "pattern": "[a-zA-Z0-9._-]{1,128}", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json index 9b7ecb9d39..5e2a4c2b2d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json @@ -262,13 +262,16 @@ "type": "array" }, "Description": { - "$ref": "#/definitions/AssessmentDescription" + "$ref": "#/definitions/AssessmentDescription", + "pattern": "^[\\w\\W\\s\\S]*$" }, "FrameworkId": { - "$ref": "#/definitions/FrameworkId" + "$ref": "#/definitions/FrameworkId", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" }, "Name": { - "$ref": "#/definitions/AssessmentName" + "$ref": "#/definitions/AssessmentName", + "pattern": "^[^\\\\]*$" }, "Roles": { "items": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-lifecyclehook.json index 4bfbb6f5aa..bfcd60e387 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-lifecyclehook.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-lifecyclehook.json @@ -26,6 +26,7 @@ "LifecycleHookName": { "maxLength": 255, "minLength": 1, + "pattern": "[A-Za-z0-9\\-_\\/]+", "type": "string" }, "LifecycleTransition": { @@ -38,6 +39,7 @@ "NotificationMetadata": { "maxLength": 1023, "minLength": 1, + "pattern": "[\\u0009\\u000A\\u000D\\u0020-\\u007e]+", "type": "string" }, "NotificationTargetARN": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-warmpool.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-warmpool.json index 89474a5117..950a140630 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-warmpool.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-warmpool.json @@ -31,6 +31,11 @@ "type": "integer" }, "PoolState": { + "enum": [ + "Hibernated", + "Running", + "Stopped" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json index ed16dd64e4..8a898212eb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json @@ -267,7 +267,10 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/CapabilityType" + "$ref": "#/definitions/CapabilityType", + "enum": [ + "edi" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json index 2eef77b233..f2e6fe55c9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json @@ -57,7 +57,11 @@ "type": "string" }, "Logging": { - "$ref": "#/definitions/Logging" + "$ref": "#/definitions/Logging", + "enum": [ + "DISABLED", + "ENABLED" + ] }, "ModifiedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json index 56eadc839d..ce0eba7cba 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json @@ -293,7 +293,12 @@ "$ref": "#/definitions/EdiType" }, "FileFormat": { - "$ref": "#/definitions/FileFormat" + "$ref": "#/definitions/FileFormat", + "enum": [ + "JSON", + "NOT_USED", + "XML" + ] }, "InputConversion": { "$ref": "#/definitions/InputConversion" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json index 68810ab941..dd7a93a281 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json @@ -63,7 +63,8 @@ "type": "string" }, "BackupVaultName": { - "$ref": "#/definitions/BackupVaultNamePattern" + "$ref": "#/definitions/BackupVaultNamePattern", + "pattern": "^[a-zA-Z0-9\\-\\_]{2,50}$" }, "BackupVaultTags": { "additionalProperties": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-framework.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-framework.json index ecdbb28422..96b4fbc9b3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-framework.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-framework.json @@ -108,6 +108,7 @@ "FrameworkDescription": { "maxLength": 1024, "minLength": 0, + "pattern": ".*\\S.*", "type": "string" }, "FrameworkName": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-computeenvironment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-computeenvironment.json index 33e1a3aea2..69abdd1e01 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-computeenvironment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-computeenvironment.json @@ -228,6 +228,10 @@ "type": "object" }, "Type": { + "enum": [ + "MANAGED", + "UNMANAGED" + ], "type": "string" }, "UnmanagedvCpus": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-budgets-budgetsaction.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-budgets-budgetsaction.json index 9226b08ca3..885a500947 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-budgets-budgetsaction.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-budgets-budgetsaction.json @@ -190,12 +190,14 @@ "type": "string" }, "BudgetName": { + "pattern": "^(?![^:\\\\]*/action/|(?i).*.*)[^:\\\\]+$", "type": "string" }, "Definition": { "$ref": "#/definitions/Definition" }, "ExecutionRoleArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso|-iso-[a-z]{1})?:iam::\\d{12}:role(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$", "type": "string" }, "NotificationType": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json index 63b361dcae..8c1b8d4e94 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json @@ -22,14 +22,17 @@ "DefaultValue": { "maxLength": 50, "minLength": 1, + "pattern": "^(?! )[\\p{L}\\p{N}\\p{Z}-_]*(? Date: Fri, 11 Oct 2024 17:19:23 -0700 Subject: [PATCH 5/7] Follow REFs in the schema --- scripts/boto/_automated_patches.py | 12 ++++- .../aws_appflow_connectorprofile/boto.json | 32 ------------ .../all/aws_appstream_appblock/boto.json | 2 +- .../aws_appstream_appblockbuilder/boto.json | 2 +- .../all/aws_appstream_application/boto.json | 2 +- .../all/aws_auditmanager_assessment/boto.json | 12 +---- .../all/aws_b2bi_capability/boto.json | 9 ---- .../extensions/all/aws_b2bi_profile/boto.json | 10 ---- .../all/aws_b2bi_transformer/boto.json | 11 ---- .../all/aws_backup_backupvault/boto.json | 7 --- .../all/aws_ce_costcategory/boto.json | 5 -- .../aws_cleanrooms_collaboration/boto.json | 15 ------ .../aws_cleanrooms_configuredtable/boto.json | 9 ---- .../aws_cleanrooms_idmappingtable/boto.json | 5 -- .../boto.json | 7 --- .../all/aws_cleanrooms_membership/boto.json | 10 ---- .../all/aws_cloudtrail_channel/boto.json | 7 --- .../boto.json | 7 +-- .../boto.json | 17 ------- .../all/aws_connect_tasktemplate/boto.json | 10 ---- .../boto.json | 31 ------------ .../all/aws_datazone_datasource/boto.json | 10 ---- .../aws_datazone_projectmembership/boto.json | 10 ---- .../all/aws_datazone_userprofile/boto.json | 11 ---- .../all/aws_deadline_queue/boto.json | 11 ---- .../aws_deadline_queueenvironment/boto.json | 10 ---- .../all/aws_deadline_storageprofile/boto.json | 11 ---- .../all/aws_ec2_networkinsightspath/boto.json | 15 +----- .../aws_emrserverless_application/boto.json | 10 ---- .../boto.json | 7 --- .../boto.json | 7 --- .../boto.json | 7 --- .../boto.json | 20 -------- .../boto.json | 7 --- .../all/aws_fis_experimenttemplate/boto.json | 4 +- .../boto.json | 8 +-- .../all/aws_fms_notificationchannel/boto.json | 12 ----- .../aws_gamelift_gameservergroup/boto.json | 29 ----------- .../all/aws_grafana_workspace/boto.json | 18 ------- .../aws_healthlake_fhirdatastore/boto.json | 9 +--- .../all/aws_iotfleetwise_campaign/boto.json | 26 ---------- .../all/aws_iotfleetwise_vehicle/boto.json | 10 ---- .../all/aws_kendra_datasource/boto.json | 41 ++------------- .../extensions/all/aws_kendra_faq/boto.json | 25 ++-------- .../extensions/all/aws_kendra_index/boto.json | 25 +--------- .../aws_kendraranking_executionplan/boto.json | 4 +- .../boto.json | 5 -- .../all/aws_lakeformation_tag/boto.json | 8 +-- .../all/aws_lambda_function/boto.json | 8 --- .../all/aws_licensemanager_grant/boto.json | 2 +- .../aws_location_geofencecollection/boto.json | 11 ---- .../extensions/all/aws_location_map/boto.json | 11 ---- .../all/aws_location_placeindex/boto.json | 11 ---- .../aws_location_routecalculator/boto.json | 11 ---- .../all/aws_location_tracker/boto.json | 20 -------- .../all/aws_lookoutvision_project/boto.json | 7 --- .../all/aws_m2_application/boto.json | 10 ---- .../all/aws_m2_environment/boto.json | 10 ---- .../aws_managedblockchain_accessor/boto.json | 20 -------- .../boto.json | 47 ----------------- .../all/aws_medialive_cluster/boto.json | 9 ---- .../boto.json | 21 -------- .../all/aws_mediapackagev2_channel/boto.json | 10 ---- .../boto.json | 10 ---- .../all/aws_mediatailor_channel/boto.json | 18 ------- .../all/aws_mwaa_environment/boto.json | 48 ------------------ .../aws_networkfirewall_firewall/boto.json | 7 --- .../all/aws_omics_annotationstore/boto.json | 11 ---- .../all/aws_omics_workflow/boto.json | 18 ------- .../boto.json | 9 ---- .../boto.json | 19 ------- .../boto.json | 9 ---- .../boto.json | 9 ---- .../boto.json | 10 ---- .../boto.json | 27 ---------- .../all/aws_panorama_package/boto.json | 7 --- .../all/aws_panorama_packageversion/boto.json | 22 -------- .../all/aws_paymentcryptography_key/boto.json | 10 ---- .../extensions/all/aws_pipes_pipe/boto.json | 8 --- .../aws_proton_environmenttemplate/boto.json | 9 ---- .../all/aws_proton_servicetemplate/boto.json | 9 ---- .../all/aws_qbusiness_application/boto.json | 11 ---- .../all/aws_qbusiness_index/boto.json | 10 ---- .../all/aws_qbusiness_plugin/boto.json | 13 ----- .../all/aws_qbusiness_retriever/boto.json | 10 ---- .../all/aws_qbusiness_webexperience/boto.json | 10 ---- .../all/aws_quicksight_dataset/boto.json | 10 ---- .../all/aws_quicksight_datasource/boto.json | 37 -------------- .../all/aws_quicksight_folder/boto.json | 18 ------- .../all/aws_rekognition_collection/boto.json | 7 --- .../all/aws_rekognition_project/boto.json | 7 --- .../boto.json | 7 --- .../boto.json | 7 --- .../boto.json | 7 --- .../all/aws_sagemaker_image/boto.json | 7 --- .../all/aws_sagemaker_imageversion/boto.json | 44 ---------------- .../boto.json | 17 ------- .../boto.json | 5 -- .../boto.json | 7 --- .../boto.json | 7 --- .../all/aws_sagemaker_modelpackage/boto.json | 44 +--------------- .../aws_sagemaker_modelpackagegroup/boto.json | 12 ----- .../boto.json | 7 --- .../boto.json | 7 --- .../all/aws_sagemaker_project/boto.json | 12 ----- .../all/aws_securityhub_insight/boto.json | 2 +- .../all/aws_signer_signingprofile/boto.json | 7 --- .../extensions/all/aws_wafv2_ipset/boto.json | 28 ----------- .../all/aws_wafv2_rulegroup/boto.json | 20 -------- .../extensions/all/aws_wafv2_webacl/boto.json | 20 -------- .../all/aws_wisdom_assistant/boto.json | 7 --- .../aws_wisdom_assistantassociation/boto.json | 9 ---- .../all/aws_wisdom_knowledgebase/boto.json | 9 ---- .../boto.json | 14 ------ .../all/aws_workspacesweb_portal/boto.json | 19 ------- .../aws_workspacesweb_usersettings/boto.json | 50 ------------------- .../aws-route53resolver-resolverrule.json | 1 + .../cn_north_1/aws-iam-instanceprofile.json | 2 + .../us_east_1/aws-appstream-appblock.json | 4 ++ .../aws-appstream-appblockbuilder.json | 3 ++ .../us_east_1/aws-appstream-application.json | 1 + .../aws-auditmanager-assessment.json | 1 + .../aws-comprehend-documentclassifier.json | 1 + .../aws-ec2-networkinsightspath.json | 1 + .../us_east_1/aws-fis-experimenttemplate.json | 2 + .../aws-fis-targetaccountconfiguration.json | 4 ++ .../aws-healthlake-fhirdatastore.json | 1 + .../us_east_1/aws-kendra-datasource.json | 3 ++ .../providers/us_east_1/aws-kendra-faq.json | 3 ++ .../providers/us_east_1/aws-kendra-index.json | 2 + .../aws-kendraranking-executionplan.json | 2 + .../us_east_1/aws-licensemanager-grant.json | 1 + .../us_east_1/aws-sagemaker-modelpackage.json | 1 + .../us_east_1/aws-securityhub-insight.json | 1 + .../aws-route53resolver-resolverrule.json | 1 + 135 files changed, 72 insertions(+), 1521 deletions(-) delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_collaboration/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_configuredtable/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idnamespaceassociation/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_membership/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_cloudtrail_channel/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_connect_integrationassociation/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_connect_tasktemplate/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_customerprofiles_calculatedattributedefinition/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_datasource/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_projectmembership/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_userprofile/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queue/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queueenvironment/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_storageprofile/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emrserverless_application/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idmappingworkflow/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idnamespace/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_matchingworkflow/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_policystatement/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_schemamapping/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_fms_notificationchannel/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_gameservergroup/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_grafana_workspace/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotfleetwise_campaign/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iotfleetwise_vehicle/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_geofencecollection/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_map/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_placeindex/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_routecalculator/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_location_tracker/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lookoutvision_project/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_m2_application/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_m2_environment/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_managedblockchain_accessor/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_cloudwatchalarmtemplate/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_cluster/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_medialive_eventbridgeruletemplate/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediapackagev2_channel/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediapackagev2_originendpoint/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mediatailor_channel/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_mwaa_environment/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_networkfirewall_firewall/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_omics_annotationstore/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_omics_workflow/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_accesspolicy/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_collection/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_lifecyclepolicy/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_securityconfig/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_opensearchserverless_securitypolicy/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_applicationinstance/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_package/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_panorama_packageversion/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_paymentcryptography_key/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_proton_environmenttemplate/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_proton_servicetemplate/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_application/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_index/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_plugin/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_retriever/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_qbusiness_webexperience/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_dataset/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_datasource/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_quicksight_folder/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_collection/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_rekognition_project/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_robotapplicationversion/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_robomaker_simulationapplicationversion/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_dataqualityjobdefinition/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_image/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_imageversion/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_inferencecomponent/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelbiasjobdefinition/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelexplainabilityjobdefinition/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelpackagegroup/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelqualityjobdefinition/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_monitoringschedule/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_project/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_signer_signingprofile/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_ipset/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_rulegroup/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wafv2_webacl/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_wisdom_assistantassociation/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_identityprovider/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_portal/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_workspacesweb_usersettings/boto.json diff --git a/scripts/boto/_automated_patches.py b/scripts/boto/_automated_patches.py index e3eecad925..d2ca8d6063 100644 --- a/scripts/boto/_automated_patches.py +++ b/scripts/boto/_automated_patches.py @@ -113,6 +113,15 @@ def _per_resource_patch( continue if p_name.lower() == member.lower(): + path = f"/properties/{p_name}" + + if "$ref" in p_data: + pointer = p_data["$ref"].split("/") + p_data = schema_data.get(pointer[1], {}).get(pointer[2], {}) + if not p_data: + continue + path = f"/{'/'.join(pointer[1:])}" + # skip if we already have an enum or pattern if any([p_data.get(field) for field in _fields]): continue @@ -125,7 +134,7 @@ def _per_resource_patch( if not any([member_shape.get(field) for field in _fields]): continue - results[f"/properties/{p_name}"] = Patch( + results[path] = Patch( source=source, shape=member_shape_name, ) @@ -177,7 +186,6 @@ def each_boto_service(boto_path: Path, schema_path: Path) -> AllPatches: boto_path = boto_path / "botocore-master" / "botocore" / "data" for service_dir in boto_path.iterdir(): - print(service_dir) if not service_dir.is_dir(): continue diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json deleted file mode 100644 index 4157546819..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "op": "add", - "path": "/properties/ConnectorType/enum", - "value": [ - "Amplitude", - "CustomConnector", - "CustomerProfiles", - "Datadog", - "Dynatrace", - "EventBridge", - "Googleanalytics", - "Honeycode", - "Infornexus", - "LookoutMetrics", - "Marketo", - "Pardot", - "Redshift", - "S3", - "SAPOData", - "Salesforce", - "Servicenow", - "Singular", - "Slack", - "Snowflake", - "Trendmicro", - "Upsolver", - "Veeva", - "Zendesk" - ] - } -] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json index 13e1f98258..33fe5fa1c8 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json @@ -6,7 +6,7 @@ }, { "op": "add", - "path": "/properties/PackagingType/enum", + "path": "/definitions/PackagingType/enum", "value": [ "APPSTREAM2", "CUSTOM" diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json index bee905e564..dc8aa7c645 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblockbuilder/boto.json @@ -6,7 +6,7 @@ }, { "op": "add", - "path": "/properties/Platform/enum", + "path": "/definitions/PlatformType/enum", "value": [ "WINDOWS_SERVER_2019" ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json index 05a903ed0f..78c9339f55 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_application/boto.json @@ -6,7 +6,7 @@ }, { "op": "add", - "path": "/properties/AppBlockArn/pattern", + "path": "/definitions/Arn/pattern", "value": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json index 93e7a16bd6..986c97732c 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_auditmanager_assessment/boto.json @@ -1,17 +1,7 @@ [ { "op": "add", - "path": "/properties/Name/pattern", - "value": "^[^\\\\]*$" - }, - { - "op": "add", - "path": "/properties/Description/pattern", + "path": "/definitions/AssessmentDescription/pattern", "value": "^[\\w\\W\\s\\S]*$" - }, - { - "op": "add", - "path": "/properties/FrameworkId/pattern", - "value": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json deleted file mode 100644 index b1e9134e8d..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_capability/boto.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "op": "add", - "path": "/properties/Type/enum", - "value": [ - "edi" - ] - } -] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json deleted file mode 100644 index 70f6b6a9ce..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_profile/boto.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "op": "add", - "path": "/properties/Logging/enum", - "value": [ - "DISABLED", - "ENABLED" - ] - } -] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json deleted file mode 100644 index a6dace4450..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_b2bi_transformer/boto.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "op": "add", - "path": "/properties/FileFormat/enum", - "value": [ - "JSON", - "NOT_USED", - "XML" - ] - } -] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json deleted file mode 100644 index 4dff994bef..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_backup_backupvault/boto.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "op": "add", - "path": "/properties/BackupVaultName/pattern", - "value": "^[a-zA-Z0-9\\-\\_]{2,50}$" - } -] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json index 09c40890fe..58684b8917 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ce_costcategory/boto.json @@ -4,11 +4,6 @@ "path": "/properties/Name/pattern", "value": "^(?! )[\\p{L}\\p{N}\\p{Z}-_]*(? Date: Fri, 11 Oct 2024 17:20:56 -0700 Subject: [PATCH 6/7] Update specs to remove unneeded patches --- ...5a0d14c62111ff864923fc7b7960dda6.meta.json | 2 +- ...2b6653d7edfe98a64577daae0b481c38.meta.json | 2 +- ...5e4752bbc10d9552de8df8f81348c42b.meta.json | 2 +- ...63a1bf4413531ad420ff60a5a0d7965d.meta.json | 2 +- ...4cfc32461d10e077e7e5de1fc25d8b8f.meta.json | 2 +- ...d3fe2e7838c23f6acd054944cb2b1618.meta.json | 2 +- ...7e9907e4a512c10ddae70b98b4dada43.meta.json | 2 +- ...3fbf0a0fb76625ba46dbe42abd34333c.meta.json | 2 +- ...376aa3fe15197e3bb0e9290ff8719b4e.meta.json | 2 +- ...f60a7b5acfc406ebb10d5748cbb8ed41.meta.json | 2 +- ...aa3b299156f53fa9d1fd8eeabec5a268.meta.json | 2 +- ...f35136af536e92a84ccbaf062c315066.meta.json | 2 +- ...04470222e5e4c690bacef5312891581d.meta.json | 2 +- ...646b563d773e34b020d0ddeab2fe195b.meta.json | 2 +- ...548d44cc32e246ec9d7742088a2c17f8.meta.json | 2 +- ...98ac34d4109512e0e0947ef752dcb9c9.meta.json | 2 +- ...7e4a4542365d35fd75466abcf306eeca.meta.json | 2 +- ...69b7533eabab32ecfc0a00cb19e55a5f.meta.json | 2 +- ...e783fe32b6bb6b13774c32fcca1d303a.meta.json | 2 +- ...05f2567698dfdfa979bf0ccdb68cb856.meta.json | 2 +- ...92030ae5c03d7451980a15735e557edb.meta.json | 2 +- ...6bb7f975b606f8db57532faddfcdd8c8.meta.json | 2 +- ...73ff097c685cda0a63c08a6416dc58ed.meta.json | 2 +- ...25c8d66a1f84939600616bab42579541.meta.json | 2 +- ...972142778e1ff452383ede2ad4bac3d7.meta.json | 2 +- ...26b315ef6f38515840537c02de23abe2.meta.json | 2 +- ...cf908a34e6b4c3fb3e97e2b584f651ca.meta.json | 2 +- ...318c41c71c21b0a17d4f68d82c5aee21.meta.json | 2 +- ...6cd7e4ced378cacdb93f76ed227b5c5d.meta.json | 2 +- ...b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json | 2 +- ...41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json | 2 +- ...b2d398fe33547eed780b9b70f10eb4a2.meta.json | 2 +- ...e50a1638ffe0a5dba0d8805c190a05f8.meta.json | 2 +- ...3b69878d351cffd417dc9a457df808af.meta.json | 2 +- .../schemas/providers/af_south_1/__init__.py | 8 - .../aws-dms-replicationinstance.json | 106 + .../providers/af_south_1/aws-ecs-service.json | 585 +++ .../aws-ecs-taskset.json | 24 +- .../aws-guardduty-detector.json | 6 +- .../aws-kinesis-stream.json | 1 - .../aws-networkfirewall-firewallpolicy.json | 11 - .../aws-rds-dbcluster.json | 5 +- .../aws-rds-dbsubnetgroup.json} | 44 +- .../aws-sagemaker-imageversion.json | 30 +- .../providers/af_south_1/aws-waf-rule.json | 9 - .../schemas/providers/ap_east_1/__init__.py | 6 +- .../ap_east_1/aws-apigatewayv2-vpclink.json | 51 - .../providers/ap_east_1/aws-ecs-service.json | 585 +++ .../aws-ecs-taskset.json | 24 +- .../aws-guardduty-detector.json | 6 +- .../aws-kinesis-stream.json | 1 - .../aws-networkfirewall-firewallpolicy.json | 11 - .../ap_east_1/aws-sagemaker-imageversion.json | 30 +- .../providers/ap_northeast_1/__init__.py | 5 +- .../ap_northeast_1/aws-ecs-service.json | 585 +++ .../ap_northeast_1/aws-ecs-taskset.json | 191 + .../providers/ap_northeast_2/__init__.py | 7 - .../ap_northeast_2/aws-ecs-service.json | 585 +++ .../ap_northeast_2/aws-ecs-taskset.json | 191 + .../aws-guardduty-detector.json | 6 +- .../aws-kinesis-stream.json | 1 - .../aws-networkfirewall-firewallpolicy.json | 11 - .../aws-rds-dbcluster.json | 5 +- .../aws-rds-dbsubnetgroup.json} | 44 +- ...aws-robomaker-robotapplicationversion.json | 1 - ...obomaker-simulationapplicationversion.json | 1 - .../aws-sagemaker-imageversion.json | 30 +- .../providers/ap_northeast_3/__init__.py | 7 +- .../aws-dms-replicationinstance.json | 106 + .../ap_northeast_3/aws-ecs-service.json | 585 +++ .../ap_northeast_3/aws-ecs-taskset.json | 191 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-route53resolver-resolverrule.json | 131 + .../schemas/providers/ap_south_1/__init__.py | 4 +- .../providers/ap_south_1/aws-ecs-service.json | 585 +++ .../providers/ap_south_1/aws-ecs-taskset.json | 191 + ...aws-robomaker-robotapplicationversion.json | 1 - ...obomaker-simulationapplicationversion.json | 1 - .../aws-sagemaker-imageversion.json | 30 +- .../schemas/providers/ap_south_2/__init__.py | 5 - .../providers/ap_south_2/aws-ec2-host.json | 4 - .../providers/ap_south_2/aws-ecs-service.json | 585 +++ .../providers/ap_south_2/aws-ecs-taskset.json | 191 + .../ap_south_2/aws-guardduty-detector.json | 184 + .../aws-kinesis-stream.json | 1 - .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../providers/ap_south_2/aws-waf-rule.json | 9 - .../providers/ap_southeast_1/__init__.py | 7 +- .../ap_southeast_1/aws-ecs-service.json | 585 +++ .../ap_southeast_1/aws-ecs-taskset.json | 191 + .../aws-rds-dbcluster.json | 5 +- .../aws-rds-dbsubnetgroup.json} | 44 +- .../providers/ap_southeast_2/__init__.py | 8 +- .../ap_southeast_2/aws-ecs-service.json | 585 +++ .../ap_southeast_2/aws-ecs-taskset.json | 191 + .../ap_southeast_2/aws-medialive-channel.json | 3591 +++++++++++++++++ .../ap_southeast_2/aws-medialive-input.json | 249 ++ ...aws-robomaker-robotapplicationversion.json | 1 - ...obomaker-simulationapplicationversion.json | 1 - .../aws-route53resolver-resolverrule.json | 131 + .../providers/ap_southeast_3/__init__.py | 5 - .../ap_southeast_3/aws-ec2-host.json | 4 - .../ap_southeast_3/aws-ecs-service.json | 585 +++ .../ap_southeast_3/aws-ecs-taskset.json | 191 + .../aws-guardduty-detector.json | 184 + .../ap_southeast_3/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../ap_southeast_3/aws-waf-rule.json | 9 - .../providers/ap_southeast_4/__init__.py | 8 +- .../ap_southeast_4/aws-ec2-host.json | 4 - .../ap_southeast_4/aws-ecs-service.json | 585 +++ .../ap_southeast_4/aws-ecs-taskset.json | 191 + .../aws-guardduty-detector.json | 184 + .../ap_southeast_4/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-rds-dbcluster.json} | 401 +- .../aws-rds-dbsubnetgroup.json} | 42 +- .../ap_southeast_4/aws-waf-rule.json | 9 - .../providers/ap_southeast_5/__init__.py | 6 +- .../ap_southeast_5/aws-ec2-host.json | 4 - .../ap_southeast_5/aws-ecs-service.json | 585 +++ .../ap_southeast_5/aws-ecs-taskset.json | 191 + .../ap_southeast_5/aws-kinesis-stream.json | 133 + .../ap_southeast_5/aws-rds-dbcluster.json | 397 ++ .../ap_southeast_5/aws-rds-dbsubnetgroup.json | 71 + ...secretsmanager-secrettargetattachment.json | 29 - .../ap_southeast_5/aws-waf-rule.json | 9 - .../providers/ca_central_1/__init__.py | 5 +- .../ca_central_1/aws-ecs-service.json | 585 +++ .../ca_central_1/aws-ecs-taskset.json | 191 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../schemas/providers/ca_west_1/__init__.py | 12 +- .../providers/ca_west_1/aws-ec2-host.json | 4 - .../providers/ca_west_1/aws-ecs-service.json | 585 +++ .../providers/ca_west_1/aws-ecs-taskset.json | 191 + .../providers/ca_west_1/aws-glue-job.json | 164 - .../ca_west_1/aws-guardduty-detector.json | 184 + .../ca_west_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-rds-dbclusterparametergroup.json | 69 - .../ca_west_1/aws-rds-dbinstance.json | 528 --- .../ca_west_1/aws-rds-optiongroup.json | 125 - .../providers/ca_west_1/aws-waf-rule.json | 9 - .../schemas/providers/cn_north_1/__init__.py | 10 +- .../aws-dms-replicationinstance.json | 106 + .../aws-ec2-vpcendpointservice.json | 47 - .../providers/cn_north_1/aws-ecs-service.json | 585 +++ .../providers/cn_north_1/aws-eks-cluster.json | 395 ++ .../cn_north_1/aws-glue-crawler.json | 328 -- .../aws-lambda-eventsourcemapping.json | 5 - .../aws-route53resolver-resolverrule.json | 131 + ...secretsmanager-secrettargetattachment.json | 0 .../providers/cn_northwest_1/__init__.py | 5 +- .../cn_northwest_1/aws-ecs-service.json | 585 +++ .../cn_northwest_1/aws-ecs-taskset.json | 191 + .../cn_northwest_1/aws-glue-job.json | 150 - .../aws-guardduty-detector.json | 184 + .../aws-lambda-eventsourcemapping.json | 5 - .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../providers/eu_central_1/__init__.py | 8 +- .../eu_central_1/aws-m2-application.json | 121 + .../aws-mediapackage-originendpoint.json | 577 +++ .../providers/eu_central_1/aws-sns-topic.json | 150 + .../providers/eu_central_2/__init__.py | 15 +- .../providers/eu_central_2/aws-ec2-host.json | 4 - .../eu_central_2/aws-ecs-service.json | 585 +++ .../eu_central_2/aws-ecs-taskset.json | 191 + .../providers/eu_central_2/aws-glue-job.json | 164 - .../eu_central_2/aws-guardduty-detector.json | 184 + .../eu_central_2/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-rds-dbclusterparametergroup.json | 69 - .../aws-rds-dbparametergroup.json | 69 - .../eu_central_2/aws-rds-optiongroup.json | 125 - ...secretsmanager-secrettargetattachment.json | 29 - .../providers/eu_central_2/aws-waf-rule.json | 9 - .../schemas/providers/eu_north_1/__init__.py | 6 - .../aws-dms-replicationinstance.json | 106 + .../providers/eu_north_1/aws-ecs-service.json | 585 +++ .../providers/eu_north_1/aws-ecs-taskset.json | 191 + .../eu_north_1/aws-guardduty-detector.json | 184 + .../eu_north_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../schemas/providers/eu_south_1/__init__.py | 6 - .../aws-dms-replicationinstance.json | 106 + .../providers/eu_south_1/aws-ecs-service.json | 585 +++ .../providers/eu_south_1/aws-ecs-taskset.json | 191 + .../eu_south_1/aws-guardduty-detector.json | 184 + .../eu_south_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../providers/eu_south_1/aws-waf-rule.json | 9 - .../schemas/providers/eu_south_2/__init__.py | 7 +- .../providers/eu_south_2/aws-ec2-host.json | 4 - .../providers/eu_south_2/aws-ecs-service.json | 585 +++ .../providers/eu_south_2/aws-ecs-taskset.json | 191 + .../providers/eu_south_2/aws-glue-job.json | 164 - .../eu_south_2/aws-guardduty-detector.json | 184 + .../eu_south_2/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- ...secretsmanager-secrettargetattachment.json | 29 - .../providers/eu_south_2/aws-waf-rule.json | 9 - .../schemas/providers/eu_west_1/__init__.py | 17 +- .../eu_west_1/aws-databrew-dataset.json | 396 -- .../providers/eu_west_1/aws-databrew-job.json | 565 --- .../eu_west_1/aws-databrew-project.json | 93 - .../eu_west_1/aws-databrew-recipe.json | 539 --- .../eu_west_1/aws-databrew-ruleset.json | 198 - .../aws-dms-replicationinstance.json | 106 + .../providers/eu_west_1/aws-ecs-service.json | 585 +++ .../providers/eu_west_1/aws-ecs-taskset.json | 191 + .../eu_west_1/aws-medialive-channel.json | 3591 +++++++++++++++++ .../eu_west_1/aws-medialive-input.json | 249 ++ .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-route53resolver-resolverrule.json | 131 + .../aws-workspacesweb-identityprovider.json | 87 - .../aws-workspacesweb-usersettings.json | 218 - .../schemas/providers/eu_west_2/__init__.py | 8 - .../aws-dms-replicationinstance.json | 106 + .../providers/eu_west_2/aws-ecs-service.json | 585 +++ .../providers/eu_west_2/aws-ecs-taskset.json | 191 + .../eu_west_2/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../eu_west_2/aws-rds-dbcluster.json | 397 ++ .../eu_west_2/aws-rds-dbsubnetgroup.json | 71 + .../aws-route53resolver-resolverrule.json | 131 + .../eu_west_2/aws-sagemaker-imageversion.json | 30 +- .../schemas/providers/eu_west_3/__init__.py | 5 - .../providers/eu_west_3/aws-ecs-service.json | 585 +++ .../providers/eu_west_3/aws-ecs-taskset.json | 191 + .../eu_west_3/aws-guardduty-detector.json | 184 + .../eu_west_3/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../eu_west_3/aws-sagemaker-imageversion.json | 30 +- .../providers/il_central_1/__init__.py | 8 +- .../providers/il_central_1/aws-ec2-host.json | 4 - .../il_central_1/aws-ecs-service.json | 585 +++ .../il_central_1/aws-ecs-taskset.json | 191 + .../il_central_1/aws-guardduty-detector.json | 184 + .../il_central_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../il_central_1/aws-rds-dbcluster.json | 397 ++ .../il_central_1/aws-rds-dbsubnetgroup.json | 71 + .../aws-sagemaker-imageversion.json | 30 +- ...secretsmanager-secrettargetattachment.json | 29 - .../providers/il_central_1/aws-waf-rule.json | 9 - .../providers/me_central_1/__init__.py | 5 - .../providers/me_central_1/aws-ec2-host.json | 4 - .../me_central_1/aws-ecs-service.json | 585 +++ .../me_central_1/aws-ecs-taskset.json | 191 + .../me_central_1/aws-guardduty-detector.json | 184 + .../me_central_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../providers/me_central_1/aws-waf-rule.json | 9 - .../schemas/providers/me_south_1/__init__.py | 8 +- .../providers/me_south_1/aws-ecs-service.json | 585 +++ .../providers/me_south_1/aws-ecs-taskset.json | 191 + .../me_south_1/aws-guardduty-detector.json | 184 + .../me_south_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../me_south_1/aws-rds-dbcluster.json | 397 ++ .../me_south_1/aws-rds-dbsubnetgroup.json | 71 + .../aws-sagemaker-imageversion.json | 30 +- ...secretsmanager-secrettargetattachment.json | 29 - .../schemas/providers/sa_east_1/__init__.py | 4 +- .../providers/sa_east_1/aws-ecs-service.json | 585 +++ .../providers/sa_east_1/aws-ecs-taskset.json | 191 + .../schemas/providers/us_east_1/__init__.py | 1 + .../aws-appflow-connectorprofile.json | 28 +- .../us_east_1/aws-appstream-appblock.json | 6 +- .../aws-appstream-appblockbuilder.json | 5 +- .../us_east_1/aws-appstream-application.json | 3 +- .../aws-auditmanager-assessment.json | 9 +- .../us_east_1/aws-b2bi-capability.json | 5 +- .../providers/us_east_1/aws-b2bi-profile.json | 6 +- .../us_east_1/aws-b2bi-transformer.json | 7 +- .../us_east_1/aws-backup-backupvault.json | 3 +- .../us_east_1/aws-ce-costcategory.json | 3 +- .../aws-cleanrooms-collaboration.json | 9 +- .../aws-cleanrooms-configuredtable.json | 5 +- .../aws-cleanrooms-idmappingtable.json | 3 +- ...aws-cleanrooms-idnamespaceassociation.json | 3 +- .../us_east_1/aws-cleanrooms-membership.json | 6 +- .../us_east_1/aws-cloudtrail-channel.json | 3 +- .../aws-comprehend-documentclassifier.json | 6 +- .../aws-connect-integrationassociation.json | 13 +- .../us_east_1/aws-connect-tasktemplate.json | 6 +- ...rofiles-calculatedattributedefinition.json | 21 +- .../us_east_1/aws-datazone-datasource.json | 6 +- .../aws-datazone-projectmembership.json | 6 +- .../us_east_1/aws-datazone-userprofile.json | 7 +- .../us_east_1/aws-deadline-queue.json | 7 +- .../aws-deadline-queueenvironment.json | 6 +- .../aws-deadline-storageprofile.json | 7 +- .../us_east_1/aws-dynamodb-table.json | 4 - .../aws-ec2-networkinsightspath.json | 12 +- .../providers/us_east_1/aws-ecs-service.json | 3 + .../providers/us_east_1/aws-ecs-taskset.json | 24 +- .../aws-emrserverless-application.json | 6 +- ...ws-entityresolution-idmappingworkflow.json | 3 +- .../aws-entityresolution-idnamespace.json | 3 +- ...aws-entityresolution-matchingworkflow.json | 3 +- .../aws-entityresolution-policystatement.json | 12 +- .../aws-entityresolution-schemamapping.json | 3 +- .../us_east_1/aws-fis-experimenttemplate.json | 6 +- .../aws-fis-targetaccountconfiguration.json | 12 +- .../aws-fms-notificationchannel.json | 6 +- .../aws-gamelift-gameservergroup.json | 19 +- .../us_east_1/aws-grafana-workspace.json | 12 +- .../us_east_1/aws-guardduty-detector.json | 6 +- .../aws-healthlake-fhirdatastore.json | 8 +- .../us_east_1/aws-iotfleetwise-campaign.json | 18 +- .../us_east_1/aws-iotfleetwise-vehicle.json | 6 +- .../us_east_1/aws-kendra-datasource.json | 38 +- .../providers/us_east_1/aws-kendra-faq.json | 22 +- .../providers/us_east_1/aws-kendra-index.json | 21 +- .../aws-kendraranking-executionplan.json | 6 +- .../aws-kinesis-resourcepolicy.json | 0 .../us_east_1/aws-kinesis-stream.json | 1 + .../aws-kinesisanalyticsv2-application.json | 3 +- .../us_east_1/aws-lakeformation-tag.json | 3 +- .../aws-lambda-eventsourcemapping.json | 5 - .../us_east_1/aws-lambda-function.json | 6 +- .../us_east_1/aws-licensemanager-grant.json | 3 +- .../aws-location-geofencecollection.json | 7 +- .../providers/us_east_1/aws-location-map.json | 7 +- .../us_east_1/aws-location-placeindex.json | 7 +- .../aws-location-routecalculator.json | 7 +- .../us_east_1/aws-location-tracker.json | 14 +- .../us_east_1/aws-lookoutvision-project.json | 3 +- .../us_east_1/aws-m2-application.json | 6 +- .../us_east_1/aws-m2-environment.json | 6 +- .../aws-managedblockchain-accessor.json | 14 +- ...aws-medialive-cloudwatchalarmtemplate.json | 37 +- .../us_east_1/aws-medialive-cluster.json | 5 +- ...aws-medialive-eventbridgeruletemplate.json | 17 +- .../us_east_1/aws-mediapackagev2-channel.json | 6 +- .../aws-mediapackagev2-originendpoint.json | 6 +- .../us_east_1/aws-mediatailor-channel.json | 12 +- .../us_east_1/aws-mwaa-environment.json | 30 +- .../aws-networkfirewall-firewall.json | 3 +- .../aws-networkfirewall-firewallpolicy.json | 11 + .../us_east_1/aws-omics-annotationstore.json | 7 +- .../us_east_1/aws-omics-workflow.json | 12 +- ...aws-opensearchserverless-accesspolicy.json | 5 +- .../aws-opensearchserverless-collection.json | 13 +- ...-opensearchserverless-lifecyclepolicy.json | 5 +- ...s-opensearchserverless-securityconfig.json | 5 +- ...s-opensearchserverless-securitypolicy.json | 6 +- .../aws-panorama-applicationinstance.json | 15 +- .../us_east_1/aws-panorama-package.json | 3 +- .../aws-panorama-packageversion.json | 12 +- .../aws-paymentcryptography-key.json | 6 +- .../providers/us_east_1/aws-pipes-pipe.json | 6 +- .../aws-proton-environmenttemplate.json | 5 +- .../us_east_1/aws-proton-servicetemplate.json | 5 +- .../us_east_1/aws-qbusiness-application.json | 7 +- .../us_east_1/aws-qbusiness-index.json | 6 +- .../us_east_1/aws-qbusiness-plugin.json | 9 +- .../us_east_1/aws-qbusiness-retriever.json | 6 +- .../aws-qbusiness-webexperience.json | 6 +- .../us_east_1/aws-quicksight-dataset.json | 6 +- .../us_east_1/aws-quicksight-datasource.json | 33 +- .../us_east_1/aws-quicksight-folder.json | 12 +- .../us_east_1/aws-rekognition-collection.json | 3 +- .../us_east_1/aws-rekognition-project.json | 3 +- ...aws-robomaker-robotapplicationversion.json | 3 +- ...obomaker-simulationapplicationversion.json | 3 +- ...ws-sagemaker-dataqualityjobdefinition.json | 3 +- .../us_east_1/aws-sagemaker-image.json | 3 +- .../us_east_1/aws-sagemaker-imageversion.json | 30 +- .../aws-sagemaker-inferencecomponent.json | 9 +- .../aws-sagemaker-inferenceexperiment.json | 3 +- .../aws-sagemaker-modelbiasjobdefinition.json | 3 +- ...aker-modelexplainabilityjobdefinition.json | 3 +- .../us_east_1/aws-sagemaker-modelpackage.json | 31 +- .../aws-sagemaker-modelpackagegroup.json | 6 +- ...s-sagemaker-modelqualityjobdefinition.json | 3 +- .../aws-sagemaker-monitoringschedule.json | 3 +- .../us_east_1/aws-sagemaker-project.json | 6 +- .../us_east_1/aws-securityhub-insight.json | 3 +- .../us_east_1/aws-signer-signingprofile.json | 3 +- .../providers/us_east_1/aws-waf-rule.json | 9 - .../providers/us_east_1/aws-wafv2-ipset.json | 18 +- .../us_east_1/aws-wafv2-rulegroup.json | 12 +- .../providers/us_east_1/aws-wafv2-webacl.json | 12 +- .../us_east_1/aws-wisdom-assistant.json | 5 +- .../aws-wisdom-assistantassociation.json | 5 +- .../us_east_1/aws-wisdom-knowledgebase.json | 7 +- .../aws-workspacesweb-identityprovider.json | 10 +- .../us_east_1/aws-workspacesweb-portal.json | 13 +- .../aws-workspacesweb-usersettings.json | 36 +- .../schemas/providers/us_east_2/__init__.py | 5 - .../providers/us_east_2/aws-ecs-service.json | 585 +++ .../providers/us_east_2/aws-ecs-taskset.json | 191 + .../us_east_2/aws-guardduty-detector.json | 184 + .../us_east_2/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../us_east_2/aws-sagemaker-imageversion.json | 30 +- .../providers/us_gov_east_1/__init__.py | 7 +- .../aws-dms-replicationinstance.json | 106 + .../providers/us_gov_east_1/aws-ec2-host.json | 4 - .../us_gov_east_1/aws-ecs-service.json | 585 +++ .../us_gov_east_1/aws-ecs-taskset.json | 191 + .../us_gov_east_1/aws-guardduty-detector.json | 184 + .../us_gov_east_1/aws-kinesis-stream.json | 133 + .../aws-lambda-eventsourcemapping.json | 5 - .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- ...secretsmanager-secrettargetattachment.json | 29 - .../us_gov_east_1/aws-wafv2-rulegroup.json | 12 +- .../us_gov_east_1/aws-wafv2-webacl.json | 12 +- .../providers/us_gov_west_1/__init__.py | 6 +- .../providers/us_gov_west_1/aws-ec2-host.json | 4 - .../us_gov_west_1/aws-ecs-service.json | 585 +++ .../us_gov_west_1/aws-ecs-taskset.json | 191 + .../us_gov_west_1/aws-guardduty-detector.json | 184 + .../us_gov_west_1/aws-kinesis-stream.json | 133 + .../aws-lambda-eventsourcemapping.json | 5 - .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-sagemaker-imageversion.json | 30 +- .../us_gov_west_1/aws-wafv2-rulegroup.json | 12 +- .../us_gov_west_1/aws-wafv2-webacl.json | 12 +- .../schemas/providers/us_west_1/__init__.py | 10 +- .../providers/us_west_1/aws-ecs-service.json | 585 +++ .../providers/us_west_1/aws-ecs-taskset.json | 191 + .../us_west_1/aws-kinesis-stream.json | 133 + .../aws-networkfirewall-firewallpolicy.json | 332 ++ .../aws-rds-dbclusterparametergroup.json | 69 - .../us_west_1/aws-rds-dbinstance.json | 528 --- .../us_west_1/aws-rds-dbparametergroup.json | 69 - .../us_west_1/aws-rds-optiongroup.json | 125 - .../us_west_1/aws-sagemaker-imageversion.json | 30 +- .../schemas/providers/us_west_2/__init__.py | 12 +- .../aws-ec2-transitgatewayroutetable.json} | 56 +- .../us_west_2/aws-ec2-vpnconnection.json | 383 ++ .../providers/us_west_2/aws-ecs-service.json | 585 +++ .../providers/us_west_2/aws-glue-crawler.json | 328 -- .../us_west_2/aws-kinesis-resourcepolicy.json | 43 - .../aws-route53recoveryreadiness-cell.json | 75 + ...ute53recoveryreadiness-readinesscheck.json | 65 + ...oute53recoveryreadiness-recoverygroup.json | 69 + ...-route53recoveryreadiness-resourceset.json | 164 + ...secretsmanager-secrettargetattachment.json | 0 450 files changed, 50022 insertions(+), 7711 deletions(-) create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-service.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => af_south_1}/aws-ecs-taskset.json (87%) rename src/cfnlint/data/schemas/providers/{us_west_2 => af_south_1}/aws-guardduty-detector.json (95%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => af_south_1}/aws-kinesis-stream.json (87%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => af_south_1}/aws-networkfirewall-firewallpolicy.json (96%) rename src/cfnlint/data/schemas/providers/{ca_west_1 => af_south_1}/aws-rds-dbcluster.json (98%) rename src/cfnlint/data/schemas/providers/{us_west_1/aws-rds-eventsubscription.json => af_south_1/aws-rds-dbsubnetgroup.json} (62%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-service.json rename src/cfnlint/data/schemas/providers/{cn_north_1 => ap_east_1}/aws-ecs-taskset.json (87%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_east_1}/aws-guardduty-detector.json (95%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_east_1}/aws-kinesis-stream.json (87%) rename src/cfnlint/data/schemas/providers/{cn_north_1 => ap_east_1}/aws-networkfirewall-firewallpolicy.json (96%) create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-taskset.json rename src/cfnlint/data/schemas/providers/{cn_north_1 => ap_northeast_2}/aws-guardduty-detector.json (95%) rename src/cfnlint/data/schemas/providers/{ap_southeast_1 => ap_northeast_2}/aws-kinesis-stream.json (87%) rename src/cfnlint/data/schemas/providers/{ap_southeast_2 => ap_northeast_2}/aws-networkfirewall-firewallpolicy.json (96%) rename src/cfnlint/data/schemas/providers/{us_west_1 => ap_northeast_2}/aws-rds-dbcluster.json (98%) rename src/cfnlint/data/schemas/providers/{ca_west_1/aws-rds-eventsubscription.json => ap_northeast_2/aws-rds-dbsubnetgroup.json} (62%) create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53resolver-resolverrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-detector.json rename src/cfnlint/data/schemas/providers/{us_west_2 => ap_south_2}/aws-kinesis-stream.json (87%) create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-taskset.json rename src/cfnlint/data/schemas/providers/{eu_central_2 => ap_southeast_1}/aws-rds-dbcluster.json (98%) rename src/cfnlint/data/schemas/providers/{eu_central_2/aws-rds-eventsubscription.json => ap_southeast_1/aws-rds-dbsubnetgroup.json} (62%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-input.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json rename src/cfnlint/data/schemas/providers/{eu_central_2/aws-rds-dbinstance.json => ap_southeast_4/aws-rds-dbcluster.json} (51%) rename src/cfnlint/data/schemas/providers/{ca_west_1/aws-rds-dbparametergroup.json => ap_southeast_4/aws-rds-dbsubnetgroup.json} (58%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbsubnetgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secrettargetattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-taskset.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-networkfirewall-firewallpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-dms-replicationinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpcendpointservice.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-eks-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-crawler.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-resolverrule.json rename src/cfnlint/data/schemas/providers/{ap_southeast_4 => cn_north_1}/aws-secretsmanager-secrettargetattachment.json (100%) create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-taskset.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-job.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-m2-application.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-sns-topic.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbclusterparametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbparametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-optiongroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-taskset.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-dataset.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-job.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-project.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-recipe.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-ruleset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-channel.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-input.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-route53resolver-resolverrule.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbsubnetgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-route53resolver-resolverrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbsubnetgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-secretsmanager-secrettargetattachment.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbsubnetgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-secretsmanager-secrettargetattachment.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-taskset.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_east_1}/aws-kinesis-resourcepolicy.json (100%) create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dms-replicationinstance.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-networkfirewall-firewallpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-secretsmanager-secrettargetattachment.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-networkfirewall-firewallpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ecs-taskset.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-kinesis-stream.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-networkfirewall-firewallpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbclusterparametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbparametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-optiongroup.json rename src/cfnlint/data/schemas/providers/{eu_west_1/aws-databrew-schedule.json => us_west_2/aws-ec2-transitgatewayroutetable.json} (50%) create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-ecs-service.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-glue-crawler.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-kinesis-resourcepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53recoveryreadiness-cell.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53recoveryreadiness-readinesscheck.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53recoveryreadiness-recoverygroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53recoveryreadiness-resourceset.json rename src/cfnlint/data/schemas/providers/{us_gov_west_1 => us_west_2}/aws-secretsmanager-secrettargetattachment.json (100%) diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index 33a84eaefd..eb8e2ccb34 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"b577498f255ee4b66aecffbab2190e21\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"79550b0fd6afdc26f24e43ae91b08f7e\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json index c63413b557..04c5c9b74f 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"88b31efd15169716b9161d47fc7d101d\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"582e66fdd371fbe35fb64e61d66fb1fc\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json index bc9851c747..693a48faed 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"0e8c43d597d228c1db8bb9178e8b8f37\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"32378cf857230304a78969a9fc8e399f\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json index ca8f00819b..b758c36d4e 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"4f087289a61ed305e32017e7ff323e34\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7a59eb487710abed8b72a748723a3ec9\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json index ea5272ecc7..987a490f5b 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"582340e29e3bfe3a8d51b4b683aaaf69\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"eafcbcab38e405e27ad39d2e691832ab\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json index a04e0e670a..1c485cc265 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"78746b74b820ee23ca1d6a91da60731c\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"02ecc29742d6f7a150d1c613fe312822\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json index 6272c1e047..914088fb3c 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"efc2d0aabd4d4b8673fa5e49fc477f96\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c31aee518eb6f660471250813ca6e302\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json index ff65f5c03a..3a7d78b155 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"dc2ca21b2e7a67de151ace3ba490376c\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"2ac470a48a5af254c6dc9ad3dbd00920\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json index 825cd17306..2789cf984f 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"16c4d9c9042da148d7d9cd90c06c796c\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"6060f9b272582b995679c257b1518c62\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json index 18a3a846bc..4900ba9e92 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"c36690a2f5897235f191b750656a5ff7\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3888614e1b025c1a51640a8454e64261\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/49ed0265aaab90ce485c07e02ea671e5aa3b299156f53fa9d1fd8eeabec5a268.meta.json b/src/cfnlint/data/DownloadsMetadata/49ed0265aaab90ce485c07e02ea671e5aa3b299156f53fa9d1fd8eeabec5a268.meta.json index 5cde5846e1..0f5cfeb907 100644 --- a/src/cfnlint/data/DownloadsMetadata/49ed0265aaab90ce485c07e02ea671e5aa3b299156f53fa9d1fd8eeabec5a268.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/49ed0265aaab90ce485c07e02ea671e5aa3b299156f53fa9d1fd8eeabec5a268.meta.json @@ -1 +1 @@ -{"etag": "\"d36e2dbdf974f8c3251e2289b371aabf\"", "url": "https://schema.cloudformation.ap-southeast-5.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cd1ef321cad981eb8210a5292cb3174a\"", "url": "https://schema.cloudformation.ap-southeast-5.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json index be70ac3e91..4703816a4d 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"5d2e65b0fbf8d81118d7078424180671\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"aaf517e66ce35d51e7af65da0366d37e\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json index 48c6d1b3c8..e4ccb50b08 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"78a02660ca7b8cec013abb5e6e48b204\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4ae91fdda0a97fe1064843869b1bacbe\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json index 85d8c56166..5bbd0239b1 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"bc7f4b6b06ba62b79b946d6c109e8d8e\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a77591fe3f9644fff61577957c543da6\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json index bc53070c03..52ebd552f9 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"4c75ad8009803a0d162476afc69d38d1\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"8ba35ab45a71e3d6973b6b20c54e33d8\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json index 8a5b6e6557..8bc9c18062 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"bd4551e08025b416d7747d9a74e447b5\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9f464d820837dfe9f89f8fbc8a5f7ff3\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json index 63d8028618..520d73f651 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"ce40cd061dc0eeb64ee739c563229073\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1e236db8f28b0fa10048ada8a9528959\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json index 679a770b1d..56317dfdc8 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"ffb5bd2d6e45dcda0665347144e60324\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5d35a336aed35cd5ef29c8fdec096095\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json index b620d72008..1892c80b5a 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"5ef8b889070af2824e94997af16a8951\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e272513fa83ff1a81eb94e830549b463\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json index 4c89795216..ba17fe34e4 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"8de98a04b7e80d5a52d5bfee9c3bba66\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4f8b7669b62d644ea415e6cb39b47b98\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json index ae3f5c2279..27ea1365bd 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"e3b02ac9e0c7eb55da386785a319918a\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"36d18f168e2856eadca2ee3be5bb23ec\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json index d51be4974a..f3fccad9d7 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"c77b44f369e022992a8561dedd2e182d\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2f3919b95ac2db80aca5e5764f0aafc2\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json index abf0962e6f..34f4850f0e 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"b6bab1881e1729e50ca99bcb9b838a2c\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1fa39d73d61a09d97d9516fe76fcab2d\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json index d17f5030f2..90ed67074a 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"ff5d2c12d060f95121f476490595058d\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a5a14d3a639f37b467b6055916815673\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json index 1390c642d6..e914456d9e 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"5fef8788909211392393eb88e14fbfff\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2f9b529b5f829d278fa28ac1fae6930d\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json index f3ec31f397..0d1d85e9e0 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"e178c8c26a1d0c9bbe225025e0efddc8\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"928dc499578f6adad0cb829602f77963\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json index b32ba94b0b..40c77e65bf 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"9f3f49fa5edac419d42b8ff398042357\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2c37272a0ccd79c645d8a903b896f34c\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json index 3a7d894ceb..2da2249740 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"7fcc416c6601bea463b4e1e641f93d02\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cb1d34db2445eaefb52a0140d342d057\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json index 4140152181..f836661541 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"2516dd8659b69bae478ec25a64778cdb\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"08930191250b4857f4c9896d3be845f1\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json index 190c50d320..2f5d1c6daf 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"d4ebfc950dc4c6f95377b86a34a1af7a\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f50b82e88e3a37feb0c3e344de9841aa\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json index a29561a619..d84cd574d0 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"5d424d4ce01f84e770b4e0367e32b98b\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bd05733b667d1cae784c1e5417a7dd99\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json index c782e89e4f..b80d5003db 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"020c49ca994a2f3c1f2183b890ebfa75\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3bdc51633fb492382bd07a5bcdc1ebbd\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json index 369dea0b6d..b251a80be8 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"be78f70aa2f9fcf03ab6fbb1ae2ab565\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"6eed89ccd1fc53bf21f45b40ad89308d\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json index f4038d4ea6..1335ef2221 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"126060e994baed7d4a156ad777cc3287\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"03c4170bd3be15a1e5cbe4e9dea6e183\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py index 05689fb925..23572534d2 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -1079,7 +1079,6 @@ "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", "aws-dms-replicationconfig.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-docdb-dbcluster.json", @@ -1181,9 +1180,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1270,7 +1267,6 @@ "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", "aws-groundstation-missionprofile.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1305,7 +1301,6 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-inspectorv2-filter.json", "aws-internetmonitor-monitor.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1374,7 +1369,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1423,7 +1417,6 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1432,7 +1425,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-taskset.json similarity index 87% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-taskset.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-taskset.json index 663d1205f9..3491488499 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-taskset.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-taskset.json @@ -9,8 +9,7 @@ "/properties/PlatformVersion", "/properties/Service", "/properties/ServiceRegistries", - "/properties/TaskDefinition", - "/properties/CapacityProviderStrategy" + "/properties/TaskDefinition" ], "definitions": { "AwsVpcConfiguration": { @@ -45,21 +44,6 @@ ], "type": "object" }, - "CapacityProviderStrategyItem": { - "additionalProperties": false, - "properties": { - "Base": { - "type": "integer" - }, - "CapacityProvider": { - "type": "string" - }, - "Weight": { - "type": "integer" - } - }, - "type": "object" - }, "LoadBalancer": { "additionalProperties": false, "properties": { @@ -138,12 +122,6 @@ "/properties/Id" ], "properties": { - "CapacityProviderStrategy": { - "items": { - "$ref": "#/definitions/CapacityProviderStrategyItem" - }, - "type": "array" - }, "Cluster": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-guardduty-detector.json similarity index 95% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-guardduty-detector.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-guardduty-detector.json index 0632b1017c..efaad17ff9 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-guardduty-detector.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-guardduty-detector.json @@ -36,7 +36,6 @@ "additionalProperties": false, "properties": { "AdditionalConfiguration": { - "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" }, @@ -146,7 +145,6 @@ "type": "boolean" }, "Features": { - "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureConfiguration" }, @@ -164,7 +162,6 @@ "type": "string" }, "Tags": { - "insertionOrder": false, "items": { "$ref": "#/definitions/TagItem" }, @@ -180,8 +177,7 @@ "tagging": { "cloudFormationSystemTags": false, "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, + "tagUpdatable": false, "taggable": true }, "typeName": "AWS::GuardDuty::Detector" diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-kinesis-stream.json similarity index 87% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesis-stream.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-kinesis-stream.json index 45b4ce6a6b..be1bc65c07 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesis-stream.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-kinesis-stream.json @@ -1,5 +1,4 @@ { - "$comment": "Do not set SystemTags to true without implementing a fail-open mechanism. It should not fail when adding systemTags for customers without AddTagsToStream Permission. Cloudformation will automatically add system tags even if customer does not have the AddTagsToStream permission. COE: https://www.coe.a2z.com/coe/236297/content", "additionalProperties": false, "createOnlyProperties": [ "/properties/Name" diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-networkfirewall-firewallpolicy.json similarity index 96% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-networkfirewall-firewallpolicy.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-networkfirewall-firewallpolicy.json index 6c4c8f2af1..973b595561 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-networkfirewall-firewallpolicy.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-networkfirewall-firewallpolicy.json @@ -187,17 +187,6 @@ "StatefulEngineOptions": { "additionalProperties": false, "properties": { - "FlowTimeouts": { - "additionalProperties": false, - "properties": { - "TcpIdleTimeoutSeconds": { - "maximum": 600, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, "RuleOrder": { "$ref": "#/definitions/RuleOrder" }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json index 9748b231ac..46000178b5 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json @@ -177,7 +177,6 @@ "type": "string" }, "DBClusterParameterGroupName": { - "default": "default.aurora5.6", "type": "string" }, "DBClusterResourceId": { @@ -265,7 +264,6 @@ "type": "string" }, "MonitoringInterval": { - "default": 0, "type": "integer" }, "MonitoringRoleArn": { @@ -305,7 +303,6 @@ "type": "string" }, "RestoreType": { - "default": "full-copy", "type": "string" }, "ScalingConfiguration": { @@ -356,7 +353,7 @@ "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", "/properties/Engine": "$lowercase(Engine)", "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-eventsubscription.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbsubnetgroup.json similarity index 62% rename from src/cfnlint/data/schemas/providers/us_west_1/aws-rds-eventsubscription.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbsubnetgroup.json index 10fa51a2d0..d228afbbad 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-eventsubscription.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbsubnetgroup.json @@ -1,8 +1,7 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/SubscriptionName", - "/properties/SnsTopicArn" + "/properties/DBSubnetGroupName" ], "definitions": { "Tag": { @@ -26,37 +25,22 @@ } }, "primaryIdentifier": [ - "/properties/SubscriptionName" + "/properties/DBSubnetGroupName" ], "properties": { - "Enabled": { - "default": true, - "type": "boolean" - }, - "EventCategories": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true + "DBSubnetGroupDescription": { + "type": "string" }, - "SnsTopicArn": { + "DBSubnetGroupName": { "type": "string" }, - "SourceIds": { + "SubnetIds": { "insertionOrder": false, "items": { "type": "string" }, "type": "array", - "uniqueItems": true - }, - "SourceType": { - "type": "string" - }, - "SubscriptionName": { - "maxLength": 255, - "type": "string" + "uniqueItems": false }, "Tags": { "insertionOrder": false, @@ -69,11 +53,19 @@ } }, "propertyTransform": { - "/properties/SubscriptionName": "$lowercase(SubscriptionName)" + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" }, "required": [ - "SnsTopicArn" + "DBSubnetGroupDescription", + "SubnetIds" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::EventSubscription" + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" } diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py index f18df1390e..90d648186b 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -859,6 +859,7 @@ "aws-apigatewayv2-route.json", "aws-apigatewayv2-routeresponse.json", "aws-apigatewayv2-stage.json", + "aws-apigatewayv2-vpclink.json", "aws-appconfig-application.json", "aws-appconfig-configurationprofile.json", "aws-appconfig-deployment.json", @@ -1135,9 +1136,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1220,7 +1219,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1285,7 +1283,6 @@ "aws-iot-thingtype.json", "aws-iot-topicrule.json", "aws-iot-topicruledestination.json", - "aws-kinesis-stream.json", "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", @@ -1353,7 +1350,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json deleted file mode 100644 index 6122cf0cee..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SecurityGroupIds", - "/properties/SubnetIds" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SubnetIds", - "Name" - ], - "typeName": "AWS::ApiGatewayV2::VpcLink" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-taskset.json similarity index 87% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-taskset.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-taskset.json index 663d1205f9..3491488499 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-taskset.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecs-taskset.json @@ -9,8 +9,7 @@ "/properties/PlatformVersion", "/properties/Service", "/properties/ServiceRegistries", - "/properties/TaskDefinition", - "/properties/CapacityProviderStrategy" + "/properties/TaskDefinition" ], "definitions": { "AwsVpcConfiguration": { @@ -45,21 +44,6 @@ ], "type": "object" }, - "CapacityProviderStrategyItem": { - "additionalProperties": false, - "properties": { - "Base": { - "type": "integer" - }, - "CapacityProvider": { - "type": "string" - }, - "Weight": { - "type": "integer" - } - }, - "type": "object" - }, "LoadBalancer": { "additionalProperties": false, "properties": { @@ -138,12 +122,6 @@ "/properties/Id" ], "properties": { - "CapacityProviderStrategy": { - "items": { - "$ref": "#/definitions/CapacityProviderStrategyItem" - }, - "type": "array" - }, "Cluster": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-guardduty-detector.json similarity index 95% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-guardduty-detector.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-guardduty-detector.json index 0632b1017c..efaad17ff9 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-guardduty-detector.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-guardduty-detector.json @@ -36,7 +36,6 @@ "additionalProperties": false, "properties": { "AdditionalConfiguration": { - "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" }, @@ -146,7 +145,6 @@ "type": "boolean" }, "Features": { - "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureConfiguration" }, @@ -164,7 +162,6 @@ "type": "string" }, "Tags": { - "insertionOrder": false, "items": { "$ref": "#/definitions/TagItem" }, @@ -180,8 +177,7 @@ "tagging": { "cloudFormationSystemTags": false, "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, + "tagUpdatable": false, "taggable": true }, "typeName": "AWS::GuardDuty::Detector" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-kinesis-stream.json similarity index 87% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-kinesis-stream.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-kinesis-stream.json index 45b4ce6a6b..be1bc65c07 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-kinesis-stream.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-kinesis-stream.json @@ -1,5 +1,4 @@ { - "$comment": "Do not set SystemTags to true without implementing a fail-open mechanism. It should not fail when adding systemTags for customers without AddTagsToStream Permission. Cloudformation will automatically add system tags even if customer does not have the AddTagsToStream permission. COE: https://www.coe.a2z.com/coe/236297/content", "additionalProperties": false, "createOnlyProperties": [ "/properties/Name" diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-networkfirewall-firewallpolicy.json similarity index 96% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-networkfirewall-firewallpolicy.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-networkfirewall-firewallpolicy.json index 6c4c8f2af1..973b595561 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-networkfirewall-firewallpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-networkfirewall-firewallpolicy.json @@ -187,17 +187,6 @@ "StatefulEngineOptions": { "additionalProperties": false, "properties": { - "FlowTimeouts": { - "additionalProperties": false, - "properties": { - "TcpIdleTimeoutSeconds": { - "maximum": 600, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, "RuleOrder": { "$ref": "#/definitions/RuleOrder" }, diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py index e14b185399..151115fbe3 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -713,6 +713,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1706,9 +1707,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1957,6 +1956,8 @@ "aws-kendra-faq.json", "aws-kendra-index.json", "aws-kendraranking-executionplan.json", + "aws-kinesis-resourcepolicy.json", + "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-application.json", "aws-kinesisanalytics-applicationoutput.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py index be8958f797..50a8b182ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1563,9 +1563,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1691,7 +1689,6 @@ "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", "aws-groundstation-missionprofile.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1788,7 +1785,6 @@ "aws-kafkaconnect-connector.json", "aws-kafkaconnect-customplugin.json", "aws-kafkaconnect-workerconfiguration.json", - "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-application.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1915,7 +1911,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1999,7 +1994,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -2008,7 +2002,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-guardduty-detector.json similarity index 95% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-guardduty-detector.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-guardduty-detector.json index 0632b1017c..efaad17ff9 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-guardduty-detector.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-guardduty-detector.json @@ -36,7 +36,6 @@ "additionalProperties": false, "properties": { "AdditionalConfiguration": { - "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" }, @@ -146,7 +145,6 @@ "type": "boolean" }, "Features": { - "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureConfiguration" }, @@ -164,7 +162,6 @@ "type": "string" }, "Tags": { - "insertionOrder": false, "items": { "$ref": "#/definitions/TagItem" }, @@ -180,8 +177,7 @@ "tagging": { "cloudFormationSystemTags": false, "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, + "tagUpdatable": false, "taggable": true }, "typeName": "AWS::GuardDuty::Detector" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kinesis-stream.json similarity index 87% rename from src/cfnlint/data/schemas/providers/ap_southeast_1/aws-kinesis-stream.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kinesis-stream.json index 45b4ce6a6b..be1bc65c07 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-kinesis-stream.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kinesis-stream.json @@ -1,5 +1,4 @@ { - "$comment": "Do not set SystemTags to true without implementing a fail-open mechanism. It should not fail when adding systemTags for customers without AddTagsToStream Permission. Cloudformation will automatically add system tags even if customer does not have the AddTagsToStream permission. COE: https://www.coe.a2z.com/coe/236297/content", "additionalProperties": false, "createOnlyProperties": [ "/properties/Name" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-networkfirewall-firewallpolicy.json similarity index 96% rename from src/cfnlint/data/schemas/providers/ap_southeast_2/aws-networkfirewall-firewallpolicy.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-networkfirewall-firewallpolicy.json index 6c4c8f2af1..973b595561 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-networkfirewall-firewallpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-networkfirewall-firewallpolicy.json @@ -187,17 +187,6 @@ "StatefulEngineOptions": { "additionalProperties": false, "properties": { - "FlowTimeouts": { - "additionalProperties": false, - "properties": { - "TcpIdleTimeoutSeconds": { - "maximum": 600, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, "RuleOrder": { "$ref": "#/definitions/RuleOrder" }, diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json similarity index 98% rename from src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json index 9748b231ac..46000178b5 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json @@ -177,7 +177,6 @@ "type": "string" }, "DBClusterParameterGroupName": { - "default": "default.aurora5.6", "type": "string" }, "DBClusterResourceId": { @@ -265,7 +264,6 @@ "type": "string" }, "MonitoringInterval": { - "default": 0, "type": "integer" }, "MonitoringRoleArn": { @@ -305,7 +303,6 @@ "type": "string" }, "RestoreType": { - "default": "full-copy", "type": "string" }, "ScalingConfiguration": { @@ -356,7 +353,7 @@ "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", "/properties/Engine": "$lowercase(Engine)", "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-eventsubscription.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbsubnetgroup.json similarity index 62% rename from src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-eventsubscription.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbsubnetgroup.json index 10fa51a2d0..d228afbbad 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-eventsubscription.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbsubnetgroup.json @@ -1,8 +1,7 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/SubscriptionName", - "/properties/SnsTopicArn" + "/properties/DBSubnetGroupName" ], "definitions": { "Tag": { @@ -26,37 +25,22 @@ } }, "primaryIdentifier": [ - "/properties/SubscriptionName" + "/properties/DBSubnetGroupName" ], "properties": { - "Enabled": { - "default": true, - "type": "boolean" - }, - "EventCategories": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true + "DBSubnetGroupDescription": { + "type": "string" }, - "SnsTopicArn": { + "DBSubnetGroupName": { "type": "string" }, - "SourceIds": { + "SubnetIds": { "insertionOrder": false, "items": { "type": "string" }, "type": "array", - "uniqueItems": true - }, - "SourceType": { - "type": "string" - }, - "SubscriptionName": { - "maxLength": 255, - "type": "string" + "uniqueItems": false }, "Tags": { "insertionOrder": false, @@ -69,11 +53,19 @@ } }, "propertyTransform": { - "/properties/SubscriptionName": "$lowercase(SubscriptionName)" + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" }, "required": [ - "SnsTopicArn" + "DBSubnetGroupDescription", + "SubnetIds" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::EventSubscription" + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" } diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json index 941a6e9d2d..0558937133 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplicationversion.json @@ -9,7 +9,6 @@ ], "properties": { "Application": { - "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json index 4006f060f8..f9797ed8ae 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplicationversion.json @@ -9,7 +9,6 @@ ], "properties": { "Application": { - "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py index eb12e0c1ed..0f63ce5d4d 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -439,6 +439,7 @@ "AWS::KMS::Alias", "AWS::KMS::Key", "AWS::KMS::ReplicaKey", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalyticsV2::Application", @@ -1008,7 +1009,6 @@ "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", "aws-dms-replicationconfig.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-dynamodb-globaltable.json", @@ -1104,9 +1104,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1225,6 +1223,7 @@ "aws-internetmonitor-monitor.json", "aws-iot-policyprincipalattachment.json", "aws-iot-thingprincipalattachment.json", + "aws-kinesis-resourcepolicy.json", "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalyticsv2-application.json", @@ -1312,7 +1311,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1409,7 +1407,6 @@ "aws-route53resolver-resolverendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-route53resolver-resolverrule.json", "aws-route53resolver-resolverruleassociation.json", "aws-rum-appmonitor.json", "aws-s3-accessgrant.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..03475784a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53resolver-resolverrule.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/DomainName" + ], + "createOnlyProperties": [ + "/properties/RuleType" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "maxLength": 65535, + "minLength": 0, + "type": "string" + }, + "Protocol": { + "enum": [ + "Do53", + "DoH" + ], + "type": "string" + }, + "ServerNameIndication": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "ResolverEndpointId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "enum": [ + "FORWARD", + "SYSTEM", + "RECURSIVE", + "DELEGATE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DomainName": "$join([DomainName, \".\"]) $OR DomainName" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ResolverRuleId" + ], + "required": [ + "RuleType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53resolver.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py index 9412740329..089f62f285 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -654,6 +654,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1562,9 +1563,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1793,6 +1792,7 @@ "aws-kendra-faq.json", "aws-kendra-index.json", "aws-kendraranking-executionplan.json", + "aws-kinesis-resourcepolicy.json", "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-applicationoutput.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json index 941a6e9d2d..0558937133 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplicationversion.json @@ -9,7 +9,6 @@ ], "properties": { "Application": { - "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json index 4006f060f8..f9797ed8ae 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplicationversion.json @@ -9,7 +9,6 @@ ], "properties": { "Application": { - "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py index f8571e5350..e87d8c2e46 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -882,9 +882,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -950,7 +948,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -982,7 +979,6 @@ "aws-imagebuilder-lifecyclepolicy.json", "aws-imagebuilder-workflow.json", "aws-internetmonitor-monitor.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1036,7 +1032,6 @@ "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesis-stream.json similarity index 87% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-kinesis-stream.json rename to src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesis-stream.json index 45b4ce6a6b..be1bc65c07 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-kinesis-stream.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesis-stream.json @@ -1,5 +1,4 @@ { - "$comment": "Do not set SystemTags to true without implementing a fail-open mechanism. It should not fail when adding systemTags for customers without AddTagsToStream Permission. Cloudformation will automatically add system tags even if customer does not have the AddTagsToStream permission. COE: https://www.coe.a2z.com/coe/236297/content", "additionalProperties": false, "createOnlyProperties": [ "/properties/Name" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py index 15df36ee80..9835d65c89 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -690,6 +690,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1672,9 +1673,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1899,6 +1898,8 @@ "aws-kendra-faq.json", "aws-kendra-index.json", "aws-kendraranking-executionplan.json", + "aws-kinesis-resourcepolicy.json", + "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-application.json", "aws-kinesisanalytics-applicationoutput.json", @@ -2135,7 +2136,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -2144,7 +2144,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-dbcluster.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-dbcluster.json index 9748b231ac..46000178b5 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-dbcluster.json @@ -177,7 +177,6 @@ "type": "string" }, "DBClusterParameterGroupName": { - "default": "default.aurora5.6", "type": "string" }, "DBClusterResourceId": { @@ -265,7 +264,6 @@ "type": "string" }, "MonitoringInterval": { - "default": 0, "type": "integer" }, "MonitoringRoleArn": { @@ -305,7 +303,6 @@ "type": "string" }, "RestoreType": { - "default": "full-copy", "type": "string" }, "ScalingConfiguration": { @@ -356,7 +353,7 @@ "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", "/properties/Engine": "$lowercase(Engine)", "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-eventsubscription.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-dbsubnetgroup.json similarity index 62% rename from src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-eventsubscription.json rename to src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-dbsubnetgroup.json index 10fa51a2d0..d228afbbad 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-eventsubscription.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-dbsubnetgroup.json @@ -1,8 +1,7 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/SubscriptionName", - "/properties/SnsTopicArn" + "/properties/DBSubnetGroupName" ], "definitions": { "Tag": { @@ -26,37 +25,22 @@ } }, "primaryIdentifier": [ - "/properties/SubscriptionName" + "/properties/DBSubnetGroupName" ], "properties": { - "Enabled": { - "default": true, - "type": "boolean" - }, - "EventCategories": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true + "DBSubnetGroupDescription": { + "type": "string" }, - "SnsTopicArn": { + "DBSubnetGroupName": { "type": "string" }, - "SourceIds": { + "SubnetIds": { "insertionOrder": false, "items": { "type": "string" }, "type": "array", - "uniqueItems": true - }, - "SourceType": { - "type": "string" - }, - "SubscriptionName": { - "maxLength": 255, - "type": "string" + "uniqueItems": false }, "Tags": { "insertionOrder": false, @@ -69,11 +53,19 @@ } }, "propertyTransform": { - "/properties/SubscriptionName": "$lowercase(SubscriptionName)" + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" }, "required": [ - "SnsTopicArn" + "DBSubnetGroupDescription", + "SubnetIds" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::EventSubscription" + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py index 0f6c1043fb..db6b898b6f 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -711,6 +711,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1697,9 +1698,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1941,6 +1940,7 @@ "aws-kendra-faq.json", "aws-kendra-index.json", "aws-kendraranking-executionplan.json", + "aws-kinesis-resourcepolicy.json", "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-application.json", @@ -2029,14 +2029,12 @@ "aws-mediaconvert-jobtemplate.json", "aws-mediaconvert-preset.json", "aws-mediaconvert-queue.json", - "aws-medialive-channel.json", "aws-medialive-channelplacementgroup.json", "aws-medialive-cloudwatchalarmtemplate.json", "aws-medialive-cloudwatchalarmtemplategroup.json", "aws-medialive-cluster.json", "aws-medialive-eventbridgeruletemplate.json", "aws-medialive-eventbridgeruletemplategroup.json", - "aws-medialive-input.json", "aws-medialive-inputsecuritygroup.json", "aws-medialive-multiplex.json", "aws-medialive-multiplexprogram.json", @@ -2077,6 +2075,7 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", + "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -2236,7 +2235,6 @@ "aws-route53resolver-resolverendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-route53resolver-resolverrule.json", "aws-route53resolver-resolverruleassociation.json", "aws-rum-appmonitor.json", "aws-s3-accessgrant.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json new file mode 100644 index 0000000000..a6c907c033 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json @@ -0,0 +1,3591 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Vpc", + "/properties/AnywhereSettings" + ], + "definitions": { + "AacSettings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "InputType": { + "type": "string" + }, + "Profile": { + "type": "string" + }, + "RateControlMode": { + "type": "string" + }, + "RawFormat": { + "type": "string" + }, + "SampleRate": { + "type": "number" + }, + "Spec": { + "type": "string" + }, + "VbrQuality": { + "type": "string" + } + }, + "type": "object" + }, + "Ac3Settings": { + "additionalProperties": false, + "properties": { + "AttenuationControl": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BitstreamMode": { + "type": "string" + }, + "CodingMode": { + "type": "string" + }, + "Dialnorm": { + "type": "integer" + }, + "DrcProfile": { + "type": "string" + }, + "LfeFilter": { + "type": "string" + }, + "MetadataControl": { + "type": "string" + } + }, + "type": "object" + }, + "AncillarySourceSettings": { + "additionalProperties": false, + "properties": { + "SourceAncillaryChannelNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "AnywhereSettings": { + "additionalProperties": false, + "properties": { + "ChannelPlacementGroupId": { + "type": "string" + }, + "ClusterId": { + "type": "string" + } + }, + "type": "object" + }, + "ArchiveCdnSettings": { + "additionalProperties": false, + "properties": { + "ArchiveS3Settings": { + "$ref": "#/definitions/ArchiveS3Settings" + } + }, + "type": "object" + }, + "ArchiveContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/M2tsSettings" + }, + "RawSettings": { + "$ref": "#/definitions/RawSettings" + } + }, + "type": "object" + }, + "ArchiveGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveCdnSettings": { + "$ref": "#/definitions/ArchiveCdnSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "RolloverInterval": { + "type": "integer" + } + }, + "type": "object" + }, + "ArchiveOutputSettings": { + "additionalProperties": false, + "properties": { + "ContainerSettings": { + "$ref": "#/definitions/ArchiveContainerSettings" + }, + "Extension": { + "type": "string" + }, + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "ArchiveS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "AribDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AribSourceSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AudioChannelMapping": { + "additionalProperties": false, + "properties": { + "InputChannelLevels": { + "items": { + "$ref": "#/definitions/InputChannelLevel" + }, + "type": "array", + "uniqueItems": false + }, + "OutputChannel": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioCodecSettings": { + "additionalProperties": false, + "properties": { + "AacSettings": { + "$ref": "#/definitions/AacSettings" + }, + "Ac3Settings": { + "$ref": "#/definitions/Ac3Settings" + }, + "Eac3AtmosSettings": { + "$ref": "#/definitions/Eac3AtmosSettings" + }, + "Eac3Settings": { + "$ref": "#/definitions/Eac3Settings" + }, + "Mp2Settings": { + "$ref": "#/definitions/Mp2Settings" + }, + "PassThroughSettings": { + "$ref": "#/definitions/PassThroughSettings" + }, + "WavSettings": { + "$ref": "#/definitions/WavSettings" + } + }, + "type": "object" + }, + "AudioDescription": { + "additionalProperties": false, + "properties": { + "AudioDashRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AudioNormalizationSettings": { + "$ref": "#/definitions/AudioNormalizationSettings" + }, + "AudioSelectorName": { + "type": "string" + }, + "AudioType": { + "type": "string" + }, + "AudioTypeControl": { + "type": "string" + }, + "AudioWatermarkingSettings": { + "$ref": "#/definitions/AudioWatermarkSettings" + }, + "CodecSettings": { + "$ref": "#/definitions/AudioCodecSettings" + }, + "DvbDashAccessibility": { + "type": "string" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageCodeControl": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RemixSettings": { + "$ref": "#/definitions/RemixSettings" + }, + "StreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AudioDolbyEDecode": { + "additionalProperties": false, + "properties": { + "ProgramSelection": { + "type": "string" + } + }, + "type": "object" + }, + "AudioHlsRenditionSelection": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AudioLanguageSelection": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "type": "string" + }, + "LanguageSelectionPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AudioNormalizationSettings": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "AlgorithmControl": { + "type": "string" + }, + "TargetLkfs": { + "type": "number" + } + }, + "type": "object" + }, + "AudioOnlyHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioGroupId": { + "type": "string" + }, + "AudioOnlyImage": { + "$ref": "#/definitions/InputLocation" + }, + "AudioTrackType": { + "type": "string" + }, + "SegmentType": { + "type": "string" + } + }, + "type": "object" + }, + "AudioPidSelection": { + "additionalProperties": false, + "properties": { + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AudioSelectorSettings" + } + }, + "type": "object" + }, + "AudioSelectorSettings": { + "additionalProperties": false, + "properties": { + "AudioHlsRenditionSelection": { + "$ref": "#/definitions/AudioHlsRenditionSelection" + }, + "AudioLanguageSelection": { + "$ref": "#/definitions/AudioLanguageSelection" + }, + "AudioPidSelection": { + "$ref": "#/definitions/AudioPidSelection" + }, + "AudioTrackSelection": { + "$ref": "#/definitions/AudioTrackSelection" + } + }, + "type": "object" + }, + "AudioSilenceFailoverSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectorName": { + "type": "string" + }, + "AudioSilenceThresholdMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioTrack": { + "additionalProperties": false, + "properties": { + "Track": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioTrackSelection": { + "additionalProperties": false, + "properties": { + "DolbyEDecode": { + "$ref": "#/definitions/AudioDolbyEDecode" + }, + "Tracks": { + "items": { + "$ref": "#/definitions/AudioTrack" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "AudioWatermarkSettings": { + "additionalProperties": false, + "properties": { + "NielsenWatermarksSettings": { + "$ref": "#/definitions/NielsenWatermarksSettings" + } + }, + "type": "object" + }, + "AutomaticInputFailoverSettings": { + "additionalProperties": false, + "properties": { + "ErrorClearTimeMsec": { + "type": "integer" + }, + "FailoverConditions": { + "items": { + "$ref": "#/definitions/FailoverCondition" + }, + "type": "array", + "uniqueItems": false + }, + "InputPreference": { + "type": "string" + }, + "SecondaryInputId": { + "type": "string" + } + }, + "type": "object" + }, + "Av1ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/ColorSpacePassthroughSettings" + }, + "Hdr10Settings": { + "$ref": "#/definitions/Hdr10Settings" + }, + "Rec601Settings": { + "$ref": "#/definitions/Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/Rec709Settings" + } + }, + "type": "object" + }, + "Av1Settings": { + "additionalProperties": false, + "properties": { + "AfdSignaling": { + "type": "string" + }, + "BufSize": { + "type": "integer" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/Av1ColorSpaceSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "integer" + }, + "MinIInterval": { + "type": "integer" + }, + "ParDenominator": { + "type": "integer" + }, + "ParNumerator": { + "type": "integer" + }, + "QvbrQualityLevel": { + "type": "integer" + }, + "SceneChangeDetect": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + } + }, + "type": "object" + }, + "AvailBlanking": { + "additionalProperties": false, + "properties": { + "AvailBlankingImage": { + "$ref": "#/definitions/InputLocation" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AvailConfiguration": { + "additionalProperties": false, + "properties": { + "AvailSettings": { + "$ref": "#/definitions/AvailSettings" + }, + "Scte35SegmentationScope": { + "type": "string" + } + }, + "type": "object" + }, + "AvailSettings": { + "additionalProperties": false, + "properties": { + "Esam": { + "$ref": "#/definitions/Esam" + }, + "Scte35SpliceInsert": { + "$ref": "#/definitions/Scte35SpliceInsert" + }, + "Scte35TimeSignalApos": { + "$ref": "#/definitions/Scte35TimeSignalApos" + } + }, + "type": "object" + }, + "BandwidthReductionFilterSettings": { + "additionalProperties": false, + "properties": { + "PostFilterSharpening": { + "type": "string" + }, + "Strength": { + "type": "string" + } + }, + "type": "object" + }, + "BlackoutSlate": { + "additionalProperties": false, + "properties": { + "BlackoutSlateImage": { + "$ref": "#/definitions/InputLocation" + }, + "NetworkEndBlackout": { + "type": "string" + }, + "NetworkEndBlackoutImage": { + "$ref": "#/definitions/InputLocation" + }, + "NetworkId": { + "type": "string" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "BurnInDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "BackgroundColor": { + "type": "string" + }, + "BackgroundOpacity": { + "type": "integer" + }, + "Font": { + "$ref": "#/definitions/InputLocation" + }, + "FontColor": { + "type": "string" + }, + "FontOpacity": { + "type": "integer" + }, + "FontResolution": { + "type": "integer" + }, + "FontSize": { + "type": "string" + }, + "OutlineColor": { + "type": "string" + }, + "OutlineSize": { + "type": "integer" + }, + "ShadowColor": { + "type": "string" + }, + "ShadowOpacity": { + "type": "integer" + }, + "ShadowXOffset": { + "type": "integer" + }, + "ShadowYOffset": { + "type": "integer" + }, + "TeletextGridControl": { + "type": "string" + }, + "XPosition": { + "type": "integer" + }, + "YPosition": { + "type": "integer" + } + }, + "type": "object" + }, + "CaptionDescription": { + "additionalProperties": false, + "properties": { + "Accessibility": { + "type": "string" + }, + "CaptionDashRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionSelectorName": { + "type": "string" + }, + "DestinationSettings": { + "$ref": "#/definitions/CaptionDestinationSettings" + }, + "DvbDashAccessibility": { + "type": "string" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageDescription": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "CaptionDestinationSettings": { + "additionalProperties": false, + "properties": { + "AribDestinationSettings": { + "$ref": "#/definitions/AribDestinationSettings" + }, + "BurnInDestinationSettings": { + "$ref": "#/definitions/BurnInDestinationSettings" + }, + "DvbSubDestinationSettings": { + "$ref": "#/definitions/DvbSubDestinationSettings" + }, + "EbuTtDDestinationSettings": { + "$ref": "#/definitions/EbuTtDDestinationSettings" + }, + "EmbeddedDestinationSettings": { + "$ref": "#/definitions/EmbeddedDestinationSettings" + }, + "EmbeddedPlusScte20DestinationSettings": { + "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" + }, + "RtmpCaptionInfoDestinationSettings": { + "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" + }, + "Scte27DestinationSettings": { + "$ref": "#/definitions/Scte27DestinationSettings" + }, + "SmpteTtDestinationSettings": { + "$ref": "#/definitions/SmpteTtDestinationSettings" + }, + "TeletextDestinationSettings": { + "$ref": "#/definitions/TeletextDestinationSettings" + }, + "TtmlDestinationSettings": { + "$ref": "#/definitions/TtmlDestinationSettings" + }, + "WebvttDestinationSettings": { + "$ref": "#/definitions/WebvttDestinationSettings" + } + }, + "type": "object" + }, + "CaptionLanguageMapping": { + "additionalProperties": false, + "properties": { + "CaptionChannel": { + "type": "integer" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageDescription": { + "type": "string" + } + }, + "type": "object" + }, + "CaptionRectangle": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "number" + }, + "LeftOffset": { + "type": "number" + }, + "TopOffset": { + "type": "number" + }, + "Width": { + "type": "number" + } + }, + "type": "object" + }, + "CaptionSelector": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/CaptionSelectorSettings" + } + }, + "type": "object" + }, + "CaptionSelectorSettings": { + "additionalProperties": false, + "properties": { + "AncillarySourceSettings": { + "$ref": "#/definitions/AncillarySourceSettings" + }, + "AribSourceSettings": { + "$ref": "#/definitions/AribSourceSettings" + }, + "DvbSubSourceSettings": { + "$ref": "#/definitions/DvbSubSourceSettings" + }, + "EmbeddedSourceSettings": { + "$ref": "#/definitions/EmbeddedSourceSettings" + }, + "Scte20SourceSettings": { + "$ref": "#/definitions/Scte20SourceSettings" + }, + "Scte27SourceSettings": { + "$ref": "#/definitions/Scte27SourceSettings" + }, + "TeletextSourceSettings": { + "$ref": "#/definitions/TeletextSourceSettings" + } + }, + "type": "object" + }, + "CdiInputSpecification": { + "additionalProperties": false, + "properties": { + "Resolution": { + "type": "string" + } + }, + "type": "object" + }, + "CmafIngestGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "Scte35Type": { + "type": "string" + }, + "SegmentLength": { + "type": "integer" + }, + "SegmentLengthUnits": { + "type": "string" + }, + "SendDelayMs": { + "type": "integer" + } + }, + "type": "object" + }, + "CmafIngestOutputSettings": { + "additionalProperties": false, + "properties": { + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "ColorCorrection": { + "additionalProperties": false, + "properties": { + "InputColorSpace": { + "type": "string" + }, + "OutputColorSpace": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "ColorCorrectionSettings": { + "additionalProperties": false, + "properties": { + "GlobalColorCorrections": { + "items": { + "$ref": "#/definitions/ColorCorrection" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "ColorSpacePassthroughSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "DolbyVision81Settings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "DvbNitSettings": { + "additionalProperties": false, + "properties": { + "NetworkId": { + "type": "integer" + }, + "NetworkName": { + "type": "string" + }, + "RepInterval": { + "type": "integer" + } + }, + "type": "object" + }, + "DvbSdtSettings": { + "additionalProperties": false, + "properties": { + "OutputSdt": { + "type": "string" + }, + "RepInterval": { + "type": "integer" + }, + "ServiceName": { + "type": "string" + }, + "ServiceProviderName": { + "type": "string" + } + }, + "type": "object" + }, + "DvbSubDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "BackgroundColor": { + "type": "string" + }, + "BackgroundOpacity": { + "type": "integer" + }, + "Font": { + "$ref": "#/definitions/InputLocation" + }, + "FontColor": { + "type": "string" + }, + "FontOpacity": { + "type": "integer" + }, + "FontResolution": { + "type": "integer" + }, + "FontSize": { + "type": "string" + }, + "OutlineColor": { + "type": "string" + }, + "OutlineSize": { + "type": "integer" + }, + "ShadowColor": { + "type": "string" + }, + "ShadowOpacity": { + "type": "integer" + }, + "ShadowXOffset": { + "type": "integer" + }, + "ShadowYOffset": { + "type": "integer" + }, + "TeletextGridControl": { + "type": "string" + }, + "XPosition": { + "type": "integer" + }, + "YPosition": { + "type": "integer" + } + }, + "type": "object" + }, + "DvbSubSourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "type": "string" + }, + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "DvbTdtSettings": { + "additionalProperties": false, + "properties": { + "RepInterval": { + "type": "integer" + } + }, + "type": "object" + }, + "Eac3AtmosSettings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "Dialnorm": { + "type": "integer" + }, + "DrcLine": { + "type": "string" + }, + "DrcRf": { + "type": "string" + }, + "HeightTrim": { + "type": "number" + }, + "SurroundTrim": { + "type": "number" + } + }, + "type": "object" + }, + "Eac3Settings": { + "additionalProperties": false, + "properties": { + "AttenuationControl": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BitstreamMode": { + "type": "string" + }, + "CodingMode": { + "type": "string" + }, + "DcFilter": { + "type": "string" + }, + "Dialnorm": { + "type": "integer" + }, + "DrcLine": { + "type": "string" + }, + "DrcRf": { + "type": "string" + }, + "LfeControl": { + "type": "string" + }, + "LfeFilter": { + "type": "string" + }, + "LoRoCenterMixLevel": { + "type": "number" + }, + "LoRoSurroundMixLevel": { + "type": "number" + }, + "LtRtCenterMixLevel": { + "type": "number" + }, + "LtRtSurroundMixLevel": { + "type": "number" + }, + "MetadataControl": { + "type": "string" + }, + "PassthroughControl": { + "type": "string" + }, + "PhaseControl": { + "type": "string" + }, + "StereoDownmix": { + "type": "string" + }, + "SurroundExMode": { + "type": "string" + }, + "SurroundMode": { + "type": "string" + } + }, + "type": "object" + }, + "EbuTtDDestinationSettings": { + "additionalProperties": false, + "properties": { + "CopyrightHolder": { + "type": "string" + }, + "FillLineGap": { + "type": "string" + }, + "FontFamily": { + "type": "string" + }, + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "EmbeddedDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "EmbeddedPlusScte20DestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "EmbeddedSourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "type": "string" + }, + "Scte20Detection": { + "type": "string" + }, + "Source608ChannelNumber": { + "type": "integer" + }, + "Source608TrackNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "EncoderSettings": { + "additionalProperties": false, + "properties": { + "AudioDescriptions": { + "items": { + "$ref": "#/definitions/AudioDescription" + }, + "type": "array", + "uniqueItems": false + }, + "AvailBlanking": { + "$ref": "#/definitions/AvailBlanking" + }, + "AvailConfiguration": { + "$ref": "#/definitions/AvailConfiguration" + }, + "BlackoutSlate": { + "$ref": "#/definitions/BlackoutSlate" + }, + "CaptionDescriptions": { + "items": { + "$ref": "#/definitions/CaptionDescription" + }, + "type": "array", + "uniqueItems": false + }, + "ColorCorrectionSettings": { + "$ref": "#/definitions/ColorCorrectionSettings" + }, + "FeatureActivations": { + "$ref": "#/definitions/FeatureActivations" + }, + "GlobalConfiguration": { + "$ref": "#/definitions/GlobalConfiguration" + }, + "MotionGraphicsConfiguration": { + "$ref": "#/definitions/MotionGraphicsConfiguration" + }, + "NielsenConfiguration": { + "$ref": "#/definitions/NielsenConfiguration" + }, + "OutputGroups": { + "items": { + "$ref": "#/definitions/OutputGroup" + }, + "type": "array", + "uniqueItems": false + }, + "ThumbnailConfiguration": { + "$ref": "#/definitions/ThumbnailConfiguration" + }, + "TimecodeConfig": { + "$ref": "#/definitions/TimecodeConfig" + }, + "VideoDescriptions": { + "items": { + "$ref": "#/definitions/VideoDescription" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EpochLockingSettings": { + "additionalProperties": false, + "properties": { + "CustomEpoch": { + "type": "string" + }, + "JamSyncTime": { + "type": "string" + } + }, + "type": "object" + }, + "Esam": { + "additionalProperties": false, + "properties": { + "AcquisitionPointId": { + "type": "string" + }, + "AdAvailOffset": { + "type": "integer" + }, + "PasswordParam": { + "type": "string" + }, + "PoisEndpoint": { + "type": "string" + }, + "Username": { + "type": "string" + }, + "ZoneIdentity": { + "type": "string" + } + }, + "type": "object" + }, + "FailoverCondition": { + "additionalProperties": false, + "properties": { + "FailoverConditionSettings": { + "$ref": "#/definitions/FailoverConditionSettings" + } + }, + "type": "object" + }, + "FailoverConditionSettings": { + "additionalProperties": false, + "properties": { + "AudioSilenceSettings": { + "$ref": "#/definitions/AudioSilenceFailoverSettings" + }, + "InputLossSettings": { + "$ref": "#/definitions/InputLossFailoverSettings" + }, + "VideoBlackSettings": { + "$ref": "#/definitions/VideoBlackFailoverSettings" + } + }, + "type": "object" + }, + "FeatureActivations": { + "additionalProperties": false, + "properties": { + "InputPrepareScheduleActions": { + "type": "string" + }, + "OutputStaticImageOverlayScheduleActions": { + "type": "string" + } + }, + "type": "object" + }, + "FecOutputSettings": { + "additionalProperties": false, + "properties": { + "ColumnDepth": { + "type": "integer" + }, + "IncludeFec": { + "type": "string" + }, + "RowLength": { + "type": "integer" + } + }, + "type": "object" + }, + "Fmp4HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "TimedMetadataBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "FrameCaptureCdnSettings": { + "additionalProperties": false, + "properties": { + "FrameCaptureS3Settings": { + "$ref": "#/definitions/FrameCaptureS3Settings" + } + }, + "type": "object" + }, + "FrameCaptureGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "FrameCaptureCdnSettings": { + "$ref": "#/definitions/FrameCaptureCdnSettings" + } + }, + "type": "object" + }, + "FrameCaptureHlsSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "FrameCaptureOutputSettings": { + "additionalProperties": false, + "properties": { + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "FrameCaptureS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "FrameCaptureSettings": { + "additionalProperties": false, + "properties": { + "CaptureInterval": { + "type": "integer" + }, + "CaptureIntervalUnits": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + } + }, + "type": "object" + }, + "GlobalConfiguration": { + "additionalProperties": false, + "properties": { + "InitialAudioGain": { + "type": "integer" + }, + "InputEndAction": { + "type": "string" + }, + "InputLossBehavior": { + "$ref": "#/definitions/InputLossBehavior" + }, + "OutputLockingMode": { + "type": "string" + }, + "OutputLockingSettings": { + "$ref": "#/definitions/OutputLockingSettings" + }, + "OutputTimingSource": { + "type": "string" + }, + "SupportLowFramerateInputs": { + "type": "string" + } + }, + "type": "object" + }, + "H264ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/ColorSpacePassthroughSettings" + }, + "Rec601Settings": { + "$ref": "#/definitions/Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/Rec709Settings" + } + }, + "type": "object" + }, + "H264FilterSettings": { + "additionalProperties": false, + "properties": { + "BandwidthReductionFilterSettings": { + "$ref": "#/definitions/BandwidthReductionFilterSettings" + }, + "TemporalFilterSettings": { + "$ref": "#/definitions/TemporalFilterSettings" + } + }, + "type": "object" + }, + "H264Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "Bitrate": { + "type": "integer" + }, + "BufFillPct": { + "type": "integer" + }, + "BufSize": { + "type": "integer" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/H264ColorSpaceSettings" + }, + "EntropyEncoding": { + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/H264FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FlickerAq": { + "type": "string" + }, + "ForceFieldPictures": { + "type": "string" + }, + "FramerateControl": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopBReference": { + "type": "string" + }, + "GopClosedCadence": { + "type": "integer" + }, + "GopNumBFrames": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "integer" + }, + "MinIInterval": { + "type": "integer" + }, + "MinQp": { + "type": "integer" + }, + "NumRefFrames": { + "type": "integer" + }, + "ParControl": { + "type": "string" + }, + "ParDenominator": { + "type": "integer" + }, + "ParNumerator": { + "type": "integer" + }, + "Profile": { + "type": "string" + }, + "QualityLevel": { + "type": "string" + }, + "QvbrQualityLevel": { + "type": "integer" + }, + "RateControlMode": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SceneChangeDetect": { + "type": "string" + }, + "Slices": { + "type": "integer" + }, + "Softness": { + "type": "integer" + }, + "SpatialAq": { + "type": "string" + }, + "SubgopLength": { + "type": "string" + }, + "Syntax": { + "type": "string" + }, + "TemporalAq": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "H265ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/ColorSpacePassthroughSettings" + }, + "DolbyVision81Settings": { + "$ref": "#/definitions/DolbyVision81Settings" + }, + "Hdr10Settings": { + "$ref": "#/definitions/Hdr10Settings" + }, + "Rec601Settings": { + "$ref": "#/definitions/Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/Rec709Settings" + } + }, + "type": "object" + }, + "H265FilterSettings": { + "additionalProperties": false, + "properties": { + "BandwidthReductionFilterSettings": { + "$ref": "#/definitions/BandwidthReductionFilterSettings" + }, + "TemporalFilterSettings": { + "$ref": "#/definitions/TemporalFilterSettings" + } + }, + "type": "object" + }, + "H265Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "AlternativeTransferFunction": { + "type": "string" + }, + "Bitrate": { + "type": "integer" + }, + "BufSize": { + "type": "integer" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/H265ColorSpaceSettings" + }, + "FilterSettings": { + "$ref": "#/definitions/H265FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FlickerAq": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopClosedCadence": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "integer" + }, + "MinIInterval": { + "type": "integer" + }, + "MinQp": { + "type": "integer" + }, + "MvOverPictureBoundaries": { + "type": "string" + }, + "MvTemporalPredictor": { + "type": "string" + }, + "ParDenominator": { + "type": "integer" + }, + "ParNumerator": { + "type": "integer" + }, + "Profile": { + "type": "string" + }, + "QvbrQualityLevel": { + "type": "integer" + }, + "RateControlMode": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SceneChangeDetect": { + "type": "string" + }, + "Slices": { + "type": "integer" + }, + "Tier": { + "type": "string" + }, + "TileHeight": { + "type": "integer" + }, + "TilePadding": { + "type": "string" + }, + "TileWidth": { + "type": "integer" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + }, + "TimecodeInsertion": { + "type": "string" + }, + "TreeblockSize": { + "type": "string" + } + }, + "type": "object" + }, + "Hdr10Settings": { + "additionalProperties": false, + "properties": { + "MaxCll": { + "type": "integer" + }, + "MaxFall": { + "type": "integer" + } + }, + "type": "object" + }, + "HlsAkamaiSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "HttpTransferMode": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + }, + "Salt": { + "type": "string" + }, + "Token": { + "type": "string" + } + }, + "type": "object" + }, + "HlsBasicPutSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "HlsCdnSettings": { + "additionalProperties": false, + "properties": { + "HlsAkamaiSettings": { + "$ref": "#/definitions/HlsAkamaiSettings" + }, + "HlsBasicPutSettings": { + "$ref": "#/definitions/HlsBasicPutSettings" + }, + "HlsMediaStoreSettings": { + "$ref": "#/definitions/HlsMediaStoreSettings" + }, + "HlsS3Settings": { + "$ref": "#/definitions/HlsS3Settings" + }, + "HlsWebdavSettings": { + "$ref": "#/definitions/HlsWebdavSettings" + } + }, + "type": "object" + }, + "HlsGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "BaseUrlContent": { + "type": "string" + }, + "BaseUrlContent1": { + "type": "string" + }, + "BaseUrlManifest": { + "type": "string" + }, + "BaseUrlManifest1": { + "type": "string" + }, + "CaptionLanguageMappings": { + "items": { + "$ref": "#/definitions/CaptionLanguageMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionLanguageSetting": { + "type": "string" + }, + "ClientCache": { + "type": "string" + }, + "CodecSpecification": { + "type": "string" + }, + "ConstantIv": { + "type": "string" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "DirectoryStructure": { + "type": "string" + }, + "DiscontinuityTags": { + "type": "string" + }, + "EncryptionType": { + "type": "string" + }, + "HlsCdnSettings": { + "$ref": "#/definitions/HlsCdnSettings" + }, + "HlsId3SegmentTagging": { + "type": "string" + }, + "IFrameOnlyPlaylists": { + "type": "string" + }, + "IncompleteSegmentBehavior": { + "type": "string" + }, + "IndexNSegments": { + "type": "integer" + }, + "InputLossAction": { + "type": "string" + }, + "IvInManifest": { + "type": "string" + }, + "IvSource": { + "type": "string" + }, + "KeepSegments": { + "type": "integer" + }, + "KeyFormat": { + "type": "string" + }, + "KeyFormatVersions": { + "type": "string" + }, + "KeyProviderSettings": { + "$ref": "#/definitions/KeyProviderSettings" + }, + "ManifestCompression": { + "type": "string" + }, + "ManifestDurationFormat": { + "type": "string" + }, + "MinSegmentLength": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "OutputSelection": { + "type": "string" + }, + "ProgramDateTime": { + "type": "string" + }, + "ProgramDateTimeClock": { + "type": "string" + }, + "ProgramDateTimePeriod": { + "type": "integer" + }, + "RedundantManifest": { + "type": "string" + }, + "SegmentLength": { + "type": "integer" + }, + "SegmentationMode": { + "type": "string" + }, + "SegmentsPerSubdirectory": { + "type": "integer" + }, + "StreamInfResolution": { + "type": "string" + }, + "TimedMetadataId3Frame": { + "type": "string" + }, + "TimedMetadataId3Period": { + "type": "integer" + }, + "TimestampDeltaMilliseconds": { + "type": "integer" + }, + "TsFileMode": { + "type": "string" + } + }, + "type": "object" + }, + "HlsInputSettings": { + "additionalProperties": false, + "properties": { + "Bandwidth": { + "type": "integer" + }, + "BufferSegments": { + "type": "integer" + }, + "Retries": { + "type": "integer" + }, + "RetryInterval": { + "type": "integer" + }, + "Scte35Source": { + "type": "string" + } + }, + "type": "object" + }, + "HlsMediaStoreSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "MediaStoreStorageClass": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "HlsOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "type": "string" + }, + "HlsSettings": { + "$ref": "#/definitions/HlsSettings" + }, + "NameModifier": { + "type": "string" + }, + "SegmentModifier": { + "type": "string" + } + }, + "type": "object" + }, + "HlsS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioOnlyHlsSettings": { + "$ref": "#/definitions/AudioOnlyHlsSettings" + }, + "Fmp4HlsSettings": { + "$ref": "#/definitions/Fmp4HlsSettings" + }, + "FrameCaptureHlsSettings": { + "$ref": "#/definitions/FrameCaptureHlsSettings" + }, + "StandardHlsSettings": { + "$ref": "#/definitions/StandardHlsSettings" + } + }, + "type": "object" + }, + "HlsWebdavSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "HttpTransferMode": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "HtmlMotionGraphicsSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "InputAttachment": { + "additionalProperties": false, + "properties": { + "AutomaticInputFailoverSettings": { + "$ref": "#/definitions/AutomaticInputFailoverSettings" + }, + "InputAttachmentName": { + "type": "string" + }, + "InputId": { + "type": "string" + }, + "InputSettings": { + "$ref": "#/definitions/InputSettings" + }, + "LogicalInterfaceNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "InputChannelLevel": { + "additionalProperties": false, + "properties": { + "Gain": { + "type": "integer" + }, + "InputChannel": { + "type": "integer" + } + }, + "type": "object" + }, + "InputLocation": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "Uri": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "InputLossBehavior": { + "additionalProperties": false, + "properties": { + "BlackFrameMsec": { + "type": "integer" + }, + "InputLossImageColor": { + "type": "string" + }, + "InputLossImageSlate": { + "$ref": "#/definitions/InputLocation" + }, + "InputLossImageType": { + "type": "string" + }, + "RepeatFrameMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "InputLossFailoverSettings": { + "additionalProperties": false, + "properties": { + "InputLossThresholdMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "InputSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectors": { + "items": { + "$ref": "#/definitions/AudioSelector" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionSelectors": { + "items": { + "$ref": "#/definitions/CaptionSelector" + }, + "type": "array", + "uniqueItems": false + }, + "DeblockFilter": { + "type": "string" + }, + "DenoiseFilter": { + "type": "string" + }, + "FilterStrength": { + "type": "integer" + }, + "InputFilter": { + "type": "string" + }, + "NetworkInputSettings": { + "$ref": "#/definitions/NetworkInputSettings" + }, + "Scte35Pid": { + "type": "integer" + }, + "Smpte2038DataPreference": { + "type": "string" + }, + "SourceEndBehavior": { + "type": "string" + }, + "VideoSelector": { + "$ref": "#/definitions/VideoSelector" + } + }, + "type": "object" + }, + "InputSpecification": { + "additionalProperties": false, + "properties": { + "Codec": { + "type": "string" + }, + "MaximumBitrate": { + "type": "string" + }, + "Resolution": { + "type": "string" + } + }, + "type": "object" + }, + "KeyProviderSettings": { + "additionalProperties": false, + "properties": { + "StaticKeySettings": { + "$ref": "#/definitions/StaticKeySettings" + } + }, + "type": "object" + }, + "M2tsSettings": { + "additionalProperties": false, + "properties": { + "AbsentInputAudioBehavior": { + "type": "string" + }, + "Arib": { + "type": "string" + }, + "AribCaptionsPid": { + "type": "string" + }, + "AribCaptionsPidControl": { + "type": "string" + }, + "AudioBufferModel": { + "type": "string" + }, + "AudioFramesPerPes": { + "type": "integer" + }, + "AudioPids": { + "type": "string" + }, + "AudioStreamType": { + "type": "string" + }, + "Bitrate": { + "type": "integer" + }, + "BufferModel": { + "type": "string" + }, + "CcDescriptor": { + "type": "string" + }, + "DvbNitSettings": { + "$ref": "#/definitions/DvbNitSettings" + }, + "DvbSdtSettings": { + "$ref": "#/definitions/DvbSdtSettings" + }, + "DvbSubPids": { + "type": "string" + }, + "DvbTdtSettings": { + "$ref": "#/definitions/DvbTdtSettings" + }, + "DvbTeletextPid": { + "type": "string" + }, + "Ebif": { + "type": "string" + }, + "EbpAudioInterval": { + "type": "string" + }, + "EbpLookaheadMs": { + "type": "integer" + }, + "EbpPlacement": { + "type": "string" + }, + "EcmPid": { + "type": "string" + }, + "EsRateInPes": { + "type": "string" + }, + "EtvPlatformPid": { + "type": "string" + }, + "EtvSignalPid": { + "type": "string" + }, + "FragmentTime": { + "type": "number" + }, + "Klv": { + "type": "string" + }, + "KlvDataPids": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "NullPacketBitrate": { + "type": "number" + }, + "PatInterval": { + "type": "integer" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "integer" + }, + "PcrPid": { + "type": "string" + }, + "PmtInterval": { + "type": "integer" + }, + "PmtPid": { + "type": "string" + }, + "ProgramNum": { + "type": "integer" + }, + "RateMode": { + "type": "string" + }, + "Scte27Pids": { + "type": "string" + }, + "Scte35Control": { + "type": "string" + }, + "Scte35Pid": { + "type": "string" + }, + "Scte35PrerollPullupMilliseconds": { + "type": "number" + }, + "SegmentationMarkers": { + "type": "string" + }, + "SegmentationStyle": { + "type": "string" + }, + "SegmentationTime": { + "type": "number" + }, + "TimedMetadataBehavior": { + "type": "string" + }, + "TimedMetadataPid": { + "type": "string" + }, + "TransportStreamId": { + "type": "integer" + }, + "VideoPid": { + "type": "string" + } + }, + "type": "object" + }, + "M3u8Settings": { + "additionalProperties": false, + "properties": { + "AudioFramesPerPes": { + "type": "integer" + }, + "AudioPids": { + "type": "string" + }, + "EcmPid": { + "type": "string" + }, + "KlvBehavior": { + "type": "string" + }, + "KlvDataPids": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "PatInterval": { + "type": "integer" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "integer" + }, + "PcrPid": { + "type": "string" + }, + "PmtInterval": { + "type": "integer" + }, + "PmtPid": { + "type": "string" + }, + "ProgramNum": { + "type": "integer" + }, + "Scte35Behavior": { + "type": "string" + }, + "Scte35Pid": { + "type": "string" + }, + "TimedMetadataBehavior": { + "type": "string" + }, + "TimedMetadataPid": { + "type": "string" + }, + "TransportStreamId": { + "type": "integer" + }, + "VideoPid": { + "type": "string" + } + }, + "type": "object" + }, + "MaintenanceCreateSettings": { + "additionalProperties": false, + "properties": { + "MaintenanceDay": { + "type": "string" + }, + "MaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "MediaPackageGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + } + }, + "type": "object" + }, + "MediaPackageOutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + } + }, + "type": "object" + }, + "MediaPackageOutputSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "MotionGraphicsConfiguration": { + "additionalProperties": false, + "properties": { + "MotionGraphicsInsertion": { + "type": "string" + }, + "MotionGraphicsSettings": { + "$ref": "#/definitions/MotionGraphicsSettings" + } + }, + "type": "object" + }, + "MotionGraphicsSettings": { + "additionalProperties": false, + "properties": { + "HtmlMotionGraphicsSettings": { + "$ref": "#/definitions/HtmlMotionGraphicsSettings" + } + }, + "type": "object" + }, + "Mp2Settings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "SampleRate": { + "type": "number" + } + }, + "type": "object" + }, + "Mpeg2FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/TemporalFilterSettings" + } + }, + "type": "object" + }, + "Mpeg2Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpace": { + "type": "string" + }, + "DisplayAspectRatio": { + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/Mpeg2FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopClosedCadence": { + "type": "integer" + }, + "GopNumBFrames": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SubgopLength": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "MsSmoothGroupSettings": { + "additionalProperties": false, + "properties": { + "AcquisitionPointId": { + "type": "string" + }, + "AudioOnlyTimecodeControl": { + "type": "string" + }, + "CertificateMode": { + "type": "string" + }, + "ConnectionRetryInterval": { + "type": "integer" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "EventId": { + "type": "string" + }, + "EventIdMode": { + "type": "string" + }, + "EventStopBehavior": { + "type": "string" + }, + "FilecacheDuration": { + "type": "integer" + }, + "FragmentLength": { + "type": "integer" + }, + "InputLossAction": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + }, + "SegmentationMode": { + "type": "string" + }, + "SendDelayMs": { + "type": "integer" + }, + "SparseTrackType": { + "type": "string" + }, + "StreamManifestBehavior": { + "type": "string" + }, + "TimestampOffset": { + "type": "string" + }, + "TimestampOffsetMode": { + "type": "string" + } + }, + "type": "object" + }, + "MsSmoothOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "type": "string" + }, + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "MulticastInputSettings": { + "additionalProperties": false, + "properties": { + "SourceIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "MultiplexContainerSettings": { + "additionalProperties": false, + "properties": { + "MultiplexM2tsSettings": { + "$ref": "#/definitions/MultiplexM2tsSettings" + } + }, + "type": "object" + }, + "MultiplexGroupSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "MultiplexM2tsSettings": { + "additionalProperties": false, + "properties": { + "AbsentInputAudioBehavior": { + "type": "string" + }, + "Arib": { + "type": "string" + }, + "AudioBufferModel": { + "type": "string" + }, + "AudioFramesPerPes": { + "type": "integer" + }, + "AudioStreamType": { + "type": "string" + }, + "CcDescriptor": { + "type": "string" + }, + "Ebif": { + "type": "string" + }, + "EsRateInPes": { + "type": "string" + }, + "Klv": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "integer" + }, + "Scte35Control": { + "type": "string" + }, + "Scte35PrerollPullupMilliseconds": { + "type": "number" + } + }, + "type": "object" + }, + "MultiplexOutputSettings": { + "additionalProperties": false, + "properties": { + "ContainerSettings": { + "$ref": "#/definitions/MultiplexContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + } + }, + "type": "object" + }, + "MultiplexProgramChannelDestinationSettings": { + "additionalProperties": false, + "properties": { + "MultiplexId": { + "type": "string" + }, + "ProgramName": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkInputSettings": { + "additionalProperties": false, + "properties": { + "HlsInputSettings": { + "$ref": "#/definitions/HlsInputSettings" + }, + "MulticastInputSettings": { + "$ref": "#/definitions/MulticastInputSettings" + }, + "ServerValidation": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenCBET": { + "additionalProperties": false, + "properties": { + "CbetCheckDigitString": { + "type": "string" + }, + "CbetStepaside": { + "type": "string" + }, + "Csid": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenConfiguration": { + "additionalProperties": false, + "properties": { + "DistributorId": { + "type": "string" + }, + "NielsenPcmToId3Tagging": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenNaesIiNw": { + "additionalProperties": false, + "properties": { + "CheckDigitString": { + "type": "string" + }, + "Sid": { + "type": "number" + }, + "Timezone": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenWatermarksSettings": { + "additionalProperties": false, + "properties": { + "NielsenCbetSettings": { + "$ref": "#/definitions/NielsenCBET" + }, + "NielsenDistributionType": { + "type": "string" + }, + "NielsenNaesIiNwSettings": { + "$ref": "#/definitions/NielsenNaesIiNw" + } + }, + "type": "object" + }, + "Output": { + "additionalProperties": false, + "properties": { + "AudioDescriptionNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionDescriptionNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "OutputName": { + "type": "string" + }, + "OutputSettings": { + "$ref": "#/definitions/OutputSettings" + }, + "VideoDescriptionName": { + "type": "string" + } + }, + "type": "object" + }, + "OutputDestination": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "MediaPackageSettings": { + "items": { + "$ref": "#/definitions/MediaPackageOutputDestinationSettings" + }, + "type": "array", + "uniqueItems": false + }, + "MultiplexSettings": { + "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" + }, + "Settings": { + "items": { + "$ref": "#/definitions/OutputDestinationSettings" + }, + "type": "array", + "uniqueItems": false + }, + "SrtSettings": { + "items": { + "$ref": "#/definitions/SrtOutputDestinationSettings" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "StreamName": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "OutputGroup": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "OutputGroupSettings": { + "$ref": "#/definitions/OutputGroupSettings" + }, + "Outputs": { + "items": { + "$ref": "#/definitions/Output" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OutputGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveGroupSettings": { + "$ref": "#/definitions/ArchiveGroupSettings" + }, + "CmafIngestGroupSettings": { + "$ref": "#/definitions/CmafIngestGroupSettings" + }, + "FrameCaptureGroupSettings": { + "$ref": "#/definitions/FrameCaptureGroupSettings" + }, + "HlsGroupSettings": { + "$ref": "#/definitions/HlsGroupSettings" + }, + "MediaPackageGroupSettings": { + "$ref": "#/definitions/MediaPackageGroupSettings" + }, + "MsSmoothGroupSettings": { + "$ref": "#/definitions/MsSmoothGroupSettings" + }, + "MultiplexGroupSettings": { + "$ref": "#/definitions/MultiplexGroupSettings" + }, + "RtmpGroupSettings": { + "$ref": "#/definitions/RtmpGroupSettings" + }, + "SrtGroupSettings": { + "$ref": "#/definitions/SrtGroupSettings" + }, + "UdpGroupSettings": { + "$ref": "#/definitions/UdpGroupSettings" + } + }, + "type": "object" + }, + "OutputLocationRef": { + "additionalProperties": false, + "properties": { + "DestinationRefId": { + "type": "string" + } + }, + "type": "object" + }, + "OutputLockingSettings": { + "additionalProperties": false, + "properties": { + "EpochLockingSettings": { + "$ref": "#/definitions/EpochLockingSettings" + }, + "PipelineLockingSettings": { + "$ref": "#/definitions/PipelineLockingSettings" + } + }, + "type": "object" + }, + "OutputSettings": { + "additionalProperties": false, + "properties": { + "ArchiveOutputSettings": { + "$ref": "#/definitions/ArchiveOutputSettings" + }, + "CmafIngestOutputSettings": { + "$ref": "#/definitions/CmafIngestOutputSettings" + }, + "FrameCaptureOutputSettings": { + "$ref": "#/definitions/FrameCaptureOutputSettings" + }, + "HlsOutputSettings": { + "$ref": "#/definitions/HlsOutputSettings" + }, + "MediaPackageOutputSettings": { + "$ref": "#/definitions/MediaPackageOutputSettings" + }, + "MsSmoothOutputSettings": { + "$ref": "#/definitions/MsSmoothOutputSettings" + }, + "MultiplexOutputSettings": { + "$ref": "#/definitions/MultiplexOutputSettings" + }, + "RtmpOutputSettings": { + "$ref": "#/definitions/RtmpOutputSettings" + }, + "SrtOutputSettings": { + "$ref": "#/definitions/SrtOutputSettings" + }, + "UdpOutputSettings": { + "$ref": "#/definitions/UdpOutputSettings" + } + }, + "type": "object" + }, + "PassThroughSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PipelineLockingSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RawSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Rec601Settings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Rec709Settings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RemixSettings": { + "additionalProperties": false, + "properties": { + "ChannelMappings": { + "items": { + "$ref": "#/definitions/AudioChannelMapping" + }, + "type": "array", + "uniqueItems": false + }, + "ChannelsIn": { + "type": "integer" + }, + "ChannelsOut": { + "type": "integer" + } + }, + "type": "object" + }, + "RtmpCaptionInfoDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RtmpGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AuthenticationScheme": { + "type": "string" + }, + "CacheFullBehavior": { + "type": "string" + }, + "CacheLength": { + "type": "integer" + }, + "CaptionData": { + "type": "string" + }, + "IncludeFillerNalUnits": { + "type": "string" + }, + "InputLossAction": { + "type": "string" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "RtmpOutputSettings": { + "additionalProperties": false, + "properties": { + "CertificateMode": { + "type": "string" + }, + "ConnectionRetryInterval": { + "type": "integer" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "NumRetries": { + "type": "integer" + } + }, + "type": "object" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Scte20SourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "type": "string" + }, + "Source608ChannelNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "Scte27DestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Scte27SourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "type": "string" + }, + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "Scte35SpliceInsert": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "type": "integer" + }, + "NoRegionalBlackoutFlag": { + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "type": "string" + } + }, + "type": "object" + }, + "Scte35TimeSignalApos": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "type": "integer" + }, + "NoRegionalBlackoutFlag": { + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "type": "string" + } + }, + "type": "object" + }, + "SmpteTtDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SrtGroupSettings": { + "additionalProperties": false, + "properties": { + "InputLossAction": { + "type": "string" + } + }, + "type": "object" + }, + "SrtOutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "EncryptionPassphraseSecretArn": { + "type": "string" + }, + "StreamId": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "SrtOutputSettings": { + "additionalProperties": false, + "properties": { + "BufferMsec": { + "type": "integer" + }, + "ContainerSettings": { + "$ref": "#/definitions/UdpContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "EncryptionType": { + "type": "string" + }, + "Latency": { + "type": "integer" + } + }, + "type": "object" + }, + "StandardHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "type": "string" + }, + "M3u8Settings": { + "$ref": "#/definitions/M3u8Settings" + } + }, + "type": "object" + }, + "StaticKeySettings": { + "additionalProperties": false, + "properties": { + "KeyProviderServer": { + "$ref": "#/definitions/InputLocation" + }, + "StaticKeyValue": { + "type": "string" + } + }, + "type": "object" + }, + "TeletextDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TeletextSourceSettings": { + "additionalProperties": false, + "properties": { + "OutputRectangle": { + "$ref": "#/definitions/CaptionRectangle" + }, + "PageNumber": { + "type": "string" + } + }, + "type": "object" + }, + "TemporalFilterSettings": { + "additionalProperties": false, + "properties": { + "PostFilterSharpening": { + "type": "string" + }, + "Strength": { + "type": "string" + } + }, + "type": "object" + }, + "ThumbnailConfiguration": { + "additionalProperties": false, + "properties": { + "State": { + "type": "string" + } + }, + "type": "object" + }, + "TimecodeBurninSettings": { + "additionalProperties": false, + "properties": { + "FontSize": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "type": "object" + }, + "TimecodeConfig": { + "additionalProperties": false, + "properties": { + "Source": { + "type": "string" + }, + "SyncThreshold": { + "type": "integer" + } + }, + "type": "object" + }, + "TtmlDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "UdpContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/M2tsSettings" + } + }, + "type": "object" + }, + "UdpGroupSettings": { + "additionalProperties": false, + "properties": { + "InputLossAction": { + "type": "string" + }, + "TimedMetadataId3Frame": { + "type": "string" + }, + "TimedMetadataId3Period": { + "type": "integer" + } + }, + "type": "object" + }, + "UdpOutputSettings": { + "additionalProperties": false, + "properties": { + "BufferMsec": { + "type": "integer" + }, + "ContainerSettings": { + "$ref": "#/definitions/UdpContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "FecOutputSettings": { + "$ref": "#/definitions/FecOutputSettings" + } + }, + "type": "object" + }, + "VideoBlackFailoverSettings": { + "additionalProperties": false, + "properties": { + "BlackDetectThreshold": { + "type": "number" + }, + "VideoBlackThresholdMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoCodecSettings": { + "additionalProperties": false, + "properties": { + "Av1Settings": { + "$ref": "#/definitions/Av1Settings" + }, + "FrameCaptureSettings": { + "$ref": "#/definitions/FrameCaptureSettings" + }, + "H264Settings": { + "$ref": "#/definitions/H264Settings" + }, + "H265Settings": { + "$ref": "#/definitions/H265Settings" + }, + "Mpeg2Settings": { + "$ref": "#/definitions/Mpeg2Settings" + } + }, + "type": "object" + }, + "VideoDescription": { + "additionalProperties": false, + "properties": { + "CodecSettings": { + "$ref": "#/definitions/VideoCodecSettings" + }, + "Height": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "RespondToAfd": { + "type": "string" + }, + "ScalingBehavior": { + "type": "string" + }, + "Sharpness": { + "type": "integer" + }, + "Width": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoSelector": { + "additionalProperties": false, + "properties": { + "ColorSpace": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/VideoSelectorColorSpaceSettings" + }, + "ColorSpaceUsage": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/VideoSelectorSettings" + } + }, + "type": "object" + }, + "VideoSelectorColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "Hdr10Settings": { + "$ref": "#/definitions/Hdr10Settings" + } + }, + "type": "object" + }, + "VideoSelectorPid": { + "additionalProperties": false, + "properties": { + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoSelectorProgramId": { + "additionalProperties": false, + "properties": { + "ProgramId": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoSelectorSettings": { + "additionalProperties": false, + "properties": { + "VideoSelectorPid": { + "$ref": "#/definitions/VideoSelectorPid" + }, + "VideoSelectorProgramId": { + "$ref": "#/definitions/VideoSelectorProgramId" + } + }, + "type": "object" + }, + "VpcOutputSettings": { + "additionalProperties": false, + "properties": { + "PublicAddressAllocationIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "WavSettings": { + "additionalProperties": false, + "properties": { + "BitDepth": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "SampleRate": { + "type": "number" + } + }, + "type": "object" + }, + "WebvttDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AnywhereSettings": { + "$ref": "#/definitions/AnywhereSettings" + }, + "Arn": { + "type": "string" + }, + "CdiInputSpecification": { + "$ref": "#/definitions/CdiInputSpecification" + }, + "ChannelClass": { + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/OutputDestination" + }, + "type": "array", + "uniqueItems": false + }, + "EncoderSettings": { + "$ref": "#/definitions/EncoderSettings" + }, + "Id": { + "type": "string" + }, + "InputAttachments": { + "items": { + "$ref": "#/definitions/InputAttachment" + }, + "type": "array", + "uniqueItems": false + }, + "InputSpecification": { + "$ref": "#/definitions/InputSpecification" + }, + "Inputs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LogLevel": { + "type": "string" + }, + "Maintenance": { + "$ref": "#/definitions/MaintenanceCreateSettings" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Vpc": { + "$ref": "#/definitions/VpcOutputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Inputs", + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::MediaLive::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-input.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-input.json new file mode 100644 index 0000000000..da0d73a7e8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-input.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Vpc", + "/properties/Type", + "/properties/InputNetworkLocation" + ], + "definitions": { + "InputDestinationRequest": { + "additionalProperties": false, + "properties": { + "Network": { + "type": "string" + }, + "NetworkRoutes": { + "items": { + "$ref": "#/definitions/InputRequestDestinationRoute" + }, + "type": "array", + "uniqueItems": false + }, + "StaticIpAddress": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "type": "object" + }, + "InputDeviceSettings": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + } + }, + "type": "object" + }, + "InputRequestDestinationRoute": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Gateway": { + "type": "string" + } + }, + "type": "object" + }, + "InputSourceRequest": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "InputVpcRequest": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MediaConnectFlowRequest": { + "additionalProperties": false, + "properties": { + "FlowArn": { + "type": "string" + } + }, + "type": "object" + }, + "MulticastSettingsCreateRequest": { + "additionalProperties": false, + "properties": { + "Sources": { + "items": { + "$ref": "#/definitions/MulticastSourceCreateRequest" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MulticastSourceCreateRequest": { + "additionalProperties": false, + "properties": { + "SourceIp": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "SrtCallerDecryptionRequest": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "PassphraseSecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "SrtCallerSourceRequest": { + "additionalProperties": false, + "properties": { + "Decryption": { + "$ref": "#/definitions/SrtCallerDecryptionRequest" + }, + "MinimumLatency": { + "type": "integer" + }, + "SrtListenerAddress": { + "type": "string" + }, + "SrtListenerPort": { + "type": "string" + }, + "StreamId": { + "type": "string" + } + }, + "type": "object" + }, + "SrtSettingsRequest": { + "additionalProperties": false, + "properties": { + "SrtCallerSources": { + "items": { + "$ref": "#/definitions/SrtCallerSourceRequest" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/InputDestinationRequest" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "InputDevices": { + "items": { + "$ref": "#/definitions/InputDeviceSettings" + }, + "type": "array", + "uniqueItems": false + }, + "InputNetworkLocation": { + "type": "string" + }, + "InputSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MediaConnectFlows": { + "items": { + "$ref": "#/definitions/MediaConnectFlowRequest" + }, + "type": "array", + "uniqueItems": false + }, + "MulticastSettings": { + "$ref": "#/definitions/MulticastSettingsCreateRequest" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/InputSourceRequest" + }, + "type": "array", + "uniqueItems": false + }, + "SrtSettings": { + "$ref": "#/definitions/SrtSettingsRequest" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Type": { + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/InputVpcRequest" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::MediaLive::Input" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json index 941a6e9d2d..0558937133 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplicationversion.json @@ -9,7 +9,6 @@ ], "properties": { "Application": { - "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json index 4006f060f8..f9797ed8ae 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplicationversion.json @@ -9,7 +9,6 @@ ], "properties": { "Application": { - "pattern": "arn:.*", "type": "string" }, "CurrentRevisionId": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..03475784a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverrule.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/DomainName" + ], + "createOnlyProperties": [ + "/properties/RuleType" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "maxLength": 65535, + "minLength": 0, + "type": "string" + }, + "Protocol": { + "enum": [ + "Do53", + "DoH" + ], + "type": "string" + }, + "ServerNameIndication": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "ResolverEndpointId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "enum": [ + "FORWARD", + "SYSTEM", + "RECURSIVE", + "DELEGATE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DomainName": "$join([DomainName, \".\"]) $OR DomainName" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ResolverRuleId" + ], + "required": [ + "RuleType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53resolver.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py index afea8d81f5..0533f234dc 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -973,9 +973,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1052,7 +1050,6 @@ "aws-glue-table.json", "aws-glue-trigger.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1092,7 +1089,6 @@ "aws-iotwireless-multicastgroup.json", "aws-iotwireless-serviceprofile.json", "aws-iotwireless-wirelessdevice.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1137,7 +1133,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py index 7eff9e88b2..be02c128de 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -869,9 +869,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -934,7 +932,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -965,7 +962,6 @@ "aws-imagebuilder-lifecyclepolicy.json", "aws-imagebuilder-workflow.json", "aws-internetmonitor-monitor.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1029,7 +1025,6 @@ "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1061,7 +1056,6 @@ "aws-pcaconnectorscep-connector.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1070,7 +1064,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", @@ -1126,6 +1119,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", + "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json similarity index 51% rename from src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json rename to src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json index cc38cb577b..46000178b5 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json @@ -1,54 +1,29 @@ { "additionalProperties": false, "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" ], "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", + "/properties/AvailabilityZones", "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", "/properties/SourceRegion", "/properties/StorageEncrypted", - "/properties/Timezone" + "/properties/UseLatestRestorableTime" ], "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { + "DBClusterRole": { "additionalProperties": false, "properties": { "FeatureName": { @@ -59,7 +34,6 @@ } }, "required": [ - "FeatureName", "RoleArn" ], "type": "object" @@ -70,9 +44,6 @@ "Address": { "type": "string" }, - "HostedZoneId": { - "type": "string" - }, "Port": { "type": "string" } @@ -91,22 +62,51 @@ }, "type": "object" }, - "ProcessorFeature": { + "ReadEndpoint": { "additionalProperties": false, "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], + "Address": { "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" }, - "Value": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { "type": "string" } }, "type": "object" }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, "Tag": { "additionalProperties": false, "properties": { @@ -127,119 +127,62 @@ "type": "object" } }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" + "/properties/DBClusterIdentifier" ], "properties": { "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" + "type": "integer" }, "AssociatedRoles": { "items": { - "$ref": "#/definitions/DBInstanceRole" + "$ref": "#/definitions/DBClusterRole" }, - "type": "array" + "type": "array", + "uniqueItems": true }, "AutoMinorVersionUpgrade": { "type": "boolean" }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true }, - "AvailabilityZone": { - "type": "string" + "BacktrackWindow": { + "minimum": 0, + "type": "integer" }, "BackupRetentionPeriod": { "default": 1, "maximum": 35, - "minimum": 0, + "minimum": 1, "type": "integer" }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, "CopyTagsToSnapshot": { "type": "boolean" }, - "CustomIAMInstanceProfile": { + "DBClusterArn": { "type": "string" }, "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { "maxLength": 63, "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", "type": "string" }, - "DBName": { + "DBClusterInstanceClass": { "type": "string" }, - "DBParameterGroupName": { + "DBClusterParameterGroupName": { "type": "string" }, - "DBSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true + "DBClusterResourceId": { + "type": "string" }, - "DBSnapshotIdentifier": { + "DBInstanceParameterGroupName": { "type": "string" }, "DBSubnetGroupName": { @@ -248,49 +191,35 @@ "DBSystemId": { "type": "string" }, - "DbiResourceId": { + "DatabaseName": { "type": "string" }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, "DeletionProtection": { "type": "boolean" }, "Domain": { "type": "string" }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, "DomainIAMRoleName": { "type": "string" }, - "DomainOu": { - "type": "string" - }, "EnableCloudwatchLogsExports": { "items": { "type": "string" }, - "type": "array" + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" }, "EnableIAMDatabaseAuthentication": { "type": "boolean" }, - "EnablePerformanceInsights": { + "EnableLocalWriteForwarding": { "type": "boolean" }, "Endpoint": { @@ -302,18 +231,24 @@ "EngineLifecycleSupport": { "type": "string" }, + "EngineMode": { + "type": "string" + }, "EngineVersion": { "type": "string" }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, "Iops": { "type": "integer" }, "KmsKeyId": { "type": "string" }, - "LicenseModel": { - "type": "string" - }, "ManageMasterUserPassword": { "type": "boolean" }, @@ -324,69 +259,30 @@ "$ref": "#/definitions/MasterUserSecret" }, "MasterUsername": { - "maxLength": 128, "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", "type": "string" }, - "MaxAllocatedStorage": { - "type": "integer" - }, "MonitoringInterval": { - "default": 0, "type": "integer" }, "MonitoringRoleArn": { "type": "string" }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, "NetworkType": { "type": "string" }, - "OptionGroupName": { - "type": "string" + "PerformanceInsightsEnabled": { + "type": "boolean" }, - "PerformanceInsightsKMSKeyId": { + "PerformanceInsightsKmsKeyId": { "type": "string" }, "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], "type": "integer" }, "Port": { - "pattern": "^\\d*$", - "type": "string" + "type": "integer" }, "PreferredBackupWindow": { "type": "string" @@ -394,42 +290,31 @@ "PreferredMaintenanceWindow": { "type": "string" }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, "PubliclyAccessible": { "type": "boolean" }, - "ReplicaMode": { - "enum": [ - "mounted", - "open-read-only" - ], - "type": "string" + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" }, - "RestoreTime": { - "format": "date-time", + "ReplicationSourceIdentifier": { "type": "string" }, - "SourceDBClusterIdentifier": { + "RestoreToTime": { "type": "string" }, - "SourceDBInstanceAutomatedBackupsArn": { + "RestoreType": { "type": "string" }, - "SourceDBInstanceIdentifier": { + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { "type": "string" }, - "SourceDbiResourceId": { + "SourceDBClusterIdentifier": { "type": "string" }, "SourceRegion": { @@ -449,25 +334,14 @@ "items": { "$ref": "#/definitions/Tag" }, + "maxItems": 50, "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" + "uniqueItems": true }, "UseLatestRestorableTime": { "type": "boolean" }, - "VPCSecurityGroups": { + "VpcSecurityGroupIds": { "items": { "type": "string" }, @@ -477,52 +351,47 @@ }, "propertyTransform": { "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", "/properties/Engine": "$lowercase(Engine)", "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", "/properties/StorageType": "$lowercase(StorageType)" }, "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", "/properties/Endpoint/Address", "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", + "/properties/ReadEndpoint/Address", "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" + "/properties/StorageThroughput" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBCluster", "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", + "/properties/DBInstanceParameterGroupName", "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", "/properties/UseLatestRestorableTime" ] } diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbsubnetgroup.json similarity index 58% rename from src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbparametergroup.json rename to src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbsubnetgroup.json index 8d14cf78b9..d228afbbad 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbsubnetgroup.json @@ -1,9 +1,7 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/DBParameterGroupName", - "/properties/Description", - "/properties/Family" + "/properties/DBSubnetGroupName" ], "definitions": { "Tag": { @@ -27,25 +25,22 @@ } }, "primaryIdentifier": [ - "/properties/DBParameterGroupName" + "/properties/DBSubnetGroupName" ], "properties": { - "DBParameterGroupName": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", + "DBSubnetGroupDescription": { "type": "string" }, - "Description": { + "DBSubnetGroupName": { "type": "string" }, - "Family": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false }, "Tags": { "insertionOrder": false, @@ -58,12 +53,19 @@ } }, "propertyTransform": { - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)" + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" }, "required": [ - "Family", - "Description" + "DBSubnetGroupDescription", + "SubnetIds" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::DBParameterGroup" + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py index 0aa9554d72..8c391bbfcd 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py @@ -490,9 +490,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -539,7 +537,6 @@ "aws-imagebuilder-imagerecipe.json", "aws-imagebuilder-infrastructureconfiguration.json", "aws-imagebuilder-workflow.json", - "aws-kinesis-stream.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", @@ -572,13 +569,11 @@ "aws-organizations-resourcepolicy.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-optiongroup.json", @@ -605,6 +600,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", + "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-hub.json", "aws-securityhub-organizationconfiguration.json", "aws-servicediscovery-httpnamespace.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbcluster.json new file mode 100644 index 0000000000..46000178b5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbcluster.json @@ -0,0 +1,397 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbsubnetgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbsubnetgroup.json new file mode 100644 index 0000000000..d228afbbad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-rds-dbsubnetgroup.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DBSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBSubnetGroupName" + ], + "properties": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secrettargetattachment.json deleted file mode 100644 index 8b5501d290..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secrettargetattachment.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "SecretId": { - "type": "string" - }, - "TargetId": { - "type": "string" - }, - "TargetType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SecretId", - "TargetType", - "TargetId" - ], - "typeName": "AWS::SecretsManager::SecretTargetAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py index 0737b21a1f..2165634e84 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -605,6 +605,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1507,9 +1508,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1689,6 +1688,7 @@ "aws-kendra-faq.json", "aws-kendra-index.json", "aws-kendraranking-executionplan.json", + "aws-kinesis-resourcepolicy.json", "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1809,7 +1809,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py index 6a407dd8ed..bca5e667ac 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -764,9 +764,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -817,13 +815,13 @@ "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", + "aws-glue-job.json", "aws-glue-mltransform.json", "aws-glue-partition.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", "aws-glue-trigger.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -848,7 +846,6 @@ "aws-imagebuilder-imagerecipe.json", "aws-imagebuilder-infrastructureconfiguration.json", "aws-imagebuilder-workflow.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -886,7 +883,6 @@ "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -920,13 +916,19 @@ "aws-pcaconnectorscep-connector.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", + "aws-rds-dbcluster.json", + "aws-rds-dbclusterparametergroup.json", + "aws-rds-dbinstance.json", + "aws-rds-dbparametergroup.json", "aws-rds-dbproxy.json", "aws-rds-dbproxyendpoint.json", "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", + "aws-rds-eventsubscription.json", "aws-rds-integration.json", + "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", "aws-redshift-clustersecuritygroup.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json deleted file mode 100644 index 10b7901aa4..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-job.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "Runtime": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "enum": [ - "FLEX", - "STANDARD" - ], - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "pattern": "^\\w+\\.\\w+$", - "type": "string" - }, - "Id": { - "type": "string" - }, - "JobMode": { - "enum": [ - "NOTEBOOK", - "SCRIPT", - "VISUAL" - ], - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaintenanceWindow": { - "pattern": "^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$", - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json deleted file mode 100644 index 72b2c49945..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DBClusterParameterGroupName", - "/properties/Description", - "/properties/Family" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/DBClusterParameterGroupName" - ], - "properties": { - "DBClusterParameterGroupName": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "type": "string" - }, - "Description": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array" - } - }, - "propertyTransform": { - "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)" - }, - "required": [ - "Description", - "Family", - "Parameters" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::DBClusterParameterGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json deleted file mode 100644 index cc38cb577b..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,528 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "enum": [ - "mounted", - "open-read-only" - ], - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json deleted file mode 100644 index d0e1e7a6a9..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/EngineName", - "/properties/MajorEngineVersion", - "/properties/OptionGroupDescription", - "/properties/OptionGroupName" - ], - "definitions": { - "OptionConfiguration": { - "additionalProperties": false, - "properties": { - "DBSecurityGroupMemberships": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "OptionName": { - "type": "string" - }, - "OptionSettings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/OptionSetting" - }, - "type": "array" - }, - "OptionVersion": { - "type": "string" - }, - "Port": { - "type": "integer" - }, - "VpcSecurityGroupMemberships": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "OptionName" - ], - "type": "object" - }, - "OptionSetting": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/OptionGroupName" - ], - "properties": { - "EngineName": { - "type": "string" - }, - "MajorEngineVersion": { - "type": "string" - }, - "OptionConfigurations": { - "arrayType": "AttributeList", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/OptionConfiguration" - }, - "type": "array" - }, - "OptionGroupDescription": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "propertyTransform": { - "/properties/OptionGroupName": "$lowercase(OptionGroupName)" - }, - "required": [ - "EngineName", - "MajorEngineVersion", - "OptionGroupDescription" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::OptionGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py index 43dfd62f41..0ac7b448db 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -870,7 +870,6 @@ "aws-dms-certificate.json", "aws-dms-endpoint.json", "aws-dms-eventsubscription.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-docdb-dbcluster.json", @@ -942,6 +941,7 @@ "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", + "aws-ec2-vpcendpointservice.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", @@ -954,14 +954,13 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", + "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", "aws-eks-accessentry.json", "aws-eks-addon.json", - "aws-eks-cluster.json", "aws-eks-identityproviderconfig.json", "aws-eks-nodegroup.json", "aws-eks-podidentityassociation.json", @@ -1020,6 +1019,7 @@ "aws-gamelift-script.json", "aws-glue-classifier.json", "aws-glue-connection.json", + "aws-glue-crawler.json", "aws-glue-customentitytype.json", "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", @@ -1054,6 +1054,7 @@ "aws-greengrass-subscriptiondefinitionversion.json", "aws-greengrassv2-componentversion.json", "aws-greengrassv2-deployment.json", + "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-master.json", @@ -1173,6 +1174,7 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", + "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1248,7 +1250,6 @@ "aws-route53resolver-resolverendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-route53resolver-resolverrule.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-accessgrant.json", "aws-s3-accessgrantsinstance.json", @@ -1284,7 +1285,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpcendpointservice.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpcendpointservice.json deleted file mode 100644 index 67560dbc1d..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpcendpointservice.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/ServiceId" - ], - "properties": { - "AcceptanceRequired": { - "type": "boolean" - }, - "ContributorInsightsEnabled": { - "type": "boolean" - }, - "GatewayLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "NetworkLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "PayerResponsibility": { - "type": "string" - }, - "ServiceId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ServiceId" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::VPCEndpointService", - "writeOnlyProperties": [ - "/properties/ContributorInsightsEnabled" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-eks-cluster.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-eks-cluster.json new file mode 100644 index 0000000000..999cbd80cc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-eks-cluster.json @@ -0,0 +1,395 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/OutpostConfig", + "/properties/EncryptionConfig", + "/properties/KubernetesNetworkConfig", + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/Name", + "/properties/RoleArn", + "/properties/BootstrapSelfManagedAddons" + ], + "definitions": { + "AccessConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationMode": { + "enum": [ + "CONFIG_MAP", + "API_AND_CONFIG_MAP", + "API" + ], + "type": "string" + }, + "BootstrapClusterCreatorAdminPermissions": { + "type": "boolean" + } + }, + "type": "object" + }, + "BlockStorage": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "ClusterLogging": { + "additionalProperties": false, + "properties": { + "EnabledTypes": { + "$ref": "#/definitions/EnabledTypes" + } + }, + "type": "object" + }, + "ControlPlanePlacement": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + } + }, + "type": "object" + }, + "EnabledTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoggingTypeConfig" + }, + "type": "array" + }, + "EncryptionConfig": { + "additionalProperties": false, + "properties": { + "Provider": { + "$ref": "#/definitions/Provider" + }, + "Resources": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "KubernetesNetworkConfig": { + "additionalProperties": false, + "properties": { + "IpFamily": { + "enum": [ + "ipv4", + "ipv6" + ], + "type": "string" + }, + "ServiceIpv4Cidr": { + "type": "string" + }, + "ServiceIpv6Cidr": { + "type": "string" + } + }, + "type": "object" + }, + "Logging": { + "additionalProperties": false, + "properties": { + "ClusterLogging": { + "$ref": "#/definitions/ClusterLogging" + } + }, + "type": "object" + }, + "LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "api", + "audit", + "authenticator", + "controllerManager", + "scheduler" + ], + "type": "string" + } + }, + "type": "object" + }, + "OutpostConfig": { + "additionalProperties": false, + "properties": { + "ControlPlaneInstanceType": { + "type": "string" + }, + "ControlPlanePlacement": { + "$ref": "#/definitions/ControlPlanePlacement" + }, + "OutpostArns": { + "insertionOrder": false, + "items": { + "minItems": 1, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "OutpostArns", + "ControlPlaneInstanceType" + ], + "type": "object" + }, + "Provider": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "RemoteNodeNetwork": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "insertionOrder": false, + "items": { + "minItems": 1, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Cidrs" + ], + "type": "object" + }, + "RemoteNodeNetworks": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/RemoteNodeNetwork" + }, + "type": "array" + }, + "RemotePodNetwork": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "insertionOrder": false, + "items": { + "minItems": 1, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Cidrs" + ], + "type": "object" + }, + "RemotePodNetworks": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/RemotePodNetwork" + }, + "type": "array" + }, + "ResourcesVpcConfig": { + "additionalProperties": false, + "properties": { + "EndpointPrivateAccess": { + "type": "boolean" + }, + "EndpointPublicAccess": { + "type": "boolean" + }, + "PublicAccessCidrs": { + "insertionOrder": false, + "items": { + "minItems": 1, + "type": "string" + }, + "type": "array" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "minItems": 1, + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "minItems": 1, + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UpgradePolicy": { + "additionalProperties": false, + "properties": { + "SupportType": { + "enum": [ + "STANDARD", + "EXTENDED" + ], + "type": "string" + } + }, + "type": "object" + }, + "ZonalShiftConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "AccessConfig": { + "$ref": "#/definitions/AccessConfig" + }, + "Arn": { + "type": "string" + }, + "BootstrapSelfManagedAddons": { + "type": "boolean" + }, + "CertificateAuthorityData": { + "type": "string" + }, + "ClusterSecurityGroupId": { + "type": "string" + }, + "EncryptionConfig": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EncryptionConfig", + "maxItems": 1 + }, + "type": "array" + }, + "EncryptionConfigKeyArn": { + "type": "string" + }, + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KubernetesNetworkConfig": { + "$ref": "#/definitions/KubernetesNetworkConfig" + }, + "Logging": { + "$ref": "#/definitions/Logging" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", + "type": "string" + }, + "OpenIdConnectIssuerUrl": { + "type": "string" + }, + "OutpostConfig": { + "$ref": "#/definitions/OutpostConfig" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/ResourcesVpcConfig" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "UpgradePolicy": { + "$ref": "#/definitions/UpgradePolicy" + }, + "Version": { + "pattern": "1\\.\\d\\d", + "type": "string" + }, + "ZonalShiftConfig": { + "$ref": "#/definitions/ZonalShiftConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/Endpoint", + "/properties/CertificateAuthorityData", + "/properties/ClusterSecurityGroupId", + "/properties/EncryptionConfigKeyArn", + "/properties/OpenIdConnectIssuerUrl", + "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" + ], + "required": [ + "RoleArn", + "ResourcesVpcConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EKS::Cluster", + "writeOnlyProperties": [ + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/BootstrapSelfManagedAddons" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-crawler.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-crawler.json deleted file mode 100644 index 7dcb87f3d8..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-crawler.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "CatalogTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DlqEventQueueArn": { - "type": "string" - }, - "EventQueueArn": { - "type": "string" - }, - "Tables": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DeltaTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "CreateNativeDeltaTable": { - "type": "boolean" - }, - "DeltaTables": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "WriteManifest": { - "type": "boolean" - } - }, - "type": "object" - }, - "DynamoDBTarget": { - "additionalProperties": false, - "properties": { - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "IcebergTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "MaximumTraversalDepth": { - "type": "integer" - }, - "Paths": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JdbcTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "EnableAdditionalMetadata": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "LakeFormationConfiguration": { - "additionalProperties": false, - "properties": { - "AccountId": { - "type": "string" - }, - "UseLakeFormationCredentials": { - "type": "boolean" - } - }, - "type": "object" - }, - "MongoDBTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "RecrawlPolicy": { - "additionalProperties": false, - "properties": { - "RecrawlBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "S3Target": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "DlqEventQueueArn": { - "type": "string" - }, - "EventQueueArn": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - }, - "SampleSize": { - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaChangePolicy": { - "additionalProperties": false, - "properties": { - "DeleteBehavior": { - "enum": [ - "DELETE_FROM_DATABASE", - "DEPRECATE_IN_DATABASE", - "LOG" - ], - "type": "string" - }, - "UpdateBehavior": { - "enum": [ - "LOG", - "UPDATE_IN_DATABASE" - ], - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "additionalProperties": false, - "properties": { - "CatalogTargets": { - "items": { - "$ref": "#/definitions/CatalogTarget" - }, - "type": "array", - "uniqueItems": false - }, - "DeltaTargets": { - "items": { - "$ref": "#/definitions/DeltaTarget" - }, - "type": "array", - "uniqueItems": false - }, - "DynamoDBTargets": { - "items": { - "$ref": "#/definitions/DynamoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "IcebergTargets": { - "items": { - "$ref": "#/definitions/IcebergTarget" - }, - "type": "array", - "uniqueItems": false - }, - "JdbcTargets": { - "items": { - "$ref": "#/definitions/JdbcTarget" - }, - "type": "array", - "uniqueItems": false - }, - "MongoDBTargets": { - "items": { - "$ref": "#/definitions/MongoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "S3Targets": { - "items": { - "$ref": "#/definitions/S3Target" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Classifiers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Configuration": { - "type": "string" - }, - "CrawlerSecurityConfiguration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "LakeFormationConfiguration": { - "$ref": "#/definitions/LakeFormationConfiguration" - }, - "Name": { - "type": "string" - }, - "RecrawlPolicy": { - "$ref": "#/definitions/RecrawlPolicy" - }, - "Role": { - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/SchemaChangePolicy" - }, - "TablePrefix": { - "type": "string" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Targets": { - "$ref": "#/definitions/Targets" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Targets" - ], - "typeName": "AWS::Glue::Crawler" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-eventsourcemapping.json index 7b7c7f065b..fa5a0cde41 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-eventsourcemapping.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-eventsourcemapping.json @@ -285,11 +285,6 @@ "uniqueItems": true }, "StartingPosition": { - "enum": [ - "AT_TIMESTAMP", - "LATEST", - "TRIM_HORIZON" - ], "maxLength": 12, "minLength": 6, "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..03475784a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-resolverrule.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/DomainName" + ], + "createOnlyProperties": [ + "/properties/RuleType" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "maxLength": 65535, + "minLength": 0, + "type": "string" + }, + "Protocol": { + "enum": [ + "Do53", + "DoH" + ], + "type": "string" + }, + "ServerNameIndication": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "ResolverEndpointId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "enum": [ + "FORWARD", + "SYSTEM", + "RECURSIVE", + "DELEGATE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DomainName": "$join([DomainName, \".\"]) $OR DomainName" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ResolverRuleId" + ], + "required": [ + "RuleType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53resolver.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-secretsmanager-secrettargetattachment.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-secrettargetattachment.json rename to src/cfnlint/data/schemas/providers/cn_north_1/aws-secretsmanager-secrettargetattachment.json diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py index 00edb78f17..056790dabd 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -908,9 +908,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -981,6 +979,7 @@ "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", + "aws-glue-job.json", "aws-glue-mltransform.json", "aws-glue-partition.json", "aws-glue-registry.json", @@ -991,7 +990,6 @@ "aws-glue-table.json", "aws-glue-trigger.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-master.json", @@ -1093,7 +1091,6 @@ "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-job.json deleted file mode 100644 index 5ad5c7f347..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-job.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "Runtime": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaintenanceWindow": { - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-eventsourcemapping.json index 7b7c7f065b..fa5a0cde41 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-eventsourcemapping.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-eventsourcemapping.json @@ -285,11 +285,6 @@ "uniqueItems": true }, "StartingPosition": { - "enum": [ - "AT_TIMESTAMP", - "LATEST", - "TRIM_HORIZON" - ], "maxLength": 12, "minLength": 6, "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py index 9918227e4c..2c64e978cf 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -1718,6 +1718,7 @@ "aws-ecs-primarytaskset.json", "aws-ecs-service.json", "aws-ecs-taskdefinition.json", + "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1848,6 +1849,7 @@ "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", "aws-groundstation-missionprofile.json", + "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1967,6 +1969,8 @@ "aws-kafkaconnect-connector.json", "aws-kafkaconnect-customplugin.json", "aws-kafkaconnect-workerconfiguration.json", + "aws-kinesis-resourcepolicy.json", + "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", @@ -2033,7 +2037,6 @@ "aws-lookoutmetrics-alert.json", "aws-lookoutmetrics-anomalydetector.json", "aws-lookoutvision-project.json", - "aws-m2-application.json", "aws-m2-environment.json", "aws-macie-allowlist.json", "aws-macie-customdataidentifier.json", @@ -2066,7 +2069,6 @@ "aws-medialive-signalmap.json", "aws-mediapackage-asset.json", "aws-mediapackage-channel.json", - "aws-mediapackage-originendpoint.json", "aws-mediapackage-packagingconfiguration.json", "aws-mediapackage-packaginggroup.json", "aws-mediapackagev2-channel.json", @@ -2103,6 +2105,7 @@ "aws-neptunegraph-graph.json", "aws-neptunegraph-privategraphendpoint.json", "aws-networkfirewall-firewall.json", + "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -2390,7 +2393,6 @@ "aws-signer-signingprofile.json", "aws-simspaceweaver-simulation.json", "aws-sns-subscription.json", - "aws-sns-topic.json", "aws-sns-topicinlinepolicy.json", "aws-sns-topicpolicy.json", "aws-sqs-queue.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-m2-application.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-m2-application.json new file mode 100644 index 0000000000..12f0ef73da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-m2-application.json @@ -0,0 +1,121 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/EngineType", + "/properties/Name", + "/properties/KmsKeyId", + "/properties/RoleArn" + ], + "definitions": { + "Definition": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3Location": { + "pattern": "^\\S{1,2000}$", + "type": "string" + } + }, + "required": [ + "S3Location" + ], + "title": "S3Location", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 6500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Content" + ], + "title": "Content", + "type": "object" + } + ] + }, + "EngineType": { + "enum": [ + "microfocus", + "bluage" + ], + "type": "string" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 200, + "minProperties": 0, + "patternProperties": { + "^(?!aws:).+$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ApplicationArn" + ], + "properties": { + "ApplicationArn": { + "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+=,@.-]{0,1023}$", + "type": "string" + }, + "ApplicationId": { + "pattern": "^\\S{1,80}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/Definition" + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string" + }, + "EngineType": { + "$ref": "#/definitions/EngineType" + }, + "KmsKeyId": { + "maxLength": 2048, + "type": "string" + }, + "Name": { + "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", + "type": "string" + }, + "RoleArn": { + "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]|):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+=,@.-]{0,1023}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "readOnlyProperties": [ + "/properties/ApplicationArn", + "/properties/ApplicationId" + ], + "required": [ + "EngineType", + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::M2::Application", + "writeOnlyProperties": [ + "/properties/Definition" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json new file mode 100644 index 0000000000..261af58d4c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json @@ -0,0 +1,577 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Id" + ], + "definitions": { + "AdsOnDeliveryRestrictions": { + "enum": [ + "NONE", + "RESTRICTED", + "UNRESTRICTED", + "BOTH" + ], + "type": "string" + }, + "Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "SecretsRoleArn", + "CdnIdentifierSecret" + ], + "type": "object" + }, + "CmafEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "maxLength": 32, + "minLength": 32, + "pattern": "\\A[0-9a-fA-F]+\\Z", + "type": "string" + }, + "EncryptionMethod": { + "enum": [ + "SAMPLE_AES", + "AES_CTR" + ], + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "integer" + }, + "SegmentPrefix": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + } + }, + "type": "object" + }, + "DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Encryption": { + "$ref": "#/definitions/DashEncryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestLayout": { + "enum": [ + "FULL", + "COMPACT", + "DRM_TOP_LEVEL_COMPACT" + ], + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "MinBufferTimeSeconds": { + "type": "integer" + }, + "MinUpdatePeriodSeconds": { + "type": "integer" + }, + "PeriodTriggers": { + "items": { + "enum": [ + "ADS" + ], + "type": "string" + }, + "type": "array" + }, + "Profile": { + "enum": [ + "NONE", + "HBBTV_1_5", + "HYBRIDCAST", + "DVB_DASH_2014" + ], + "type": "string" + }, + "SegmentDurationSeconds": { + "type": "integer" + }, + "SegmentTemplateFormat": { + "enum": [ + "NUMBER_WITH_TIMELINE", + "TIME_WITH_TIMELINE", + "NUMBER_WITH_DURATION" + ], + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "type": "integer" + }, + "UtcTiming": { + "enum": [ + "HTTP-XSDATE", + "HTTP-ISO", + "HTTP-HEAD", + "NONE" + ], + "type": "string" + }, + "UtcTimingUri": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionContractConfiguration": { + "additionalProperties": false, + "properties": { + "PresetSpeke20Audio": { + "enum": [ + "PRESET-AUDIO-1", + "PRESET-AUDIO-2", + "PRESET-AUDIO-3", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + }, + "PresetSpeke20Video": { + "enum": [ + "PRESET-VIDEO-1", + "PRESET-VIDEO-2", + "PRESET-VIDEO-3", + "PRESET-VIDEO-4", + "PRESET-VIDEO-5", + "PRESET-VIDEO-6", + "PRESET-VIDEO-7", + "PRESET-VIDEO-8", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "integer" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH", + "DATERANGE" + ], + "type": "string" + }, + "AdTriggers": { + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Id": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "PlaylistType": { + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH", + "DATERANGE" + ], + "type": "string" + }, + "AdTriggers": { + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Encryption": { + "$ref": "#/definitions/HlsEncryption" + }, + "IncludeDvbSubtitles": { + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PlaylistType": { + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "SegmentDurationSeconds": { + "type": "integer" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/MssEncryption" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "SegmentDurationSeconds": { + "type": "integer" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + } + }, + "type": "object" + }, + "SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/EncryptionContractConfiguration" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "SystemIds", + "Url", + "RoleArn" + ], + "type": "object" + }, + "StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "integer" + }, + "MinVideoBitsPerSecond": { + "type": "integer" + }, + "StreamOrder": { + "enum": [ + "ORIGINAL", + "VIDEO_BITRATE_ASCENDING", + "VIDEO_BITRATE_DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/HlsPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Audio", + "/properties/HlsPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Video", + "/properties/MssPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Audio", + "/properties/MssPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Video", + "/properties/CmafPackage/HlsManifests/*/Url" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Authorization": { + "$ref": "#/definitions/Authorization" + }, + "ChannelId": { + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/DashPackage" + }, + "Description": { + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/HlsPackage" + }, + "Id": { + "maxLength": 256, + "minLength": 1, + "pattern": "\\A[0-9a-zA-Z-_]+\\Z", + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/MssPackage" + }, + "Origination": { + "enum": [ + "ALLOW", + "DENY" + ], + "type": "string" + }, + "StartoverWindowSeconds": { + "type": "integer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TimeDelaySeconds": { + "type": "integer" + }, + "Url": { + "type": "string" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Url" + ], + "required": [ + "Id", + "ChannelId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackage::OriginEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sns-topic.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sns-topic.json new file mode 100644 index 0000000000..4d536abd38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sns-topic.json @@ -0,0 +1,150 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TopicName", + "/properties/FifoTopic" + ], + "definitions": { + "LoggingConfig": { + "additionalProperties": false, + "properties": { + "FailureFeedbackRoleArn": { + "type": "string" + }, + "Protocol": { + "enum": [ + "http/s", + "sqs", + "lambda", + "firehose", + "application" + ], + "type": "string" + }, + "SuccessFeedbackRoleArn": { + "type": "string" + }, + "SuccessFeedbackSampleRate": { + "type": "string" + } + }, + "required": [ + "Protocol" + ], + "type": "object" + }, + "Subscription": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Protocol" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/TopicArn" + ], + "properties": { + "ArchivePolicy": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "ContentBasedDeduplication": { + "type": "boolean" + }, + "DataProtectionPolicy": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "DeliveryStatusLogging": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoggingConfig" + }, + "type": "array", + "uniqueItems": true + }, + "DisplayName": { + "type": "string" + }, + "FifoTopic": { + "type": "boolean" + }, + "KmsMasterKeyId": { + "type": "string" + }, + "SignatureVersion": { + "type": "string" + }, + "Subscription": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Subscription" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TopicArn": { + "type": "string" + }, + "TopicName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "TracingConfig": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TopicArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sns", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SNS::Topic" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py index f3b3f11d2e..a5697eddce 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -456,6 +456,7 @@ "AWS::NetworkManager::SiteToSiteVpnAttachment", "AWS::NetworkManager::TransitGatewayPeering", "AWS::NetworkManager::TransitGatewayRegistration", + "AWS::NetworkManager::TransitGatewayRouteTableAttachment", "AWS::NetworkManager::VpcAttachment", "AWS::Oam::Link", "AWS::Oam::Sink", @@ -910,9 +911,7 @@ "aws-ecs-capacityprovider.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -976,6 +975,7 @@ "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", + "aws-glue-job.json", "aws-glue-mltransform.json", "aws-glue-partition.json", "aws-glue-securityconfiguration.json", @@ -983,7 +983,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1017,7 +1016,6 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-inspectorv2-filter.json", "aws-internetmonitor-monitor.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1058,7 +1056,6 @@ "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1074,6 +1071,7 @@ "aws-networkmanager-sitetositevpnattachment.json", "aws-networkmanager-transitgatewaypeering.json", "aws-networkmanager-transitgatewayregistration.json", + "aws-networkmanager-transitgatewayroutetableattachment.json", "aws-networkmanager-vpcattachment.json", "aws-oam-link.json", "aws-oam-sink.json", @@ -1112,14 +1110,20 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", + "aws-rds-dbcluster.json", + "aws-rds-dbclusterparametergroup.json", + "aws-rds-dbinstance.json", + "aws-rds-dbparametergroup.json", "aws-rds-dbproxy.json", "aws-rds-dbproxyendpoint.json", "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", + "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", + "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", "aws-redshift-clustersecuritygroup.json", @@ -1173,6 +1177,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", + "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json deleted file mode 100644 index 10b7901aa4..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-job.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "Runtime": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "enum": [ - "FLEX", - "STANDARD" - ], - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "pattern": "^\\w+\\.\\w+$", - "type": "string" - }, - "Id": { - "type": "string" - }, - "JobMode": { - "enum": [ - "NOTEBOOK", - "SCRIPT", - "VISUAL" - ], - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaintenanceWindow": { - "pattern": "^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$", - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbclusterparametergroup.json deleted file mode 100644 index 72b2c49945..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbclusterparametergroup.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DBClusterParameterGroupName", - "/properties/Description", - "/properties/Family" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/DBClusterParameterGroupName" - ], - "properties": { - "DBClusterParameterGroupName": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "type": "string" - }, - "Description": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array" - } - }, - "propertyTransform": { - "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)" - }, - "required": [ - "Description", - "Family", - "Parameters" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::DBClusterParameterGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbparametergroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbparametergroup.json deleted file mode 100644 index 8d14cf78b9..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbparametergroup.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DBParameterGroupName", - "/properties/Description", - "/properties/Family" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/DBParameterGroupName" - ], - "properties": { - "DBParameterGroupName": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "type": "string" - }, - "Description": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": false - } - }, - "propertyTransform": { - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)" - }, - "required": [ - "Family", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::DBParameterGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-optiongroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-optiongroup.json deleted file mode 100644 index d0e1e7a6a9..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-optiongroup.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/EngineName", - "/properties/MajorEngineVersion", - "/properties/OptionGroupDescription", - "/properties/OptionGroupName" - ], - "definitions": { - "OptionConfiguration": { - "additionalProperties": false, - "properties": { - "DBSecurityGroupMemberships": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "OptionName": { - "type": "string" - }, - "OptionSettings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/OptionSetting" - }, - "type": "array" - }, - "OptionVersion": { - "type": "string" - }, - "Port": { - "type": "integer" - }, - "VpcSecurityGroupMemberships": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "OptionName" - ], - "type": "object" - }, - "OptionSetting": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/OptionGroupName" - ], - "properties": { - "EngineName": { - "type": "string" - }, - "MajorEngineVersion": { - "type": "string" - }, - "OptionConfigurations": { - "arrayType": "AttributeList", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/OptionConfiguration" - }, - "type": "array" - }, - "OptionGroupDescription": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "propertyTransform": { - "/properties/OptionGroupName": "$lowercase(OptionGroupName)" - }, - "required": [ - "EngineName", - "MajorEngineVersion", - "OptionGroupDescription" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::OptionGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json deleted file mode 100644 index 8b5501d290..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "SecretId": { - "type": "string" - }, - "TargetId": { - "type": "string" - }, - "TargetType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SecretId", - "TargetType", - "TargetId" - ], - "typeName": "AWS::SecretsManager::SecretTargetAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py index 77ea779c98..56601d5c69 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -1243,7 +1243,6 @@ "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", "aws-dms-replicationconfig.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-dynamodb-globaltable.json", @@ -1348,9 +1347,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1444,7 +1441,6 @@ "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", "aws-groundstation-missionprofile.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1516,7 +1512,6 @@ "aws-kafkaconnect-connector.json", "aws-kafkaconnect-customplugin.json", "aws-kafkaconnect-workerconfiguration.json", - "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", @@ -1640,7 +1635,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py index 1bfc38a08d..174753bffc 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -1018,7 +1018,6 @@ "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", "aws-dms-replicationconfig.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-docdb-dbcluster.json", @@ -1124,9 +1123,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1209,7 +1206,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1244,7 +1240,6 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-inspectorv2-filter.json", "aws-internetmonitor-monitor.json", - "aws-kinesis-stream.json", "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", @@ -1293,7 +1288,6 @@ "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py index 09ec4e5d7e..f07db48c48 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -921,9 +921,7 @@ "aws-ecs-capacityprovider.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -989,6 +987,7 @@ "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", + "aws-glue-job.json", "aws-glue-mltransform.json", "aws-glue-partition.json", "aws-glue-securityconfiguration.json", @@ -996,7 +995,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1027,7 +1025,6 @@ "aws-imagebuilder-lifecyclepolicy.json", "aws-imagebuilder-workflow.json", "aws-internetmonitor-monitor.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1084,7 +1081,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1196,6 +1192,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", + "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json deleted file mode 100644 index 10b7901aa4..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-job.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "Runtime": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "enum": [ - "FLEX", - "STANDARD" - ], - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "pattern": "^\\w+\\.\\w+$", - "type": "string" - }, - "Id": { - "type": "string" - }, - "JobMode": { - "enum": [ - "NOTEBOOK", - "SCRIPT", - "VISUAL" - ], - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaintenanceWindow": { - "pattern": "^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$", - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json deleted file mode 100644 index 8b5501d290..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "SecretId": { - "type": "string" - }, - "TargetId": { - "type": "string" - }, - "TargetType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SecretId", - "TargetType", - "TargetId" - ], - "typeName": "AWS::SecretsManager::SecretTargetAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py index 195360efaa..4e2c2d0adc 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -693,6 +693,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1491,6 +1492,12 @@ "aws-controltower-enabledbaseline.json", "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", + "aws-databrew-dataset.json", + "aws-databrew-job.json", + "aws-databrew-project.json", + "aws-databrew-recipe.json", + "aws-databrew-ruleset.json", + "aws-databrew-schedule.json", "aws-datapipeline-pipeline.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -1545,7 +1552,6 @@ "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", "aws-dms-replicationconfig.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-docdb-dbcluster.json", @@ -1657,9 +1663,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1919,6 +1923,7 @@ "aws-kendra-faq.json", "aws-kendra-index.json", "aws-kendraranking-executionplan.json", + "aws-kinesis-resourcepolicy.json", "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-application.json", @@ -2011,14 +2016,12 @@ "aws-mediaconvert-jobtemplate.json", "aws-mediaconvert-preset.json", "aws-mediaconvert-queue.json", - "aws-medialive-channel.json", "aws-medialive-channelplacementgroup.json", "aws-medialive-cloudwatchalarmtemplate.json", "aws-medialive-cloudwatchalarmtemplategroup.json", "aws-medialive-cluster.json", "aws-medialive-eventbridgeruletemplate.json", "aws-medialive-eventbridgeruletemplategroup.json", - "aws-medialive-input.json", "aws-medialive-inputsecuritygroup.json", "aws-medialive-multiplex.json", "aws-medialive-multiplexprogram.json", @@ -2064,7 +2067,6 @@ "aws-neptunegraph-graph.json", "aws-neptunegraph-privategraphendpoint.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -2236,7 +2238,6 @@ "aws-route53resolver-resolverendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-route53resolver-resolverrule.json", "aws-route53resolver-resolverruleassociation.json", "aws-rum-appmonitor.json", "aws-s3-accessgrant.json", @@ -2450,11 +2451,13 @@ "aws-workspaces-workspacespool.json", "aws-workspacesthinclient-environment.json", "aws-workspacesweb-browsersettings.json", + "aws-workspacesweb-identityprovider.json", "aws-workspacesweb-ipaccesssettings.json", "aws-workspacesweb-networksettings.json", "aws-workspacesweb-portal.json", "aws-workspacesweb-truststore.json", "aws-workspacesweb-useraccessloggingsettings.json", + "aws-workspacesweb-usersettings.json", "aws-xray-group.json", "aws-xray-resourcepolicy.json", "aws-xray-samplingrule.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-dataset.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-dataset.json deleted file mode 100644 index 8c2e37c355..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-dataset.json +++ /dev/null @@ -1,396 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Tags" - ], - "definitions": { - "CsvOptions": { - "additionalProperties": false, - "properties": { - "Delimiter": { - "maxLength": 1, - "minLength": 1, - "type": "string" - }, - "HeaderRow": { - "type": "boolean" - } - }, - "type": "object" - }, - "DataCatalogInputDefinition": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "TableName": { - "type": "string" - }, - "TempDirectory": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "DatabaseInputDefinition": { - "additionalProperties": false, - "properties": { - "DatabaseTableName": { - "type": "string" - }, - "GlueConnectionName": { - "type": "string" - }, - "QueryString": { - "type": "string" - }, - "TempDirectory": { - "$ref": "#/definitions/S3Location" - } - }, - "required": [ - "GlueConnectionName" - ], - "type": "object" - }, - "DatasetParameter": { - "additionalProperties": false, - "properties": { - "CreateColumn": { - "type": "boolean" - }, - "DatetimeOptions": { - "$ref": "#/definitions/DatetimeOptions" - }, - "Filter": { - "$ref": "#/definitions/FilterExpression" - }, - "Name": { - "$ref": "#/definitions/PathParameterName" - }, - "Type": { - "enum": [ - "String", - "Number", - "Datetime" - ], - "type": "string" - } - }, - "required": [ - "Name", - "Type" - ], - "type": "object" - }, - "DatetimeOptions": { - "additionalProperties": false, - "properties": { - "Format": { - "maxLength": 100, - "minLength": 2, - "type": "string" - }, - "LocaleCode": { - "maxLength": 100, - "minLength": 2, - "pattern": "^[A-Za-z0-9_\\.#@\\-]+$", - "type": "string" - }, - "TimezoneOffset": { - "maxLength": 6, - "minLength": 1, - "pattern": "^(Z|[-+](\\d|\\d{2}|\\d{2}:?\\d{2}))$", - "type": "string" - } - }, - "required": [ - "Format" - ], - "type": "object" - }, - "ExcelOptions": { - "additionalProperties": false, - "oneOf": [ - { - "required": [ - "SheetNames" - ] - }, - { - "required": [ - "SheetIndexes" - ] - } - ], - "properties": { - "HeaderRow": { - "type": "boolean" - }, - "SheetIndexes": { - "insertionOrder": true, - "items": { - "type": "integer" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - "SheetNames": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "FilesLimit": { - "additionalProperties": false, - "properties": { - "MaxFiles": { - "type": "integer" - }, - "Order": { - "enum": [ - "ASCENDING", - "DESCENDING" - ], - "type": "string" - }, - "OrderedBy": { - "enum": [ - "LAST_MODIFIED_DATE" - ], - "type": "string" - } - }, - "required": [ - "MaxFiles" - ], - "type": "object" - }, - "FilterExpression": { - "additionalProperties": false, - "properties": { - "Expression": { - "maxLength": 1024, - "minLength": 4, - "pattern": "^[><0-9A-Za-z_.,:)(!= ]+$", - "type": "string" - }, - "ValuesMap": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterValue" - }, - "type": "array" - } - }, - "required": [ - "Expression", - "ValuesMap" - ], - "type": "object" - }, - "FilterValue": { - "additionalProperties": false, - "properties": { - "Value": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "ValueReference": { - "maxLength": 128, - "minLength": 2, - "pattern": "^:[A-Za-z0-9_]+$", - "type": "string" - } - }, - "required": [ - "ValueReference", - "Value" - ], - "type": "object" - }, - "FormatOptions": { - "additionalProperties": false, - "properties": { - "Csv": { - "$ref": "#/definitions/CsvOptions" - }, - "Excel": { - "$ref": "#/definitions/ExcelOptions" - }, - "Json": { - "$ref": "#/definitions/JsonOptions" - } - }, - "type": "object" - }, - "Input": { - "additionalProperties": false, - "properties": { - "DataCatalogInputDefinition": { - "$ref": "#/definitions/DataCatalogInputDefinition" - }, - "DatabaseInputDefinition": { - "$ref": "#/definitions/DatabaseInputDefinition" - }, - "Metadata": { - "$ref": "#/definitions/Metadata" - }, - "S3InputDefinition": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "JsonOptions": { - "additionalProperties": false, - "properties": { - "MultiLine": { - "type": "boolean" - } - }, - "type": "object" - }, - "Metadata": { - "additionalProperties": false, - "properties": { - "SourceArn": { - "type": "string" - } - }, - "type": "object" - }, - "PathOptions": { - "additionalProperties": false, - "properties": { - "FilesLimit": { - "$ref": "#/definitions/FilesLimit" - }, - "LastModifiedDateCondition": { - "$ref": "#/definitions/FilterExpression" - }, - "Parameters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/PathParameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "PathParameter": { - "additionalProperties": false, - "properties": { - "DatasetParameter": { - "$ref": "#/definitions/DatasetParameter" - }, - "PathParameterName": { - "$ref": "#/definitions/PathParameterName" - } - }, - "required": [ - "PathParameterName", - "DatasetParameter" - ], - "type": "object" - }, - "PathParameterName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "Format": { - "enum": [ - "CSV", - "JSON", - "PARQUET", - "EXCEL", - "ORC" - ], - "type": "string" - }, - "FormatOptions": { - "$ref": "#/definitions/FormatOptions" - }, - "Input": { - "$ref": "#/definitions/Input" - }, - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "PathOptions": { - "$ref": "#/definitions/PathOptions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "Name", - "Input" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-databrew.git", - "taggable": true, - "typeName": "AWS::DataBrew::Dataset" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-job.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-job.json deleted file mode 100644 index 3119fb255d..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-job.json +++ /dev/null @@ -1,565 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Type", - "/properties/Tags" - ], - "definitions": { - "AllowedStatistics": { - "additionalProperties": false, - "properties": { - "Statistics": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Statistic" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "Statistics" - ], - "type": "object" - }, - "ColumnSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Regex": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "ColumnStatisticsConfiguration": { - "additionalProperties": false, - "properties": { - "Selectors": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ColumnSelector" - }, - "minItems": 1, - "type": "array" - }, - "Statistics": { - "$ref": "#/definitions/StatisticsConfiguration" - } - }, - "required": [ - "Statistics" - ], - "type": "object" - }, - "CsvOutputOptions": { - "additionalProperties": false, - "properties": { - "Delimiter": { - "maxLength": 1, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "DataCatalogOutput": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "DatabaseName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "DatabaseOptions": { - "$ref": "#/definitions/DatabaseTableOutputOptions" - }, - "Overwrite": { - "type": "boolean" - }, - "S3Options": { - "$ref": "#/definitions/S3TableOutputOptions" - }, - "TableName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "DatabaseName", - "TableName" - ], - "type": "object" - }, - "DatabaseOutput": { - "additionalProperties": false, - "properties": { - "DatabaseOptions": { - "$ref": "#/definitions/DatabaseTableOutputOptions" - }, - "DatabaseOutputMode": { - "enum": [ - "NEW_TABLE" - ], - "type": "string" - }, - "GlueConnectionName": { - "type": "string" - } - }, - "required": [ - "GlueConnectionName", - "DatabaseOptions" - ], - "type": "object" - }, - "DatabaseTableOutputOptions": { - "additionalProperties": false, - "properties": { - "TableName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "TempDirectory": { - "$ref": "#/definitions/S3Location" - } - }, - "required": [ - "TableName" - ], - "type": "object" - }, - "EntityDetectorConfiguration": { - "additionalProperties": false, - "properties": { - "AllowedStatistics": { - "$ref": "#/definitions/AllowedStatistics" - }, - "EntityTypes": { - "insertionOrder": true, - "items": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[A-Z_][A-Z\\\\d_]*$", - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "EntityTypes" - ], - "type": "object" - }, - "JobSample": { - "additionalProperties": false, - "properties": { - "Mode": { - "$ref": "#/definitions/SampleMode" - }, - "Size": { - "$ref": "#/definitions/JobSize" - } - }, - "type": "object" - }, - "JobSize": { - "format": "int64", - "type": "integer" - }, - "Output": { - "additionalProperties": false, - "properties": { - "CompressionFormat": { - "enum": [ - "GZIP", - "LZ4", - "SNAPPY", - "BZIP2", - "DEFLATE", - "LZO", - "BROTLI", - "ZSTD", - "ZLIB" - ], - "type": "string" - }, - "Format": { - "enum": [ - "CSV", - "JSON", - "PARQUET", - "GLUEPARQUET", - "AVRO", - "ORC", - "XML", - "TABLEAUHYPER" - ], - "type": "string" - }, - "FormatOptions": { - "$ref": "#/definitions/OutputFormatOptions" - }, - "Location": { - "$ref": "#/definitions/S3Location" - }, - "MaxOutputFiles": { - "maximum": 999, - "minimum": 1, - "type": "integer" - }, - "Overwrite": { - "type": "boolean" - }, - "PartitionColumns": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Location" - ], - "type": "object" - }, - "OutputFormatOptions": { - "additionalProperties": false, - "properties": { - "Csv": { - "$ref": "#/definitions/CsvOutputOptions" - } - }, - "type": "object" - }, - "OutputLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BucketOwner": { - "maxLength": 12, - "minLength": 12, - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^[A-Za-z0-9]{1,128}$": { - "type": "string" - } - }, - "type": "object" - }, - "ProfileConfiguration": { - "additionalProperties": false, - "properties": { - "ColumnStatisticsConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ColumnStatisticsConfiguration" - }, - "minItems": 1, - "type": "array" - }, - "DatasetStatisticsConfiguration": { - "$ref": "#/definitions/StatisticsConfiguration" - }, - "EntityDetectorConfiguration": { - "$ref": "#/definitions/EntityDetectorConfiguration" - }, - "ProfileColumns": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ColumnSelector" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "Recipe": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BucketOwner": { - "maxLength": 12, - "minLength": 12, - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "S3TableOutputOptions": { - "additionalProperties": false, - "properties": { - "Location": { - "$ref": "#/definitions/S3Location" - } - }, - "required": [ - "Location" - ], - "type": "object" - }, - "SampleMode": { - "enum": [ - "FULL_DATASET", - "CUSTOM_ROWS" - ], - "type": "string" - }, - "Statistic": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[A-Z\\_]+$", - "type": "string" - }, - "StatisticOverride": { - "additionalProperties": false, - "properties": { - "Parameters": { - "$ref": "#/definitions/ParameterMap" - }, - "Statistic": { - "$ref": "#/definitions/Statistic" - } - }, - "required": [ - "Statistic", - "Parameters" - ], - "type": "object" - }, - "StatisticsConfiguration": { - "additionalProperties": false, - "properties": { - "IncludedStatistics": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Statistic" - }, - "minItems": 1, - "type": "array" - }, - "Overrides": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/StatisticOverride" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "ValidationConfiguration": { - "additionalProperties": false, - "properties": { - "RulesetArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ValidationMode": { - "$ref": "#/definitions/ValidationMode" - } - }, - "required": [ - "RulesetArn" - ], - "type": "object" - }, - "ValidationMode": { - "enum": [ - "CHECK_ALL" - ], - "type": "string" - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "DataCatalogOutputs": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/DataCatalogOutput" - }, - "type": "array" - }, - "DatabaseOutputs": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/DatabaseOutput" - }, - "type": "array" - }, - "DatasetName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "EncryptionKeyArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "EncryptionMode": { - "enum": [ - "SSE-KMS", - "SSE-S3" - ], - "type": "string" - }, - "JobSample": { - "$ref": "#/definitions/JobSample" - }, - "LogSubscription": { - "enum": [ - "ENABLE", - "DISABLE" - ], - "type": "string" - }, - "MaxCapacity": { - "type": "integer" - }, - "MaxRetries": { - "type": "integer" - }, - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "OutputLocation": { - "$ref": "#/definitions/OutputLocation" - }, - "Outputs": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Output" - }, - "type": "array" - }, - "ProfileConfiguration": { - "$ref": "#/definitions/ProfileConfiguration" - }, - "ProjectName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Recipe": { - "$ref": "#/definitions/Recipe" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Timeout": { - "type": "integer" - }, - "Type": { - "enum": [ - "PROFILE", - "RECIPE" - ], - "type": "string" - }, - "ValidationConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ValidationConfiguration" - }, - "type": "array" - } - }, - "required": [ - "Name", - "RoleArn", - "Type" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-databrew.git", - "taggable": true, - "typeName": "AWS::DataBrew::Job" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-project.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-project.json deleted file mode 100644 index 0363350390..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-project.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Tags" - ], - "definitions": { - "Sample": { - "additionalProperties": false, - "properties": { - "Size": { - "minimum": 1, - "type": "integer" - }, - "Type": { - "enum": [ - "FIRST_N", - "LAST_N", - "RANDOM" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "DatasetName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "RecipeName": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Sample": { - "$ref": "#/definitions/Sample" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "DatasetName", - "Name", - "RecipeName", - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-databrew.git", - "taggable": true, - "typeName": "AWS::DataBrew::Project" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-recipe.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-recipe.json deleted file mode 100644 index 2758e26dd4..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-recipe.json +++ /dev/null @@ -1,539 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Tags" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Operation": { - "type": "string" - }, - "Parameters": { - "anyOf": [ - { - "$ref": "#/definitions/RecipeParameters" - }, - { - "$ref": "#/definitions/ParameterMap" - } - ] - } - }, - "required": [ - "Operation" - ], - "type": "object" - }, - "ConditionExpression": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "TargetColumn": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Condition", - "TargetColumn" - ], - "type": "object" - }, - "DataCatalogInputDefinition": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "TableName": { - "type": "string" - }, - "TempDirectory": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^[A-Za-z0-9]{1,128}$": { - "type": "string" - } - }, - "type": "object" - }, - "RecipeParameters": { - "additionalProperties": false, - "properties": { - "AggregateFunction": { - "type": "string" - }, - "Base": { - "type": "string" - }, - "CaseStatement": { - "type": "string" - }, - "CategoryMap": { - "type": "string" - }, - "CharsToRemove": { - "type": "string" - }, - "CollapseConsecutiveWhitespace": { - "type": "string" - }, - "ColumnDataType": { - "type": "string" - }, - "ColumnRange": { - "type": "string" - }, - "Count": { - "type": "string" - }, - "CustomCharacters": { - "type": "string" - }, - "CustomStopWords": { - "type": "string" - }, - "CustomValue": { - "type": "string" - }, - "DatasetsColumns": { - "type": "string" - }, - "DateAddValue": { - "type": "string" - }, - "DateTimeFormat": { - "type": "string" - }, - "DateTimeParameters": { - "type": "string" - }, - "DeleteOtherRows": { - "type": "string" - }, - "Delimiter": { - "type": "string" - }, - "EndPattern": { - "type": "string" - }, - "EndPosition": { - "type": "string" - }, - "EndValue": { - "type": "string" - }, - "ExpandContractions": { - "type": "string" - }, - "Exponent": { - "type": "string" - }, - "FalseString": { - "type": "string" - }, - "GroupByAggFunctionOptions": { - "type": "string" - }, - "GroupByColumns": { - "type": "string" - }, - "HiddenColumns": { - "type": "string" - }, - "IgnoreCase": { - "type": "string" - }, - "IncludeInSplit": { - "type": "string" - }, - "Input": { - "additionalProperties": false, - "oneOf": [ - { - "required": [ - "S3InputDefinition" - ] - }, - { - "required": [ - "DataCatalogInputDefinition" - ] - } - ], - "properties": { - "DataCatalogInputDefinition": { - "$ref": "#/definitions/DataCatalogInputDefinition" - }, - "S3InputDefinition": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "Interval": { - "type": "string" - }, - "IsText": { - "type": "string" - }, - "JoinKeys": { - "type": "string" - }, - "JoinType": { - "type": "string" - }, - "LeftColumns": { - "type": "string" - }, - "Limit": { - "type": "string" - }, - "LowerBound": { - "type": "string" - }, - "MapType": { - "type": "string" - }, - "ModeType": { - "type": "string" - }, - "MultiLine": { - "type": "boolean" - }, - "NumRows": { - "type": "string" - }, - "NumRowsAfter": { - "type": "string" - }, - "NumRowsBefore": { - "type": "string" - }, - "OrderByColumn": { - "type": "string" - }, - "OrderByColumns": { - "type": "string" - }, - "Other": { - "type": "string" - }, - "Pattern": { - "type": "string" - }, - "PatternOption1": { - "type": "string" - }, - "PatternOption2": { - "type": "string" - }, - "PatternOptions": { - "type": "string" - }, - "Period": { - "type": "string" - }, - "Position": { - "type": "string" - }, - "RemoveAllPunctuation": { - "type": "string" - }, - "RemoveAllQuotes": { - "type": "string" - }, - "RemoveAllWhitespace": { - "type": "string" - }, - "RemoveCustomCharacters": { - "type": "string" - }, - "RemoveCustomValue": { - "type": "string" - }, - "RemoveLeadingAndTrailingPunctuation": { - "type": "string" - }, - "RemoveLeadingAndTrailingQuotes": { - "type": "string" - }, - "RemoveLeadingAndTrailingWhitespace": { - "type": "string" - }, - "RemoveLetters": { - "type": "string" - }, - "RemoveNumbers": { - "type": "string" - }, - "RemoveSourceColumn": { - "type": "string" - }, - "RemoveSpecialCharacters": { - "type": "string" - }, - "RightColumns": { - "type": "string" - }, - "SampleSize": { - "type": "string" - }, - "SampleType": { - "type": "string" - }, - "SecondInput": { - "type": "string" - }, - "SecondaryInputs": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/SecondaryInput" - }, - "type": "array", - "uniqueItems": false - }, - "SheetIndexes": { - "insertionOrder": true, - "items": { - "type": "integer" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - "SheetNames": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - "SourceColumn": { - "type": "string" - }, - "SourceColumn1": { - "type": "string" - }, - "SourceColumn2": { - "type": "string" - }, - "SourceColumns": { - "type": "string" - }, - "StartColumnIndex": { - "type": "string" - }, - "StartPattern": { - "type": "string" - }, - "StartPosition": { - "type": "string" - }, - "StartValue": { - "type": "string" - }, - "StemmingMode": { - "type": "string" - }, - "StepCount": { - "type": "string" - }, - "StepIndex": { - "type": "string" - }, - "StopWordsMode": { - "type": "string" - }, - "Strategy": { - "type": "string" - }, - "TargetColumn": { - "type": "string" - }, - "TargetColumnNames": { - "type": "string" - }, - "TargetDateFormat": { - "type": "string" - }, - "TargetIndex": { - "type": "string" - }, - "TimeZone": { - "type": "string" - }, - "TokenizerPattern": { - "type": "string" - }, - "TrueString": { - "type": "string" - }, - "UdfLang": { - "type": "string" - }, - "Units": { - "type": "string" - }, - "UnpivotColumn": { - "type": "string" - }, - "UpperBound": { - "type": "string" - }, - "UseNewDataFrame": { - "type": "string" - }, - "Value": { - "type": "string" - }, - "Value1": { - "type": "string" - }, - "Value2": { - "type": "string" - }, - "ValueColumn": { - "type": "string" - }, - "ViewFrame": { - "type": "string" - } - } - }, - "RecipeStep": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/Action" - }, - "ConditionExpressions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ConditionExpression" - }, - "type": "array" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "SecondaryInput": { - "additionalProperties": false, - "oneOf": [ - { - "required": [ - "S3InputDefinition" - ] - }, - { - "required": [ - "DataCatalogInputDefinition" - ] - } - ], - "properties": { - "DataCatalogInputDefinition": { - "$ref": "#/definitions/DataCatalogInputDefinition" - }, - "S3InputDefinition": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "Description": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RecipeStep", - "type": "object" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "Name", - "Steps" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-databrew.git", - "taggable": true, - "typeName": "AWS::DataBrew::Recipe" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-ruleset.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-ruleset.json deleted file mode 100644 index 54553a57c0..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-databrew-ruleset.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/TargetArn", - "/properties/Tags" - ], - "definitions": { - "ColumnSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Regex": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Disabled": { - "type": "boolean" - }, - "Expression": { - "maxLength": 1024, - "minLength": 4, - "pattern": "^[><0-9A-Za-z_.,:)(!= ]+$", - "type": "string" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "CheckExpression": { - "$ref": "#/definitions/Expression" - }, - "ColumnSelectors": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ColumnSelector" - }, - "minItems": 1, - "type": "array" - }, - "Disabled": { - "$ref": "#/definitions/Disabled" - }, - "Name": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "SubstitutionMap": { - "$ref": "#/definitions/ValuesMap" - }, - "Threshold": { - "$ref": "#/definitions/Threshold" - } - }, - "required": [ - "Name", - "CheckExpression" - ], - "type": "object" - }, - "SubstitutionValue": { - "additionalProperties": false, - "properties": { - "Value": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "ValueReference": { - "maxLength": 128, - "minLength": 2, - "pattern": "^:[A-Za-z0-9_]+$", - "type": "string" - } - }, - "required": [ - "ValueReference", - "Value" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Threshold": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ThresholdType" - }, - "Unit": { - "$ref": "#/definitions/ThresholdUnit" - }, - "Value": { - "$ref": "#/definitions/ThresholdValue" - } - }, - "required": [ - "Value" - ], - "type": "object" - }, - "ThresholdType": { - "enum": [ - "GREATER_THAN_OR_EQUAL", - "LESS_THAN_OR_EQUAL", - "GREATER_THAN", - "LESS_THAN" - ], - "type": "string" - }, - "ThresholdUnit": { - "enum": [ - "COUNT", - "PERCENTAGE" - ], - "type": "string" - }, - "ThresholdValue": { - "type": "number" - }, - "ValuesMap": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/SubstitutionValue" - }, - "type": "array" - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "Description": { - "maxLength": 1024, - "type": "string" - }, - "Name": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "minItems": 1, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TargetArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "required": [ - "Name", - "TargetArn", - "Rules" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-databrew.git", - "taggable": true, - "typeName": "AWS::DataBrew::Ruleset" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-channel.json new file mode 100644 index 0000000000..a6c907c033 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-channel.json @@ -0,0 +1,3591 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Vpc", + "/properties/AnywhereSettings" + ], + "definitions": { + "AacSettings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "InputType": { + "type": "string" + }, + "Profile": { + "type": "string" + }, + "RateControlMode": { + "type": "string" + }, + "RawFormat": { + "type": "string" + }, + "SampleRate": { + "type": "number" + }, + "Spec": { + "type": "string" + }, + "VbrQuality": { + "type": "string" + } + }, + "type": "object" + }, + "Ac3Settings": { + "additionalProperties": false, + "properties": { + "AttenuationControl": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BitstreamMode": { + "type": "string" + }, + "CodingMode": { + "type": "string" + }, + "Dialnorm": { + "type": "integer" + }, + "DrcProfile": { + "type": "string" + }, + "LfeFilter": { + "type": "string" + }, + "MetadataControl": { + "type": "string" + } + }, + "type": "object" + }, + "AncillarySourceSettings": { + "additionalProperties": false, + "properties": { + "SourceAncillaryChannelNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "AnywhereSettings": { + "additionalProperties": false, + "properties": { + "ChannelPlacementGroupId": { + "type": "string" + }, + "ClusterId": { + "type": "string" + } + }, + "type": "object" + }, + "ArchiveCdnSettings": { + "additionalProperties": false, + "properties": { + "ArchiveS3Settings": { + "$ref": "#/definitions/ArchiveS3Settings" + } + }, + "type": "object" + }, + "ArchiveContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/M2tsSettings" + }, + "RawSettings": { + "$ref": "#/definitions/RawSettings" + } + }, + "type": "object" + }, + "ArchiveGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveCdnSettings": { + "$ref": "#/definitions/ArchiveCdnSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "RolloverInterval": { + "type": "integer" + } + }, + "type": "object" + }, + "ArchiveOutputSettings": { + "additionalProperties": false, + "properties": { + "ContainerSettings": { + "$ref": "#/definitions/ArchiveContainerSettings" + }, + "Extension": { + "type": "string" + }, + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "ArchiveS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "AribDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AribSourceSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AudioChannelMapping": { + "additionalProperties": false, + "properties": { + "InputChannelLevels": { + "items": { + "$ref": "#/definitions/InputChannelLevel" + }, + "type": "array", + "uniqueItems": false + }, + "OutputChannel": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioCodecSettings": { + "additionalProperties": false, + "properties": { + "AacSettings": { + "$ref": "#/definitions/AacSettings" + }, + "Ac3Settings": { + "$ref": "#/definitions/Ac3Settings" + }, + "Eac3AtmosSettings": { + "$ref": "#/definitions/Eac3AtmosSettings" + }, + "Eac3Settings": { + "$ref": "#/definitions/Eac3Settings" + }, + "Mp2Settings": { + "$ref": "#/definitions/Mp2Settings" + }, + "PassThroughSettings": { + "$ref": "#/definitions/PassThroughSettings" + }, + "WavSettings": { + "$ref": "#/definitions/WavSettings" + } + }, + "type": "object" + }, + "AudioDescription": { + "additionalProperties": false, + "properties": { + "AudioDashRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AudioNormalizationSettings": { + "$ref": "#/definitions/AudioNormalizationSettings" + }, + "AudioSelectorName": { + "type": "string" + }, + "AudioType": { + "type": "string" + }, + "AudioTypeControl": { + "type": "string" + }, + "AudioWatermarkingSettings": { + "$ref": "#/definitions/AudioWatermarkSettings" + }, + "CodecSettings": { + "$ref": "#/definitions/AudioCodecSettings" + }, + "DvbDashAccessibility": { + "type": "string" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageCodeControl": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RemixSettings": { + "$ref": "#/definitions/RemixSettings" + }, + "StreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AudioDolbyEDecode": { + "additionalProperties": false, + "properties": { + "ProgramSelection": { + "type": "string" + } + }, + "type": "object" + }, + "AudioHlsRenditionSelection": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AudioLanguageSelection": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "type": "string" + }, + "LanguageSelectionPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AudioNormalizationSettings": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "AlgorithmControl": { + "type": "string" + }, + "TargetLkfs": { + "type": "number" + } + }, + "type": "object" + }, + "AudioOnlyHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioGroupId": { + "type": "string" + }, + "AudioOnlyImage": { + "$ref": "#/definitions/InputLocation" + }, + "AudioTrackType": { + "type": "string" + }, + "SegmentType": { + "type": "string" + } + }, + "type": "object" + }, + "AudioPidSelection": { + "additionalProperties": false, + "properties": { + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AudioSelectorSettings" + } + }, + "type": "object" + }, + "AudioSelectorSettings": { + "additionalProperties": false, + "properties": { + "AudioHlsRenditionSelection": { + "$ref": "#/definitions/AudioHlsRenditionSelection" + }, + "AudioLanguageSelection": { + "$ref": "#/definitions/AudioLanguageSelection" + }, + "AudioPidSelection": { + "$ref": "#/definitions/AudioPidSelection" + }, + "AudioTrackSelection": { + "$ref": "#/definitions/AudioTrackSelection" + } + }, + "type": "object" + }, + "AudioSilenceFailoverSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectorName": { + "type": "string" + }, + "AudioSilenceThresholdMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioTrack": { + "additionalProperties": false, + "properties": { + "Track": { + "type": "integer" + } + }, + "type": "object" + }, + "AudioTrackSelection": { + "additionalProperties": false, + "properties": { + "DolbyEDecode": { + "$ref": "#/definitions/AudioDolbyEDecode" + }, + "Tracks": { + "items": { + "$ref": "#/definitions/AudioTrack" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "AudioWatermarkSettings": { + "additionalProperties": false, + "properties": { + "NielsenWatermarksSettings": { + "$ref": "#/definitions/NielsenWatermarksSettings" + } + }, + "type": "object" + }, + "AutomaticInputFailoverSettings": { + "additionalProperties": false, + "properties": { + "ErrorClearTimeMsec": { + "type": "integer" + }, + "FailoverConditions": { + "items": { + "$ref": "#/definitions/FailoverCondition" + }, + "type": "array", + "uniqueItems": false + }, + "InputPreference": { + "type": "string" + }, + "SecondaryInputId": { + "type": "string" + } + }, + "type": "object" + }, + "Av1ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/ColorSpacePassthroughSettings" + }, + "Hdr10Settings": { + "$ref": "#/definitions/Hdr10Settings" + }, + "Rec601Settings": { + "$ref": "#/definitions/Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/Rec709Settings" + } + }, + "type": "object" + }, + "Av1Settings": { + "additionalProperties": false, + "properties": { + "AfdSignaling": { + "type": "string" + }, + "BufSize": { + "type": "integer" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/Av1ColorSpaceSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "integer" + }, + "MinIInterval": { + "type": "integer" + }, + "ParDenominator": { + "type": "integer" + }, + "ParNumerator": { + "type": "integer" + }, + "QvbrQualityLevel": { + "type": "integer" + }, + "SceneChangeDetect": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + } + }, + "type": "object" + }, + "AvailBlanking": { + "additionalProperties": false, + "properties": { + "AvailBlankingImage": { + "$ref": "#/definitions/InputLocation" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AvailConfiguration": { + "additionalProperties": false, + "properties": { + "AvailSettings": { + "$ref": "#/definitions/AvailSettings" + }, + "Scte35SegmentationScope": { + "type": "string" + } + }, + "type": "object" + }, + "AvailSettings": { + "additionalProperties": false, + "properties": { + "Esam": { + "$ref": "#/definitions/Esam" + }, + "Scte35SpliceInsert": { + "$ref": "#/definitions/Scte35SpliceInsert" + }, + "Scte35TimeSignalApos": { + "$ref": "#/definitions/Scte35TimeSignalApos" + } + }, + "type": "object" + }, + "BandwidthReductionFilterSettings": { + "additionalProperties": false, + "properties": { + "PostFilterSharpening": { + "type": "string" + }, + "Strength": { + "type": "string" + } + }, + "type": "object" + }, + "BlackoutSlate": { + "additionalProperties": false, + "properties": { + "BlackoutSlateImage": { + "$ref": "#/definitions/InputLocation" + }, + "NetworkEndBlackout": { + "type": "string" + }, + "NetworkEndBlackoutImage": { + "$ref": "#/definitions/InputLocation" + }, + "NetworkId": { + "type": "string" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "BurnInDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "BackgroundColor": { + "type": "string" + }, + "BackgroundOpacity": { + "type": "integer" + }, + "Font": { + "$ref": "#/definitions/InputLocation" + }, + "FontColor": { + "type": "string" + }, + "FontOpacity": { + "type": "integer" + }, + "FontResolution": { + "type": "integer" + }, + "FontSize": { + "type": "string" + }, + "OutlineColor": { + "type": "string" + }, + "OutlineSize": { + "type": "integer" + }, + "ShadowColor": { + "type": "string" + }, + "ShadowOpacity": { + "type": "integer" + }, + "ShadowXOffset": { + "type": "integer" + }, + "ShadowYOffset": { + "type": "integer" + }, + "TeletextGridControl": { + "type": "string" + }, + "XPosition": { + "type": "integer" + }, + "YPosition": { + "type": "integer" + } + }, + "type": "object" + }, + "CaptionDescription": { + "additionalProperties": false, + "properties": { + "Accessibility": { + "type": "string" + }, + "CaptionDashRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionSelectorName": { + "type": "string" + }, + "DestinationSettings": { + "$ref": "#/definitions/CaptionDestinationSettings" + }, + "DvbDashAccessibility": { + "type": "string" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageDescription": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "CaptionDestinationSettings": { + "additionalProperties": false, + "properties": { + "AribDestinationSettings": { + "$ref": "#/definitions/AribDestinationSettings" + }, + "BurnInDestinationSettings": { + "$ref": "#/definitions/BurnInDestinationSettings" + }, + "DvbSubDestinationSettings": { + "$ref": "#/definitions/DvbSubDestinationSettings" + }, + "EbuTtDDestinationSettings": { + "$ref": "#/definitions/EbuTtDDestinationSettings" + }, + "EmbeddedDestinationSettings": { + "$ref": "#/definitions/EmbeddedDestinationSettings" + }, + "EmbeddedPlusScte20DestinationSettings": { + "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" + }, + "RtmpCaptionInfoDestinationSettings": { + "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" + }, + "Scte27DestinationSettings": { + "$ref": "#/definitions/Scte27DestinationSettings" + }, + "SmpteTtDestinationSettings": { + "$ref": "#/definitions/SmpteTtDestinationSettings" + }, + "TeletextDestinationSettings": { + "$ref": "#/definitions/TeletextDestinationSettings" + }, + "TtmlDestinationSettings": { + "$ref": "#/definitions/TtmlDestinationSettings" + }, + "WebvttDestinationSettings": { + "$ref": "#/definitions/WebvttDestinationSettings" + } + }, + "type": "object" + }, + "CaptionLanguageMapping": { + "additionalProperties": false, + "properties": { + "CaptionChannel": { + "type": "integer" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageDescription": { + "type": "string" + } + }, + "type": "object" + }, + "CaptionRectangle": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "number" + }, + "LeftOffset": { + "type": "number" + }, + "TopOffset": { + "type": "number" + }, + "Width": { + "type": "number" + } + }, + "type": "object" + }, + "CaptionSelector": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/CaptionSelectorSettings" + } + }, + "type": "object" + }, + "CaptionSelectorSettings": { + "additionalProperties": false, + "properties": { + "AncillarySourceSettings": { + "$ref": "#/definitions/AncillarySourceSettings" + }, + "AribSourceSettings": { + "$ref": "#/definitions/AribSourceSettings" + }, + "DvbSubSourceSettings": { + "$ref": "#/definitions/DvbSubSourceSettings" + }, + "EmbeddedSourceSettings": { + "$ref": "#/definitions/EmbeddedSourceSettings" + }, + "Scte20SourceSettings": { + "$ref": "#/definitions/Scte20SourceSettings" + }, + "Scte27SourceSettings": { + "$ref": "#/definitions/Scte27SourceSettings" + }, + "TeletextSourceSettings": { + "$ref": "#/definitions/TeletextSourceSettings" + } + }, + "type": "object" + }, + "CdiInputSpecification": { + "additionalProperties": false, + "properties": { + "Resolution": { + "type": "string" + } + }, + "type": "object" + }, + "CmafIngestGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "Scte35Type": { + "type": "string" + }, + "SegmentLength": { + "type": "integer" + }, + "SegmentLengthUnits": { + "type": "string" + }, + "SendDelayMs": { + "type": "integer" + } + }, + "type": "object" + }, + "CmafIngestOutputSettings": { + "additionalProperties": false, + "properties": { + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "ColorCorrection": { + "additionalProperties": false, + "properties": { + "InputColorSpace": { + "type": "string" + }, + "OutputColorSpace": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "ColorCorrectionSettings": { + "additionalProperties": false, + "properties": { + "GlobalColorCorrections": { + "items": { + "$ref": "#/definitions/ColorCorrection" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "ColorSpacePassthroughSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "DolbyVision81Settings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "DvbNitSettings": { + "additionalProperties": false, + "properties": { + "NetworkId": { + "type": "integer" + }, + "NetworkName": { + "type": "string" + }, + "RepInterval": { + "type": "integer" + } + }, + "type": "object" + }, + "DvbSdtSettings": { + "additionalProperties": false, + "properties": { + "OutputSdt": { + "type": "string" + }, + "RepInterval": { + "type": "integer" + }, + "ServiceName": { + "type": "string" + }, + "ServiceProviderName": { + "type": "string" + } + }, + "type": "object" + }, + "DvbSubDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "BackgroundColor": { + "type": "string" + }, + "BackgroundOpacity": { + "type": "integer" + }, + "Font": { + "$ref": "#/definitions/InputLocation" + }, + "FontColor": { + "type": "string" + }, + "FontOpacity": { + "type": "integer" + }, + "FontResolution": { + "type": "integer" + }, + "FontSize": { + "type": "string" + }, + "OutlineColor": { + "type": "string" + }, + "OutlineSize": { + "type": "integer" + }, + "ShadowColor": { + "type": "string" + }, + "ShadowOpacity": { + "type": "integer" + }, + "ShadowXOffset": { + "type": "integer" + }, + "ShadowYOffset": { + "type": "integer" + }, + "TeletextGridControl": { + "type": "string" + }, + "XPosition": { + "type": "integer" + }, + "YPosition": { + "type": "integer" + } + }, + "type": "object" + }, + "DvbSubSourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "type": "string" + }, + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "DvbTdtSettings": { + "additionalProperties": false, + "properties": { + "RepInterval": { + "type": "integer" + } + }, + "type": "object" + }, + "Eac3AtmosSettings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "Dialnorm": { + "type": "integer" + }, + "DrcLine": { + "type": "string" + }, + "DrcRf": { + "type": "string" + }, + "HeightTrim": { + "type": "number" + }, + "SurroundTrim": { + "type": "number" + } + }, + "type": "object" + }, + "Eac3Settings": { + "additionalProperties": false, + "properties": { + "AttenuationControl": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BitstreamMode": { + "type": "string" + }, + "CodingMode": { + "type": "string" + }, + "DcFilter": { + "type": "string" + }, + "Dialnorm": { + "type": "integer" + }, + "DrcLine": { + "type": "string" + }, + "DrcRf": { + "type": "string" + }, + "LfeControl": { + "type": "string" + }, + "LfeFilter": { + "type": "string" + }, + "LoRoCenterMixLevel": { + "type": "number" + }, + "LoRoSurroundMixLevel": { + "type": "number" + }, + "LtRtCenterMixLevel": { + "type": "number" + }, + "LtRtSurroundMixLevel": { + "type": "number" + }, + "MetadataControl": { + "type": "string" + }, + "PassthroughControl": { + "type": "string" + }, + "PhaseControl": { + "type": "string" + }, + "StereoDownmix": { + "type": "string" + }, + "SurroundExMode": { + "type": "string" + }, + "SurroundMode": { + "type": "string" + } + }, + "type": "object" + }, + "EbuTtDDestinationSettings": { + "additionalProperties": false, + "properties": { + "CopyrightHolder": { + "type": "string" + }, + "FillLineGap": { + "type": "string" + }, + "FontFamily": { + "type": "string" + }, + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "EmbeddedDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "EmbeddedPlusScte20DestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "EmbeddedSourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "type": "string" + }, + "Scte20Detection": { + "type": "string" + }, + "Source608ChannelNumber": { + "type": "integer" + }, + "Source608TrackNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "EncoderSettings": { + "additionalProperties": false, + "properties": { + "AudioDescriptions": { + "items": { + "$ref": "#/definitions/AudioDescription" + }, + "type": "array", + "uniqueItems": false + }, + "AvailBlanking": { + "$ref": "#/definitions/AvailBlanking" + }, + "AvailConfiguration": { + "$ref": "#/definitions/AvailConfiguration" + }, + "BlackoutSlate": { + "$ref": "#/definitions/BlackoutSlate" + }, + "CaptionDescriptions": { + "items": { + "$ref": "#/definitions/CaptionDescription" + }, + "type": "array", + "uniqueItems": false + }, + "ColorCorrectionSettings": { + "$ref": "#/definitions/ColorCorrectionSettings" + }, + "FeatureActivations": { + "$ref": "#/definitions/FeatureActivations" + }, + "GlobalConfiguration": { + "$ref": "#/definitions/GlobalConfiguration" + }, + "MotionGraphicsConfiguration": { + "$ref": "#/definitions/MotionGraphicsConfiguration" + }, + "NielsenConfiguration": { + "$ref": "#/definitions/NielsenConfiguration" + }, + "OutputGroups": { + "items": { + "$ref": "#/definitions/OutputGroup" + }, + "type": "array", + "uniqueItems": false + }, + "ThumbnailConfiguration": { + "$ref": "#/definitions/ThumbnailConfiguration" + }, + "TimecodeConfig": { + "$ref": "#/definitions/TimecodeConfig" + }, + "VideoDescriptions": { + "items": { + "$ref": "#/definitions/VideoDescription" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EpochLockingSettings": { + "additionalProperties": false, + "properties": { + "CustomEpoch": { + "type": "string" + }, + "JamSyncTime": { + "type": "string" + } + }, + "type": "object" + }, + "Esam": { + "additionalProperties": false, + "properties": { + "AcquisitionPointId": { + "type": "string" + }, + "AdAvailOffset": { + "type": "integer" + }, + "PasswordParam": { + "type": "string" + }, + "PoisEndpoint": { + "type": "string" + }, + "Username": { + "type": "string" + }, + "ZoneIdentity": { + "type": "string" + } + }, + "type": "object" + }, + "FailoverCondition": { + "additionalProperties": false, + "properties": { + "FailoverConditionSettings": { + "$ref": "#/definitions/FailoverConditionSettings" + } + }, + "type": "object" + }, + "FailoverConditionSettings": { + "additionalProperties": false, + "properties": { + "AudioSilenceSettings": { + "$ref": "#/definitions/AudioSilenceFailoverSettings" + }, + "InputLossSettings": { + "$ref": "#/definitions/InputLossFailoverSettings" + }, + "VideoBlackSettings": { + "$ref": "#/definitions/VideoBlackFailoverSettings" + } + }, + "type": "object" + }, + "FeatureActivations": { + "additionalProperties": false, + "properties": { + "InputPrepareScheduleActions": { + "type": "string" + }, + "OutputStaticImageOverlayScheduleActions": { + "type": "string" + } + }, + "type": "object" + }, + "FecOutputSettings": { + "additionalProperties": false, + "properties": { + "ColumnDepth": { + "type": "integer" + }, + "IncludeFec": { + "type": "string" + }, + "RowLength": { + "type": "integer" + } + }, + "type": "object" + }, + "Fmp4HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "TimedMetadataBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "FrameCaptureCdnSettings": { + "additionalProperties": false, + "properties": { + "FrameCaptureS3Settings": { + "$ref": "#/definitions/FrameCaptureS3Settings" + } + }, + "type": "object" + }, + "FrameCaptureGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "FrameCaptureCdnSettings": { + "$ref": "#/definitions/FrameCaptureCdnSettings" + } + }, + "type": "object" + }, + "FrameCaptureHlsSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "FrameCaptureOutputSettings": { + "additionalProperties": false, + "properties": { + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "FrameCaptureS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "FrameCaptureSettings": { + "additionalProperties": false, + "properties": { + "CaptureInterval": { + "type": "integer" + }, + "CaptureIntervalUnits": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + } + }, + "type": "object" + }, + "GlobalConfiguration": { + "additionalProperties": false, + "properties": { + "InitialAudioGain": { + "type": "integer" + }, + "InputEndAction": { + "type": "string" + }, + "InputLossBehavior": { + "$ref": "#/definitions/InputLossBehavior" + }, + "OutputLockingMode": { + "type": "string" + }, + "OutputLockingSettings": { + "$ref": "#/definitions/OutputLockingSettings" + }, + "OutputTimingSource": { + "type": "string" + }, + "SupportLowFramerateInputs": { + "type": "string" + } + }, + "type": "object" + }, + "H264ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/ColorSpacePassthroughSettings" + }, + "Rec601Settings": { + "$ref": "#/definitions/Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/Rec709Settings" + } + }, + "type": "object" + }, + "H264FilterSettings": { + "additionalProperties": false, + "properties": { + "BandwidthReductionFilterSettings": { + "$ref": "#/definitions/BandwidthReductionFilterSettings" + }, + "TemporalFilterSettings": { + "$ref": "#/definitions/TemporalFilterSettings" + } + }, + "type": "object" + }, + "H264Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "Bitrate": { + "type": "integer" + }, + "BufFillPct": { + "type": "integer" + }, + "BufSize": { + "type": "integer" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/H264ColorSpaceSettings" + }, + "EntropyEncoding": { + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/H264FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FlickerAq": { + "type": "string" + }, + "ForceFieldPictures": { + "type": "string" + }, + "FramerateControl": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopBReference": { + "type": "string" + }, + "GopClosedCadence": { + "type": "integer" + }, + "GopNumBFrames": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "integer" + }, + "MinIInterval": { + "type": "integer" + }, + "MinQp": { + "type": "integer" + }, + "NumRefFrames": { + "type": "integer" + }, + "ParControl": { + "type": "string" + }, + "ParDenominator": { + "type": "integer" + }, + "ParNumerator": { + "type": "integer" + }, + "Profile": { + "type": "string" + }, + "QualityLevel": { + "type": "string" + }, + "QvbrQualityLevel": { + "type": "integer" + }, + "RateControlMode": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SceneChangeDetect": { + "type": "string" + }, + "Slices": { + "type": "integer" + }, + "Softness": { + "type": "integer" + }, + "SpatialAq": { + "type": "string" + }, + "SubgopLength": { + "type": "string" + }, + "Syntax": { + "type": "string" + }, + "TemporalAq": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "H265ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/ColorSpacePassthroughSettings" + }, + "DolbyVision81Settings": { + "$ref": "#/definitions/DolbyVision81Settings" + }, + "Hdr10Settings": { + "$ref": "#/definitions/Hdr10Settings" + }, + "Rec601Settings": { + "$ref": "#/definitions/Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/Rec709Settings" + } + }, + "type": "object" + }, + "H265FilterSettings": { + "additionalProperties": false, + "properties": { + "BandwidthReductionFilterSettings": { + "$ref": "#/definitions/BandwidthReductionFilterSettings" + }, + "TemporalFilterSettings": { + "$ref": "#/definitions/TemporalFilterSettings" + } + }, + "type": "object" + }, + "H265Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "AlternativeTransferFunction": { + "type": "string" + }, + "Bitrate": { + "type": "integer" + }, + "BufSize": { + "type": "integer" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/H265ColorSpaceSettings" + }, + "FilterSettings": { + "$ref": "#/definitions/H265FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FlickerAq": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopClosedCadence": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "integer" + }, + "MinIInterval": { + "type": "integer" + }, + "MinQp": { + "type": "integer" + }, + "MvOverPictureBoundaries": { + "type": "string" + }, + "MvTemporalPredictor": { + "type": "string" + }, + "ParDenominator": { + "type": "integer" + }, + "ParNumerator": { + "type": "integer" + }, + "Profile": { + "type": "string" + }, + "QvbrQualityLevel": { + "type": "integer" + }, + "RateControlMode": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SceneChangeDetect": { + "type": "string" + }, + "Slices": { + "type": "integer" + }, + "Tier": { + "type": "string" + }, + "TileHeight": { + "type": "integer" + }, + "TilePadding": { + "type": "string" + }, + "TileWidth": { + "type": "integer" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + }, + "TimecodeInsertion": { + "type": "string" + }, + "TreeblockSize": { + "type": "string" + } + }, + "type": "object" + }, + "Hdr10Settings": { + "additionalProperties": false, + "properties": { + "MaxCll": { + "type": "integer" + }, + "MaxFall": { + "type": "integer" + } + }, + "type": "object" + }, + "HlsAkamaiSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "HttpTransferMode": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + }, + "Salt": { + "type": "string" + }, + "Token": { + "type": "string" + } + }, + "type": "object" + }, + "HlsBasicPutSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "HlsCdnSettings": { + "additionalProperties": false, + "properties": { + "HlsAkamaiSettings": { + "$ref": "#/definitions/HlsAkamaiSettings" + }, + "HlsBasicPutSettings": { + "$ref": "#/definitions/HlsBasicPutSettings" + }, + "HlsMediaStoreSettings": { + "$ref": "#/definitions/HlsMediaStoreSettings" + }, + "HlsS3Settings": { + "$ref": "#/definitions/HlsS3Settings" + }, + "HlsWebdavSettings": { + "$ref": "#/definitions/HlsWebdavSettings" + } + }, + "type": "object" + }, + "HlsGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "BaseUrlContent": { + "type": "string" + }, + "BaseUrlContent1": { + "type": "string" + }, + "BaseUrlManifest": { + "type": "string" + }, + "BaseUrlManifest1": { + "type": "string" + }, + "CaptionLanguageMappings": { + "items": { + "$ref": "#/definitions/CaptionLanguageMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionLanguageSetting": { + "type": "string" + }, + "ClientCache": { + "type": "string" + }, + "CodecSpecification": { + "type": "string" + }, + "ConstantIv": { + "type": "string" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "DirectoryStructure": { + "type": "string" + }, + "DiscontinuityTags": { + "type": "string" + }, + "EncryptionType": { + "type": "string" + }, + "HlsCdnSettings": { + "$ref": "#/definitions/HlsCdnSettings" + }, + "HlsId3SegmentTagging": { + "type": "string" + }, + "IFrameOnlyPlaylists": { + "type": "string" + }, + "IncompleteSegmentBehavior": { + "type": "string" + }, + "IndexNSegments": { + "type": "integer" + }, + "InputLossAction": { + "type": "string" + }, + "IvInManifest": { + "type": "string" + }, + "IvSource": { + "type": "string" + }, + "KeepSegments": { + "type": "integer" + }, + "KeyFormat": { + "type": "string" + }, + "KeyFormatVersions": { + "type": "string" + }, + "KeyProviderSettings": { + "$ref": "#/definitions/KeyProviderSettings" + }, + "ManifestCompression": { + "type": "string" + }, + "ManifestDurationFormat": { + "type": "string" + }, + "MinSegmentLength": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "OutputSelection": { + "type": "string" + }, + "ProgramDateTime": { + "type": "string" + }, + "ProgramDateTimeClock": { + "type": "string" + }, + "ProgramDateTimePeriod": { + "type": "integer" + }, + "RedundantManifest": { + "type": "string" + }, + "SegmentLength": { + "type": "integer" + }, + "SegmentationMode": { + "type": "string" + }, + "SegmentsPerSubdirectory": { + "type": "integer" + }, + "StreamInfResolution": { + "type": "string" + }, + "TimedMetadataId3Frame": { + "type": "string" + }, + "TimedMetadataId3Period": { + "type": "integer" + }, + "TimestampDeltaMilliseconds": { + "type": "integer" + }, + "TsFileMode": { + "type": "string" + } + }, + "type": "object" + }, + "HlsInputSettings": { + "additionalProperties": false, + "properties": { + "Bandwidth": { + "type": "integer" + }, + "BufferSegments": { + "type": "integer" + }, + "Retries": { + "type": "integer" + }, + "RetryInterval": { + "type": "integer" + }, + "Scte35Source": { + "type": "string" + } + }, + "type": "object" + }, + "HlsMediaStoreSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "MediaStoreStorageClass": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "HlsOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "type": "string" + }, + "HlsSettings": { + "$ref": "#/definitions/HlsSettings" + }, + "NameModifier": { + "type": "string" + }, + "SegmentModifier": { + "type": "string" + } + }, + "type": "object" + }, + "HlsS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioOnlyHlsSettings": { + "$ref": "#/definitions/AudioOnlyHlsSettings" + }, + "Fmp4HlsSettings": { + "$ref": "#/definitions/Fmp4HlsSettings" + }, + "FrameCaptureHlsSettings": { + "$ref": "#/definitions/FrameCaptureHlsSettings" + }, + "StandardHlsSettings": { + "$ref": "#/definitions/StandardHlsSettings" + } + }, + "type": "object" + }, + "HlsWebdavSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "integer" + }, + "FilecacheDuration": { + "type": "integer" + }, + "HttpTransferMode": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "HtmlMotionGraphicsSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "InputAttachment": { + "additionalProperties": false, + "properties": { + "AutomaticInputFailoverSettings": { + "$ref": "#/definitions/AutomaticInputFailoverSettings" + }, + "InputAttachmentName": { + "type": "string" + }, + "InputId": { + "type": "string" + }, + "InputSettings": { + "$ref": "#/definitions/InputSettings" + }, + "LogicalInterfaceNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "InputChannelLevel": { + "additionalProperties": false, + "properties": { + "Gain": { + "type": "integer" + }, + "InputChannel": { + "type": "integer" + } + }, + "type": "object" + }, + "InputLocation": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "Uri": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "InputLossBehavior": { + "additionalProperties": false, + "properties": { + "BlackFrameMsec": { + "type": "integer" + }, + "InputLossImageColor": { + "type": "string" + }, + "InputLossImageSlate": { + "$ref": "#/definitions/InputLocation" + }, + "InputLossImageType": { + "type": "string" + }, + "RepeatFrameMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "InputLossFailoverSettings": { + "additionalProperties": false, + "properties": { + "InputLossThresholdMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "InputSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectors": { + "items": { + "$ref": "#/definitions/AudioSelector" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionSelectors": { + "items": { + "$ref": "#/definitions/CaptionSelector" + }, + "type": "array", + "uniqueItems": false + }, + "DeblockFilter": { + "type": "string" + }, + "DenoiseFilter": { + "type": "string" + }, + "FilterStrength": { + "type": "integer" + }, + "InputFilter": { + "type": "string" + }, + "NetworkInputSettings": { + "$ref": "#/definitions/NetworkInputSettings" + }, + "Scte35Pid": { + "type": "integer" + }, + "Smpte2038DataPreference": { + "type": "string" + }, + "SourceEndBehavior": { + "type": "string" + }, + "VideoSelector": { + "$ref": "#/definitions/VideoSelector" + } + }, + "type": "object" + }, + "InputSpecification": { + "additionalProperties": false, + "properties": { + "Codec": { + "type": "string" + }, + "MaximumBitrate": { + "type": "string" + }, + "Resolution": { + "type": "string" + } + }, + "type": "object" + }, + "KeyProviderSettings": { + "additionalProperties": false, + "properties": { + "StaticKeySettings": { + "$ref": "#/definitions/StaticKeySettings" + } + }, + "type": "object" + }, + "M2tsSettings": { + "additionalProperties": false, + "properties": { + "AbsentInputAudioBehavior": { + "type": "string" + }, + "Arib": { + "type": "string" + }, + "AribCaptionsPid": { + "type": "string" + }, + "AribCaptionsPidControl": { + "type": "string" + }, + "AudioBufferModel": { + "type": "string" + }, + "AudioFramesPerPes": { + "type": "integer" + }, + "AudioPids": { + "type": "string" + }, + "AudioStreamType": { + "type": "string" + }, + "Bitrate": { + "type": "integer" + }, + "BufferModel": { + "type": "string" + }, + "CcDescriptor": { + "type": "string" + }, + "DvbNitSettings": { + "$ref": "#/definitions/DvbNitSettings" + }, + "DvbSdtSettings": { + "$ref": "#/definitions/DvbSdtSettings" + }, + "DvbSubPids": { + "type": "string" + }, + "DvbTdtSettings": { + "$ref": "#/definitions/DvbTdtSettings" + }, + "DvbTeletextPid": { + "type": "string" + }, + "Ebif": { + "type": "string" + }, + "EbpAudioInterval": { + "type": "string" + }, + "EbpLookaheadMs": { + "type": "integer" + }, + "EbpPlacement": { + "type": "string" + }, + "EcmPid": { + "type": "string" + }, + "EsRateInPes": { + "type": "string" + }, + "EtvPlatformPid": { + "type": "string" + }, + "EtvSignalPid": { + "type": "string" + }, + "FragmentTime": { + "type": "number" + }, + "Klv": { + "type": "string" + }, + "KlvDataPids": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "NullPacketBitrate": { + "type": "number" + }, + "PatInterval": { + "type": "integer" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "integer" + }, + "PcrPid": { + "type": "string" + }, + "PmtInterval": { + "type": "integer" + }, + "PmtPid": { + "type": "string" + }, + "ProgramNum": { + "type": "integer" + }, + "RateMode": { + "type": "string" + }, + "Scte27Pids": { + "type": "string" + }, + "Scte35Control": { + "type": "string" + }, + "Scte35Pid": { + "type": "string" + }, + "Scte35PrerollPullupMilliseconds": { + "type": "number" + }, + "SegmentationMarkers": { + "type": "string" + }, + "SegmentationStyle": { + "type": "string" + }, + "SegmentationTime": { + "type": "number" + }, + "TimedMetadataBehavior": { + "type": "string" + }, + "TimedMetadataPid": { + "type": "string" + }, + "TransportStreamId": { + "type": "integer" + }, + "VideoPid": { + "type": "string" + } + }, + "type": "object" + }, + "M3u8Settings": { + "additionalProperties": false, + "properties": { + "AudioFramesPerPes": { + "type": "integer" + }, + "AudioPids": { + "type": "string" + }, + "EcmPid": { + "type": "string" + }, + "KlvBehavior": { + "type": "string" + }, + "KlvDataPids": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "PatInterval": { + "type": "integer" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "integer" + }, + "PcrPid": { + "type": "string" + }, + "PmtInterval": { + "type": "integer" + }, + "PmtPid": { + "type": "string" + }, + "ProgramNum": { + "type": "integer" + }, + "Scte35Behavior": { + "type": "string" + }, + "Scte35Pid": { + "type": "string" + }, + "TimedMetadataBehavior": { + "type": "string" + }, + "TimedMetadataPid": { + "type": "string" + }, + "TransportStreamId": { + "type": "integer" + }, + "VideoPid": { + "type": "string" + } + }, + "type": "object" + }, + "MaintenanceCreateSettings": { + "additionalProperties": false, + "properties": { + "MaintenanceDay": { + "type": "string" + }, + "MaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "MediaPackageGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + } + }, + "type": "object" + }, + "MediaPackageOutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + } + }, + "type": "object" + }, + "MediaPackageOutputSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "MotionGraphicsConfiguration": { + "additionalProperties": false, + "properties": { + "MotionGraphicsInsertion": { + "type": "string" + }, + "MotionGraphicsSettings": { + "$ref": "#/definitions/MotionGraphicsSettings" + } + }, + "type": "object" + }, + "MotionGraphicsSettings": { + "additionalProperties": false, + "properties": { + "HtmlMotionGraphicsSettings": { + "$ref": "#/definitions/HtmlMotionGraphicsSettings" + } + }, + "type": "object" + }, + "Mp2Settings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "SampleRate": { + "type": "number" + } + }, + "type": "object" + }, + "Mpeg2FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/TemporalFilterSettings" + } + }, + "type": "object" + }, + "Mpeg2Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpace": { + "type": "string" + }, + "DisplayAspectRatio": { + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/Mpeg2FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FramerateDenominator": { + "type": "integer" + }, + "FramerateNumerator": { + "type": "integer" + }, + "GopClosedCadence": { + "type": "integer" + }, + "GopNumBFrames": { + "type": "integer" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SubgopLength": { + "type": "string" + }, + "TimecodeBurninSettings": { + "$ref": "#/definitions/TimecodeBurninSettings" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "MsSmoothGroupSettings": { + "additionalProperties": false, + "properties": { + "AcquisitionPointId": { + "type": "string" + }, + "AudioOnlyTimecodeControl": { + "type": "string" + }, + "CertificateMode": { + "type": "string" + }, + "ConnectionRetryInterval": { + "type": "integer" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "EventId": { + "type": "string" + }, + "EventIdMode": { + "type": "string" + }, + "EventStopBehavior": { + "type": "string" + }, + "FilecacheDuration": { + "type": "integer" + }, + "FragmentLength": { + "type": "integer" + }, + "InputLossAction": { + "type": "string" + }, + "NumRetries": { + "type": "integer" + }, + "RestartDelay": { + "type": "integer" + }, + "SegmentationMode": { + "type": "string" + }, + "SendDelayMs": { + "type": "integer" + }, + "SparseTrackType": { + "type": "string" + }, + "StreamManifestBehavior": { + "type": "string" + }, + "TimestampOffset": { + "type": "string" + }, + "TimestampOffsetMode": { + "type": "string" + } + }, + "type": "object" + }, + "MsSmoothOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "type": "string" + }, + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "MulticastInputSettings": { + "additionalProperties": false, + "properties": { + "SourceIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "MultiplexContainerSettings": { + "additionalProperties": false, + "properties": { + "MultiplexM2tsSettings": { + "$ref": "#/definitions/MultiplexM2tsSettings" + } + }, + "type": "object" + }, + "MultiplexGroupSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "MultiplexM2tsSettings": { + "additionalProperties": false, + "properties": { + "AbsentInputAudioBehavior": { + "type": "string" + }, + "Arib": { + "type": "string" + }, + "AudioBufferModel": { + "type": "string" + }, + "AudioFramesPerPes": { + "type": "integer" + }, + "AudioStreamType": { + "type": "string" + }, + "CcDescriptor": { + "type": "string" + }, + "Ebif": { + "type": "string" + }, + "EsRateInPes": { + "type": "string" + }, + "Klv": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "integer" + }, + "Scte35Control": { + "type": "string" + }, + "Scte35PrerollPullupMilliseconds": { + "type": "number" + } + }, + "type": "object" + }, + "MultiplexOutputSettings": { + "additionalProperties": false, + "properties": { + "ContainerSettings": { + "$ref": "#/definitions/MultiplexContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + } + }, + "type": "object" + }, + "MultiplexProgramChannelDestinationSettings": { + "additionalProperties": false, + "properties": { + "MultiplexId": { + "type": "string" + }, + "ProgramName": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkInputSettings": { + "additionalProperties": false, + "properties": { + "HlsInputSettings": { + "$ref": "#/definitions/HlsInputSettings" + }, + "MulticastInputSettings": { + "$ref": "#/definitions/MulticastInputSettings" + }, + "ServerValidation": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenCBET": { + "additionalProperties": false, + "properties": { + "CbetCheckDigitString": { + "type": "string" + }, + "CbetStepaside": { + "type": "string" + }, + "Csid": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenConfiguration": { + "additionalProperties": false, + "properties": { + "DistributorId": { + "type": "string" + }, + "NielsenPcmToId3Tagging": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenNaesIiNw": { + "additionalProperties": false, + "properties": { + "CheckDigitString": { + "type": "string" + }, + "Sid": { + "type": "number" + }, + "Timezone": { + "type": "string" + } + }, + "type": "object" + }, + "NielsenWatermarksSettings": { + "additionalProperties": false, + "properties": { + "NielsenCbetSettings": { + "$ref": "#/definitions/NielsenCBET" + }, + "NielsenDistributionType": { + "type": "string" + }, + "NielsenNaesIiNwSettings": { + "$ref": "#/definitions/NielsenNaesIiNw" + } + }, + "type": "object" + }, + "Output": { + "additionalProperties": false, + "properties": { + "AudioDescriptionNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CaptionDescriptionNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "OutputName": { + "type": "string" + }, + "OutputSettings": { + "$ref": "#/definitions/OutputSettings" + }, + "VideoDescriptionName": { + "type": "string" + } + }, + "type": "object" + }, + "OutputDestination": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "MediaPackageSettings": { + "items": { + "$ref": "#/definitions/MediaPackageOutputDestinationSettings" + }, + "type": "array", + "uniqueItems": false + }, + "MultiplexSettings": { + "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" + }, + "Settings": { + "items": { + "$ref": "#/definitions/OutputDestinationSettings" + }, + "type": "array", + "uniqueItems": false + }, + "SrtSettings": { + "items": { + "$ref": "#/definitions/SrtOutputDestinationSettings" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "StreamName": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "OutputGroup": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "OutputGroupSettings": { + "$ref": "#/definitions/OutputGroupSettings" + }, + "Outputs": { + "items": { + "$ref": "#/definitions/Output" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OutputGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveGroupSettings": { + "$ref": "#/definitions/ArchiveGroupSettings" + }, + "CmafIngestGroupSettings": { + "$ref": "#/definitions/CmafIngestGroupSettings" + }, + "FrameCaptureGroupSettings": { + "$ref": "#/definitions/FrameCaptureGroupSettings" + }, + "HlsGroupSettings": { + "$ref": "#/definitions/HlsGroupSettings" + }, + "MediaPackageGroupSettings": { + "$ref": "#/definitions/MediaPackageGroupSettings" + }, + "MsSmoothGroupSettings": { + "$ref": "#/definitions/MsSmoothGroupSettings" + }, + "MultiplexGroupSettings": { + "$ref": "#/definitions/MultiplexGroupSettings" + }, + "RtmpGroupSettings": { + "$ref": "#/definitions/RtmpGroupSettings" + }, + "SrtGroupSettings": { + "$ref": "#/definitions/SrtGroupSettings" + }, + "UdpGroupSettings": { + "$ref": "#/definitions/UdpGroupSettings" + } + }, + "type": "object" + }, + "OutputLocationRef": { + "additionalProperties": false, + "properties": { + "DestinationRefId": { + "type": "string" + } + }, + "type": "object" + }, + "OutputLockingSettings": { + "additionalProperties": false, + "properties": { + "EpochLockingSettings": { + "$ref": "#/definitions/EpochLockingSettings" + }, + "PipelineLockingSettings": { + "$ref": "#/definitions/PipelineLockingSettings" + } + }, + "type": "object" + }, + "OutputSettings": { + "additionalProperties": false, + "properties": { + "ArchiveOutputSettings": { + "$ref": "#/definitions/ArchiveOutputSettings" + }, + "CmafIngestOutputSettings": { + "$ref": "#/definitions/CmafIngestOutputSettings" + }, + "FrameCaptureOutputSettings": { + "$ref": "#/definitions/FrameCaptureOutputSettings" + }, + "HlsOutputSettings": { + "$ref": "#/definitions/HlsOutputSettings" + }, + "MediaPackageOutputSettings": { + "$ref": "#/definitions/MediaPackageOutputSettings" + }, + "MsSmoothOutputSettings": { + "$ref": "#/definitions/MsSmoothOutputSettings" + }, + "MultiplexOutputSettings": { + "$ref": "#/definitions/MultiplexOutputSettings" + }, + "RtmpOutputSettings": { + "$ref": "#/definitions/RtmpOutputSettings" + }, + "SrtOutputSettings": { + "$ref": "#/definitions/SrtOutputSettings" + }, + "UdpOutputSettings": { + "$ref": "#/definitions/UdpOutputSettings" + } + }, + "type": "object" + }, + "PassThroughSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PipelineLockingSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RawSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Rec601Settings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Rec709Settings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RemixSettings": { + "additionalProperties": false, + "properties": { + "ChannelMappings": { + "items": { + "$ref": "#/definitions/AudioChannelMapping" + }, + "type": "array", + "uniqueItems": false + }, + "ChannelsIn": { + "type": "integer" + }, + "ChannelsOut": { + "type": "integer" + } + }, + "type": "object" + }, + "RtmpCaptionInfoDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RtmpGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AuthenticationScheme": { + "type": "string" + }, + "CacheFullBehavior": { + "type": "string" + }, + "CacheLength": { + "type": "integer" + }, + "CaptionData": { + "type": "string" + }, + "IncludeFillerNalUnits": { + "type": "string" + }, + "InputLossAction": { + "type": "string" + }, + "RestartDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "RtmpOutputSettings": { + "additionalProperties": false, + "properties": { + "CertificateMode": { + "type": "string" + }, + "ConnectionRetryInterval": { + "type": "integer" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "NumRetries": { + "type": "integer" + } + }, + "type": "object" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Scte20SourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "type": "string" + }, + "Source608ChannelNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "Scte27DestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Scte27SourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "type": "string" + }, + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "Scte35SpliceInsert": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "type": "integer" + }, + "NoRegionalBlackoutFlag": { + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "type": "string" + } + }, + "type": "object" + }, + "Scte35TimeSignalApos": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "type": "integer" + }, + "NoRegionalBlackoutFlag": { + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "type": "string" + } + }, + "type": "object" + }, + "SmpteTtDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SrtGroupSettings": { + "additionalProperties": false, + "properties": { + "InputLossAction": { + "type": "string" + } + }, + "type": "object" + }, + "SrtOutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "EncryptionPassphraseSecretArn": { + "type": "string" + }, + "StreamId": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "SrtOutputSettings": { + "additionalProperties": false, + "properties": { + "BufferMsec": { + "type": "integer" + }, + "ContainerSettings": { + "$ref": "#/definitions/UdpContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "EncryptionType": { + "type": "string" + }, + "Latency": { + "type": "integer" + } + }, + "type": "object" + }, + "StandardHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "type": "string" + }, + "M3u8Settings": { + "$ref": "#/definitions/M3u8Settings" + } + }, + "type": "object" + }, + "StaticKeySettings": { + "additionalProperties": false, + "properties": { + "KeyProviderServer": { + "$ref": "#/definitions/InputLocation" + }, + "StaticKeyValue": { + "type": "string" + } + }, + "type": "object" + }, + "TeletextDestinationSettings": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TeletextSourceSettings": { + "additionalProperties": false, + "properties": { + "OutputRectangle": { + "$ref": "#/definitions/CaptionRectangle" + }, + "PageNumber": { + "type": "string" + } + }, + "type": "object" + }, + "TemporalFilterSettings": { + "additionalProperties": false, + "properties": { + "PostFilterSharpening": { + "type": "string" + }, + "Strength": { + "type": "string" + } + }, + "type": "object" + }, + "ThumbnailConfiguration": { + "additionalProperties": false, + "properties": { + "State": { + "type": "string" + } + }, + "type": "object" + }, + "TimecodeBurninSettings": { + "additionalProperties": false, + "properties": { + "FontSize": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "type": "object" + }, + "TimecodeConfig": { + "additionalProperties": false, + "properties": { + "Source": { + "type": "string" + }, + "SyncThreshold": { + "type": "integer" + } + }, + "type": "object" + }, + "TtmlDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "UdpContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/M2tsSettings" + } + }, + "type": "object" + }, + "UdpGroupSettings": { + "additionalProperties": false, + "properties": { + "InputLossAction": { + "type": "string" + }, + "TimedMetadataId3Frame": { + "type": "string" + }, + "TimedMetadataId3Period": { + "type": "integer" + } + }, + "type": "object" + }, + "UdpOutputSettings": { + "additionalProperties": false, + "properties": { + "BufferMsec": { + "type": "integer" + }, + "ContainerSettings": { + "$ref": "#/definitions/UdpContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/OutputLocationRef" + }, + "FecOutputSettings": { + "$ref": "#/definitions/FecOutputSettings" + } + }, + "type": "object" + }, + "VideoBlackFailoverSettings": { + "additionalProperties": false, + "properties": { + "BlackDetectThreshold": { + "type": "number" + }, + "VideoBlackThresholdMsec": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoCodecSettings": { + "additionalProperties": false, + "properties": { + "Av1Settings": { + "$ref": "#/definitions/Av1Settings" + }, + "FrameCaptureSettings": { + "$ref": "#/definitions/FrameCaptureSettings" + }, + "H264Settings": { + "$ref": "#/definitions/H264Settings" + }, + "H265Settings": { + "$ref": "#/definitions/H265Settings" + }, + "Mpeg2Settings": { + "$ref": "#/definitions/Mpeg2Settings" + } + }, + "type": "object" + }, + "VideoDescription": { + "additionalProperties": false, + "properties": { + "CodecSettings": { + "$ref": "#/definitions/VideoCodecSettings" + }, + "Height": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "RespondToAfd": { + "type": "string" + }, + "ScalingBehavior": { + "type": "string" + }, + "Sharpness": { + "type": "integer" + }, + "Width": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoSelector": { + "additionalProperties": false, + "properties": { + "ColorSpace": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/VideoSelectorColorSpaceSettings" + }, + "ColorSpaceUsage": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/VideoSelectorSettings" + } + }, + "type": "object" + }, + "VideoSelectorColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "Hdr10Settings": { + "$ref": "#/definitions/Hdr10Settings" + } + }, + "type": "object" + }, + "VideoSelectorPid": { + "additionalProperties": false, + "properties": { + "Pid": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoSelectorProgramId": { + "additionalProperties": false, + "properties": { + "ProgramId": { + "type": "integer" + } + }, + "type": "object" + }, + "VideoSelectorSettings": { + "additionalProperties": false, + "properties": { + "VideoSelectorPid": { + "$ref": "#/definitions/VideoSelectorPid" + }, + "VideoSelectorProgramId": { + "$ref": "#/definitions/VideoSelectorProgramId" + } + }, + "type": "object" + }, + "VpcOutputSettings": { + "additionalProperties": false, + "properties": { + "PublicAddressAllocationIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "WavSettings": { + "additionalProperties": false, + "properties": { + "BitDepth": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "SampleRate": { + "type": "number" + } + }, + "type": "object" + }, + "WebvttDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AnywhereSettings": { + "$ref": "#/definitions/AnywhereSettings" + }, + "Arn": { + "type": "string" + }, + "CdiInputSpecification": { + "$ref": "#/definitions/CdiInputSpecification" + }, + "ChannelClass": { + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/OutputDestination" + }, + "type": "array", + "uniqueItems": false + }, + "EncoderSettings": { + "$ref": "#/definitions/EncoderSettings" + }, + "Id": { + "type": "string" + }, + "InputAttachments": { + "items": { + "$ref": "#/definitions/InputAttachment" + }, + "type": "array", + "uniqueItems": false + }, + "InputSpecification": { + "$ref": "#/definitions/InputSpecification" + }, + "Inputs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LogLevel": { + "type": "string" + }, + "Maintenance": { + "$ref": "#/definitions/MaintenanceCreateSettings" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Vpc": { + "$ref": "#/definitions/VpcOutputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Inputs", + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::MediaLive::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-input.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-input.json new file mode 100644 index 0000000000..da0d73a7e8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-input.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Vpc", + "/properties/Type", + "/properties/InputNetworkLocation" + ], + "definitions": { + "InputDestinationRequest": { + "additionalProperties": false, + "properties": { + "Network": { + "type": "string" + }, + "NetworkRoutes": { + "items": { + "$ref": "#/definitions/InputRequestDestinationRoute" + }, + "type": "array", + "uniqueItems": false + }, + "StaticIpAddress": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "type": "object" + }, + "InputDeviceSettings": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + } + }, + "type": "object" + }, + "InputRequestDestinationRoute": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Gateway": { + "type": "string" + } + }, + "type": "object" + }, + "InputSourceRequest": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "InputVpcRequest": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MediaConnectFlowRequest": { + "additionalProperties": false, + "properties": { + "FlowArn": { + "type": "string" + } + }, + "type": "object" + }, + "MulticastSettingsCreateRequest": { + "additionalProperties": false, + "properties": { + "Sources": { + "items": { + "$ref": "#/definitions/MulticastSourceCreateRequest" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MulticastSourceCreateRequest": { + "additionalProperties": false, + "properties": { + "SourceIp": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "SrtCallerDecryptionRequest": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "PassphraseSecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "SrtCallerSourceRequest": { + "additionalProperties": false, + "properties": { + "Decryption": { + "$ref": "#/definitions/SrtCallerDecryptionRequest" + }, + "MinimumLatency": { + "type": "integer" + }, + "SrtListenerAddress": { + "type": "string" + }, + "SrtListenerPort": { + "type": "string" + }, + "StreamId": { + "type": "string" + } + }, + "type": "object" + }, + "SrtSettingsRequest": { + "additionalProperties": false, + "properties": { + "SrtCallerSources": { + "items": { + "$ref": "#/definitions/SrtCallerSourceRequest" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/InputDestinationRequest" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "InputDevices": { + "items": { + "$ref": "#/definitions/InputDeviceSettings" + }, + "type": "array", + "uniqueItems": false + }, + "InputNetworkLocation": { + "type": "string" + }, + "InputSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MediaConnectFlows": { + "items": { + "$ref": "#/definitions/MediaConnectFlowRequest" + }, + "type": "array", + "uniqueItems": false + }, + "MulticastSettings": { + "$ref": "#/definitions/MulticastSettingsCreateRequest" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/InputSourceRequest" + }, + "type": "array", + "uniqueItems": false + }, + "SrtSettings": { + "$ref": "#/definitions/SrtSettingsRequest" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Type": { + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/InputVpcRequest" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::MediaLive::Input" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..03475784a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-route53resolver-resolverrule.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/DomainName" + ], + "createOnlyProperties": [ + "/properties/RuleType" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "maxLength": 65535, + "minLength": 0, + "type": "string" + }, + "Protocol": { + "enum": [ + "Do53", + "DoH" + ], + "type": "string" + }, + "ServerNameIndication": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "ResolverEndpointId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "enum": [ + "FORWARD", + "SYSTEM", + "RECURSIVE", + "DELEGATE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DomainName": "$join([DomainName, \".\"]) $OR DomainName" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ResolverRuleId" + ], + "required": [ + "RuleType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53resolver.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json deleted file mode 100644 index b385b468dc..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-identityprovider.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PortalArn" - ], - "definitions": { - "IdentityProviderDetails": { - "additionalProperties": false, - "patternProperties": { - "^[\\s\\S]*$": { - "maxLength": 131072, - "minLength": 0, - "pattern": "^[\\s\\S]*$", - "type": "string" - } - }, - "type": "object" - }, - "IdentityProviderType": { - "enum": [ - "SAML", - "Facebook", - "Google", - "LoginWithAmazon", - "SignInWithApple", - "OIDC" - ], - "type": "string" - } - }, - "primaryIdentifier": [ - "/properties/IdentityProviderArn" - ], - "properties": { - "IdentityProviderArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36}){2,}$", - "type": "string" - }, - "IdentityProviderDetails": { - "$ref": "#/definitions/IdentityProviderDetails" - }, - "IdentityProviderName": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+$", - "type": "string" - }, - "IdentityProviderType": { - "$ref": "#/definitions/IdentityProviderType", - "enum": [ - "Facebook", - "Google", - "LoginWithAmazon", - "OIDC", - "SAML", - "SignInWithApple" - ] - }, - "PortalArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IdentityProviderArn" - ], - "required": [ - "IdentityProviderDetails", - "IdentityProviderName", - "IdentityProviderType" - ], - "sourceUrl": "https://github.com/shivankgoel/aws-cloudformation-resource-providers-workspaces-web", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::WorkSpacesWeb::IdentityProvider", - "writeOnlyProperties": [ - "/properties/PortalArn" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json deleted file mode 100644 index 4d3494b4b2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesweb-usersettings.json +++ /dev/null @@ -1,218 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AdditionalEncryptionContext", - "/properties/CustomerManagedKey" - ], - "definitions": { - "CookieSpecification": { - "additionalProperties": false, - "properties": { - "Domain": { - "maxLength": 253, - "minLength": 0, - "pattern": "^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$", - "type": "string" - }, - "Name": { - "maxLength": 4096, - "minLength": 0, - "type": "string" - }, - "Path": { - "maxLength": 2000, - "minLength": 0, - "pattern": "^/(\\S)*$", - "type": "string" - } - }, - "required": [ - "Domain" - ], - "type": "object" - }, - "CookieSynchronizationConfiguration": { - "additionalProperties": false, - "properties": { - "Allowlist": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CookieSpecification" - }, - "maxItems": 10, - "minItems": 0, - "type": "array" - }, - "Blocklist": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CookieSpecification" - }, - "maxItems": 10, - "minItems": 0, - "type": "array" - } - }, - "required": [ - "Allowlist" - ], - "type": "object" - }, - "EnabledType": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "EncryptionContextMap": { - "additionalProperties": false, - "patternProperties": { - "^[\\s\\S]*$": { - "maxLength": 131072, - "minLength": 0, - "pattern": "^[\\s\\S]*$", - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/UserSettingsArn" - ], - "properties": { - "AdditionalEncryptionContext": { - "$ref": "#/definitions/EncryptionContextMap" - }, - "AssociatedPortalArns": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "type": "array" - }, - "CookieSynchronizationConfiguration": { - "$ref": "#/definitions/CookieSynchronizationConfiguration" - }, - "CopyAllowed": { - "$ref": "#/definitions/EnabledType", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "CustomerManagedKey": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+$", - "type": "string" - }, - "DeepLinkAllowed": { - "$ref": "#/definitions/EnabledType", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "DisconnectTimeoutInMinutes": { - "default": null, - "maximum": 600, - "minimum": 1, - "type": "number" - }, - "DownloadAllowed": { - "$ref": "#/definitions/EnabledType", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "IdleDisconnectTimeoutInMinutes": { - "default": null, - "maximum": 60, - "minimum": 0, - "type": "number" - }, - "PasteAllowed": { - "$ref": "#/definitions/EnabledType", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "PrintAllowed": { - "$ref": "#/definitions/EnabledType", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - }, - "UploadAllowed": { - "$ref": "#/definitions/EnabledType", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "UserSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AssociatedPortalArns", - "/properties/UserSettingsArn" - ], - "required": [ - "CopyAllowed", - "DownloadAllowed", - "PasteAllowed", - "PrintAllowed", - "UploadAllowed" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::WorkSpacesWeb::UserSettings" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py index d778236ad9..5c16b63582 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py @@ -1477,7 +1477,6 @@ "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", "aws-dms-replicationconfig.json", - "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", "aws-docdb-dbcluster.json", @@ -1589,9 +1588,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1789,7 +1786,6 @@ "aws-kendra-datasource.json", "aws-kendra-faq.json", "aws-kendra-index.json", - "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-application.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1922,7 +1918,6 @@ "aws-neptunegraph-graph.json", "aws-neptunegraph-privategraphendpoint.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -2013,7 +2008,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -2022,7 +2016,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", @@ -2071,7 +2064,6 @@ "aws-route53resolver-resolverendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-route53resolver-resolverrule.json", "aws-route53resolver-resolverruleassociation.json", "aws-rum-appmonitor.json", "aws-s3-accessgrant.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-dms-replicationinstance.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-dms-replicationinstance.json new file mode 100644 index 0000000000..3d4dfcb1dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-dms-replicationinstance.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/ResourceIdentifier", + "/properties/ReplicationSubnetGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationInstancePrivateIpAddresses": { + "type": "string" + }, + "ReplicationInstancePublicIpAddresses": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ReplicationInstancePublicIpAddresses", + "/properties/Id", + "/properties/ReplicationInstancePrivateIpAddresses" + ], + "required": [ + "ReplicationInstanceClass" + ], + "typeName": "AWS::DMS::ReplicationInstance" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbcluster.json new file mode 100644 index 0000000000..46000178b5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbcluster.json @@ -0,0 +1,397 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbsubnetgroup.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbsubnetgroup.json new file mode 100644 index 0000000000..d228afbbad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbsubnetgroup.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DBSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBSubnetGroupName" + ], + "properties": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..03475784a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-route53resolver-resolverrule.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/DomainName" + ], + "createOnlyProperties": [ + "/properties/RuleType" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "maxLength": 65535, + "minLength": 0, + "type": "string" + }, + "Protocol": { + "enum": [ + "Do53", + "DoH" + ], + "type": "string" + }, + "ServerNameIndication": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 0, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "ResolverEndpointId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "enum": [ + "FORWARD", + "SYSTEM", + "RECURSIVE", + "DELEGATE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DomainName": "$join([DomainName, \".\"]) $OR DomainName" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ResolverRuleId" + ], + "required": [ + "RuleType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53resolver.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py index 715049fee0..0b68a06e63 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -1330,9 +1330,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1416,7 +1414,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1483,7 +1480,6 @@ "aws-kafkaconnect-connector.json", "aws-kafkaconnect-customplugin.json", "aws-kafkaconnect-workerconfiguration.json", - "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", @@ -1594,7 +1590,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py index f29477f428..450505a7d6 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py @@ -912,9 +912,7 @@ "aws-ecs-capacityprovider.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -976,7 +974,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1002,7 +999,6 @@ "aws-imagebuilder-imagerecipe.json", "aws-imagebuilder-infrastructureconfiguration.json", "aws-imagebuilder-workflow.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1048,7 +1044,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1081,7 +1076,6 @@ "aws-pcaconnectorscep-connector.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1090,7 +1084,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", @@ -1162,6 +1155,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", + "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..46000178b5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json @@ -0,0 +1,397 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbsubnetgroup.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbsubnetgroup.json new file mode 100644 index 0000000000..d228afbbad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbsubnetgroup.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DBSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBSubnetGroupName" + ], + "properties": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-secretsmanager-secrettargetattachment.json deleted file mode 100644 index 8b5501d290..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-secretsmanager-secrettargetattachment.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "SecretId": { - "type": "string" - }, - "TargetId": { - "type": "string" - }, - "TargetType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SecretId", - "TargetType", - "TargetId" - ], - "typeName": "AWS::SecretsManager::SecretTargetAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py index f956801503..3fdcf42927 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py @@ -927,9 +927,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1003,7 +1001,6 @@ "aws-glue-trigger.json", "aws-glue-usageprofile.json", "aws-glue-workflow.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1062,7 +1059,6 @@ "aws-iot-thingtype.json", "aws-iot-topicrule.json", "aws-iot-topicruledestination.json", - "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", @@ -1119,7 +1115,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json index c08ad7d3cf..3f8a8acd62 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json @@ -9,10 +9,6 @@ ], "properties": { "AutoPlacement": { - "enum": [ - "off", - "on" - ], "type": "string" }, "AvailabilityZone": { diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json index fee0c5bbb0..b710c22a22 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json @@ -15,15 +15,6 @@ "type": "boolean" }, "Type": { - "enum": [ - "ByteMatch", - "GeoMatch", - "IPMatch", - "RegexMatch", - "SizeConstraint", - "SqlInjectionMatch", - "XssMatch" - ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py index 0bd3a7efdc..d3cc82586e 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -1115,9 +1115,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1205,7 +1203,6 @@ "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", "aws-groundstation-missionprofile.json", - "aws-guardduty-detector.json", "aws-guardduty-filter.json", "aws-guardduty-ipset.json", "aws-guardduty-malwareprotectionplan.json", @@ -1269,7 +1266,6 @@ "aws-iot-thingtype.json", "aws-iot-topicrule.json", "aws-iot-topicruledestination.json", - "aws-kinesis-stream.json", "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", @@ -1322,7 +1318,6 @@ "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", - "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", "aws-networkfirewall-rulegroup.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1365,7 +1360,6 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1374,7 +1368,6 @@ "aws-rds-dbproxytargetgroup.json", "aws-rds-dbsecuritygroup.json", "aws-rds-dbsecuritygroupingress.json", - "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", "aws-rds-integration.json", @@ -1464,6 +1457,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", + "aws-secretsmanager-secrettargetattachment.json", "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-guardduty-detector.json new file mode 100644 index 0000000000..efaad17ff9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-guardduty-detector.json @@ -0,0 +1,184 @@ +{ + "additionalProperties": false, + "definitions": { + "CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "CFNFeatureAdditionalConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "CFNFeatureConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalConfiguration": { + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + }, + "type": "array" + }, + "Name": { + "maxLength": 128, + "type": "string" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ], + "type": "object" + }, + "CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "Features": { + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + }, + "type": "array" + }, + "FindingPublishingFrequency": { + "enum": [ + "FIFTEEN_MINUTES", + "ONE_HOUR", + "SIX_HOURS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Enable" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Detector" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-kinesis-stream.json new file mode 100644 index 0000000000..be1bc65c07 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-kinesis-stream.json @@ -0,0 +1,133 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "enum": [ + "KMS" + ], + "type": "string" + }, + "KeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "enum": [ + "ON_DEMAND", + "PROVISIONED" + ], + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RetentionPeriodHours": { + "maximum": 8760, + "minimum": 1, + "type": "integer" + }, + "ShardCount": { + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "StreamEncryption": { + "$ref": "#/definitions/StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/StreamModeDetails", + "default": { + "StreamMode": "PROVISIONED" + } + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Kinesis::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..973b595561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,332 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..46000178b5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json @@ -0,0 +1,397 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbsubnetgroup.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbsubnetgroup.json new file mode 100644 index 0000000000..d228afbbad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbsubnetgroup.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DBSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/DBSubnetGroupName" + ], + "properties": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)" + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::DBSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json index 4babd64287..e7c91ccc8d 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-secretsmanager-secrettargetattachment.json deleted file mode 100644 index 8b5501d290..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-secretsmanager-secrettargetattachment.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "SecretId": { - "type": "string" - }, - "TargetId": { - "type": "string" - }, - "TargetType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SecretId", - "TargetType", - "TargetId" - ], - "typeName": "AWS::SecretsManager::SecretTargetAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py index 1b7a713b3e..331474c606 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -559,6 +559,7 @@ "AWS::KafkaConnect::Connector", "AWS::KafkaConnect::CustomPlugin", "AWS::KafkaConnect::WorkerConfiguration", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", @@ -1371,9 +1372,7 @@ "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", "aws-ecs-primarytaskset.json", - "aws-ecs-service.json", "aws-ecs-taskdefinition.json", - "aws-ecs-taskset.json", "aws-efs-accesspoint.json", "aws-efs-filesystem.json", "aws-efs-mounttarget.json", @@ -1542,6 +1541,7 @@ "aws-kafkaconnect-connector.json", "aws-kafkaconnect-customplugin.json", "aws-kafkaconnect-workerconfiguration.json", + "aws-kinesis-resourcepolicy.json", "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalytics-applicationoutput.json", diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-service.json new file mode 100644 index 0000000000..ba7baa1de3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-service.json @@ -0,0 +1,585 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "additionalProperties": false, + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + }, + "Timeout": { + "$ref": "#/definitions/TimeoutConfiguration" + }, + "Tls": { + "$ref": "#/definitions/ServiceConnectTlsConfiguration" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceConnectTlsCertificateAuthority": { + "additionalProperties": false, + "properties": { + "AwsPcaAuthorityArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectTlsConfiguration": { + "additionalProperties": false, + "properties": { + "IssuerCertificateAuthority": { + "$ref": "#/definitions/ServiceConnectTlsCertificateAuthority" + }, + "KmsKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "IssuerCertificateAuthority" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutConfiguration": { + "additionalProperties": false, + "properties": { + "IdleTimeoutSeconds": { + "type": "integer" + }, + "PerRequestTimeoutSeconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-taskset.json new file mode 100644 index 0000000000..3491488499 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecs-taskset.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py index 4e6656278b..d1cbd4cf14 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py @@ -748,6 +748,7 @@ "AWS::Kendra::Faq", "AWS::Kendra::Index", "AWS::KendraRanking::ExecutionPlan", + "AWS::Kinesis::ResourcePolicy", "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalytics::Application", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json index 13532c5d7c..1d4e254a36 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appflow-connectorprofile.json @@ -1086,33 +1086,7 @@ "type": "string" }, "ConnectorType": { - "$ref": "#/definitions/ConnectorType", - "enum": [ - "Amplitude", - "CustomConnector", - "CustomerProfiles", - "Datadog", - "Dynatrace", - "EventBridge", - "Googleanalytics", - "Honeycode", - "Infornexus", - "LookoutMetrics", - "Marketo", - "Pardot", - "Redshift", - "S3", - "SAPOData", - "Salesforce", - "Servicenow", - "Singular", - "Slack", - "Snowflake", - "Trendmicro", - "Upsolver", - "Veeva", - "Zendesk" - ] + "$ref": "#/definitions/ConnectorType" }, "CredentialsArn": { "maxLength": 512, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json index 6ce3541ac2..6d56953d74 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblock.json @@ -120,11 +120,7 @@ "type": "string" }, "PackagingType": { - "$ref": "#/definitions/PackagingType", - "enum": [ - "APPSTREAM2", - "CUSTOM" - ] + "$ref": "#/definitions/PackagingType" }, "PostSetupScriptDetails": { "$ref": "#/definitions/ScriptDetails" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json index 762e33e51f..b6c853026a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-appblockbuilder.json @@ -117,10 +117,7 @@ "type": "string" }, "Platform": { - "$ref": "#/definitions/PlatformType", - "enum": [ - "WINDOWS_SERVER_2019" - ] + "$ref": "#/definitions/PlatformType" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json index da43c9fd3b..cb499f8d1e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appstream-application.json @@ -78,8 +78,7 @@ ], "properties": { "AppBlockArn": { - "$ref": "#/definitions/Arn", - "pattern": "^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$" + "$ref": "#/definitions/Arn" }, "Arn": { "$ref": "#/definitions/Arn" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json index 91369b231f..b7218ab5f8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-auditmanager-assessment.json @@ -263,16 +263,13 @@ "type": "array" }, "Description": { - "$ref": "#/definitions/AssessmentDescription", - "pattern": "^[\\w\\W\\s\\S]*$" + "$ref": "#/definitions/AssessmentDescription" }, "FrameworkId": { - "$ref": "#/definitions/FrameworkId", - "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + "$ref": "#/definitions/FrameworkId" }, "Name": { - "$ref": "#/definitions/AssessmentName", - "pattern": "^[^\\\\]*$" + "$ref": "#/definitions/AssessmentName" }, "Roles": { "items": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json index 8a898212eb..ed16dd64e4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json @@ -267,10 +267,7 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/CapabilityType", - "enum": [ - "edi" - ] + "$ref": "#/definitions/CapabilityType" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json index f2e6fe55c9..2eef77b233 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json @@ -57,11 +57,7 @@ "type": "string" }, "Logging": { - "$ref": "#/definitions/Logging", - "enum": [ - "DISABLED", - "ENABLED" - ] + "$ref": "#/definitions/Logging" }, "ModifiedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json index ce0eba7cba..56eadc839d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json @@ -293,12 +293,7 @@ "$ref": "#/definitions/EdiType" }, "FileFormat": { - "$ref": "#/definitions/FileFormat", - "enum": [ - "JSON", - "NOT_USED", - "XML" - ] + "$ref": "#/definitions/FileFormat" }, "InputConversion": { "$ref": "#/definitions/InputConversion" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json index dd7a93a281..68810ab941 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-backup-backupvault.json @@ -63,8 +63,7 @@ "type": "string" }, "BackupVaultName": { - "$ref": "#/definitions/BackupVaultNamePattern", - "pattern": "^[a-zA-Z0-9\\-\\_]{2,50}$" + "$ref": "#/definitions/BackupVaultNamePattern" }, "BackupVaultTags": { "additionalProperties": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json index 8c1b8d4e94..3835cb3cc2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ce-costcategory.json @@ -26,8 +26,7 @@ "type": "string" }, "EffectiveStart": { - "$ref": "#/definitions/ZonedDateTime", - "pattern": "^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(([+-]\\d\\d:\\d\\d)|Z)$" + "$ref": "#/definitions/ZonedDateTime" }, "Name": { "maxLength": 50, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-collaboration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-collaboration.json index 5f2ad30ff0..f06c4a24db 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-collaboration.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-collaboration.json @@ -157,8 +157,7 @@ "type": "string" }, "CreatorDisplayName": { - "$ref": "#/definitions/Name", - "pattern": "(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*" + "$ref": "#/definitions/Name" }, "CreatorMemberAbilities": { "$ref": "#/definitions/MemberAbilities" @@ -191,11 +190,7 @@ "type": "string" }, "QueryLogStatus": { - "$ref": "#/definitions/CollaborationQueryLogStatus", - "enum": [ - "DISABLED", - "ENABLED" - ] + "$ref": "#/definitions/CollaborationQueryLogStatus" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtable.json index a2944700fc..b11af86ad1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtable.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtable.json @@ -466,10 +466,7 @@ "type": "array" }, "AnalysisMethod": { - "$ref": "#/definitions/AnalysisMethod", - "enum": [ - "DIRECT_QUERY" - ] + "$ref": "#/definitions/AnalysisMethod" }, "AnalysisRules": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idmappingtable.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idmappingtable.json index 5b290a1c1c..ea68911580 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idmappingtable.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idmappingtable.json @@ -130,8 +130,7 @@ "type": "string" }, "MembershipIdentifier": { - "$ref": "#/definitions/UUID", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "$ref": "#/definitions/UUID" }, "Name": { "maxLength": 128, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idnamespaceassociation.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idnamespaceassociation.json index 608b44a317..790b5213c1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idnamespaceassociation.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-idnamespaceassociation.json @@ -127,8 +127,7 @@ "type": "string" }, "MembershipIdentifier": { - "$ref": "#/definitions/UUID", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "$ref": "#/definitions/UUID" }, "Name": { "maxLength": 100, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-membership.json index 5dc557645d..da1ef65560 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-membership.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-membership.json @@ -158,11 +158,7 @@ "$ref": "#/definitions/MembershipPaymentConfiguration" }, "QueryLogStatus": { - "$ref": "#/definitions/MembershipQueryLogStatus", - "enum": [ - "DISABLED", - "ENABLED" - ] + "$ref": "#/definitions/MembershipQueryLogStatus" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-channel.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-channel.json index 591f038691..ae81beebeb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-channel.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-channel.json @@ -85,8 +85,7 @@ "uniqueItems": true }, "Name": { - "$ref": "#/definitions/ChannelName", - "pattern": "^[a-zA-Z0-9._\\-]+$" + "$ref": "#/definitions/ChannelName" }, "Source": { "maxLength": 256, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-comprehend-documentclassifier.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-comprehend-documentclassifier.json index 3456f08269..8a72077b84 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-comprehend-documentclassifier.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-comprehend-documentclassifier.json @@ -270,8 +270,7 @@ "type": "string" }, "ModelKmsKeyId": { - "$ref": "#/definitions/KmsKeyId", - "pattern": "^\\p{ASCII}+$" + "$ref": "#/definitions/KmsKeyId" }, "ModelPolicy": { "maxLength": 20000, @@ -297,8 +296,7 @@ "type": "string" }, "VolumeKmsKeyId": { - "$ref": "#/definitions/KmsKeyId", - "pattern": "^\\p{ASCII}+$" + "$ref": "#/definitions/KmsKeyId" }, "VpcConfig": { "$ref": "#/definitions/VpcConfig" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json index 94865ec7f6..0999b2c7e0 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json @@ -46,18 +46,7 @@ "$ref": "#/definitions/IntegrationAssociationId" }, "IntegrationType": { - "$ref": "#/definitions/IntegrationType", - "enum": [ - "APPLICATION", - "CASES_DOMAIN", - "EVENT", - "FILE_SCANNER", - "PINPOINT_APP", - "VOICE_ID", - "WISDOM_ASSISTANT", - "WISDOM_KNOWLEDGE_BASE", - "WISDOM_QUICK_RESPONSES" - ] + "$ref": "#/definitions/IntegrationType" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json index 3cd695042a..8359cb0018 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json @@ -235,11 +235,7 @@ "type": "string" }, "Status": { - "$ref": "#/definitions/Status", - "enum": [ - "ACTIVE", - "INACTIVE" - ] + "$ref": "#/definitions/Status" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-customerprofiles-calculatedattributedefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-customerprofiles-calculatedattributedefinition.json index 584ad64af4..aa6cb3b46a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-customerprofiles-calculatedattributedefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-customerprofiles-calculatedattributedefinition.json @@ -207,8 +207,7 @@ "$ref": "#/definitions/AttributeDetails" }, "CalculatedAttributeName": { - "$ref": "#/definitions/CalculatedAttributeName", - "pattern": "^[a-zA-Z_][a-zA-Z_0-9-]*$" + "$ref": "#/definitions/CalculatedAttributeName" }, "Conditions": { "$ref": "#/definitions/Conditions" @@ -220,28 +219,16 @@ "$ref": "#/definitions/Description" }, "DisplayName": { - "$ref": "#/definitions/DisplayName", - "pattern": "^[a-zA-Z_][a-zA-Z_0-9-\\s]*$" + "$ref": "#/definitions/DisplayName" }, "DomainName": { - "$ref": "#/definitions/DomainName", - "pattern": "^[a-zA-Z0-9_-]+$" + "$ref": "#/definitions/DomainName" }, "LastUpdatedAt": { "type": "string" }, "Statistic": { - "$ref": "#/definitions/Statistic", - "enum": [ - "AVERAGE", - "COUNT", - "FIRST_OCCURRENCE", - "LAST_OCCURRENCE", - "MAXIMUM", - "MAX_OCCURRENCE", - "MINIMUM", - "SUM" - ] + "$ref": "#/definitions/Statistic" }, "Tags": { "$ref": "#/definitions/Tags" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-datasource.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-datasource.json index fbad494d14..209a3e69b4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-datasource.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-datasource.json @@ -342,11 +342,7 @@ "type": "string" }, "EnableSetting": { - "$ref": "#/definitions/EnableSetting", - "enum": [ - "DISABLED", - "ENABLED" - ] + "$ref": "#/definitions/EnableSetting" }, "EnvironmentId": { "pattern": "^[a-zA-Z0-9_-]{1,36}$", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-projectmembership.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-projectmembership.json index 84e1773205..42b829e951 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-projectmembership.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-projectmembership.json @@ -57,11 +57,7 @@ ], "properties": { "Designation": { - "$ref": "#/definitions/UserDesignation", - "enum": [ - "PROJECT_CONTRIBUTOR", - "PROJECT_OWNER" - ] + "$ref": "#/definitions/UserDesignation" }, "DomainIdentifier": { "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-userprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-userprofile.json index 28e0d3c29d..279af7085a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-userprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-datazone-userprofile.json @@ -118,12 +118,7 @@ "type": "string" }, "UserType": { - "$ref": "#/definitions/UserType", - "enum": [ - "IAM_ROLE", - "IAM_USER", - "SSO_USER" - ] + "$ref": "#/definitions/UserType" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queue.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queue.json index c4a49d9626..530bddebb8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queue.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queue.json @@ -143,12 +143,7 @@ "type": "string" }, "DefaultBudgetAction": { - "$ref": "#/definitions/DefaultQueueBudgetAction", - "enum": [ - "NONE", - "STOP_SCHEDULING_AND_CANCEL_TASKS", - "STOP_SCHEDULING_AND_COMPLETE_TASKS" - ] + "$ref": "#/definitions/DefaultQueueBudgetAction" }, "Description": { "default": "", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queueenvironment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queueenvironment.json index 46347873ee..aedcc3fbfa 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queueenvironment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-queueenvironment.json @@ -45,11 +45,7 @@ "type": "string" }, "TemplateType": { - "$ref": "#/definitions/EnvironmentTemplateType", - "enum": [ - "JSON", - "YAML" - ] + "$ref": "#/definitions/EnvironmentTemplateType" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-storageprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-storageprofile.json index 20f1842000..890a27367d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-storageprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-deadline-storageprofile.json @@ -68,12 +68,7 @@ "type": "array" }, "OsFamily": { - "$ref": "#/definitions/StorageProfileOperatingSystemFamily", - "enum": [ - "LINUX", - "MACOS", - "WINDOWS" - ] + "$ref": "#/definitions/StorageProfileOperatingSystemFamily" }, "StorageProfileId": { "pattern": "^sp-[0-9a-f]{32}$", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json index 83499a2cbb..9e1125534b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json @@ -469,10 +469,6 @@ ] }, "BillingMode": { - "enum": [ - "PAY_PER_REQUEST", - "PROVISIONED" - ], "type": "string" }, "ContributorInsightsSpecification": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkinsightspath.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkinsightspath.json index d1288306d4..69b03acae4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkinsightspath.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkinsightspath.json @@ -97,8 +97,7 @@ "type": "string" }, "DestinationIp": { - "$ref": "#/definitions/IpAddress", - "pattern": "^([0-9]{1,3}.){3}[0-9]{1,3}$" + "$ref": "#/definitions/IpAddress" }, "DestinationPort": { "$ref": "#/definitions/Port" @@ -116,11 +115,7 @@ "type": "string" }, "Protocol": { - "$ref": "#/definitions/Protocol", - "enum": [ - "tcp", - "udp" - ] + "$ref": "#/definitions/Protocol" }, "Source": { "type": "string" @@ -129,8 +124,7 @@ "type": "string" }, "SourceIp": { - "$ref": "#/definitions/IpAddress", - "pattern": "^([0-9]{1,3}.){3}[0-9]{1,3}$" + "$ref": "#/definitions/IpAddress" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json index ba7baa1de3..37e099399e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json @@ -566,6 +566,9 @@ "type": "array" } }, + "propertyTransform": { + "/properties/Role": "Role $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:iam::[0-9]{12}[:]role/{1}\", Role])" + }, "readOnlyProperties": [ "/properties/ServiceArn", "/properties/Name" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskset.json index 3491488499..663d1205f9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskset.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskset.json @@ -9,7 +9,8 @@ "/properties/PlatformVersion", "/properties/Service", "/properties/ServiceRegistries", - "/properties/TaskDefinition" + "/properties/TaskDefinition", + "/properties/CapacityProviderStrategy" ], "definitions": { "AwsVpcConfiguration": { @@ -44,6 +45,21 @@ ], "type": "object" }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, "LoadBalancer": { "additionalProperties": false, "properties": { @@ -122,6 +138,12 @@ "/properties/Id" ], "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, "Cluster": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json index d0e4441601..5bad54fc39 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json @@ -459,11 +459,7 @@ "type": "string" }, "Architecture": { - "$ref": "#/definitions/Architecture", - "enum": [ - "ARM64", - "X86_64" - ] + "$ref": "#/definitions/Architecture" }, "Arn": { "pattern": "^arn:(aws[a-zA-Z0-9-]*):emr-serverless:.+:(\\d{12}):\\/applications\\/[0-9a-zA-Z]+$", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json index 1d9ff02cd4..94ba9eaa72 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json @@ -273,8 +273,7 @@ "$ref": "#/definitions/IdMappingWorkflowArn" }, "WorkflowName": { - "$ref": "#/definitions/EntityName", - "pattern": "^[a-zA-Z_0-9-]*$" + "$ref": "#/definitions/EntityName" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idnamespace.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idnamespace.json index 01e7569ea6..ca77b02644 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idnamespace.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idnamespace.json @@ -203,8 +203,7 @@ "type": "string" }, "IdNamespaceName": { - "$ref": "#/definitions/EntityName", - "pattern": "^[a-zA-Z_0-9-]*$" + "$ref": "#/definitions/EntityName" }, "InputSourceConfig": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json index 21cdaecc48..bd0f9ba6e6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json @@ -312,8 +312,7 @@ "$ref": "#/definitions/MatchingWorkflowArn" }, "WorkflowName": { - "$ref": "#/definitions/EntityName", - "pattern": "^[a-zA-Z_0-9-]*$" + "$ref": "#/definitions/EntityName" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-policystatement.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-policystatement.json index 3e112d89a2..ca694d7aa2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-policystatement.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-policystatement.json @@ -61,25 +61,19 @@ "$ref": "#/definitions/StatementActionList" }, "Arn": { - "$ref": "#/definitions/VeniceGlobalArn", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$" + "$ref": "#/definitions/VeniceGlobalArn" }, "Condition": { "$ref": "#/definitions/StatementCondition" }, "Effect": { - "$ref": "#/definitions/StatementEffect", - "enum": [ - "Allow", - "Deny" - ] + "$ref": "#/definitions/StatementEffect" }, "Principal": { "$ref": "#/definitions/StatementPrincipalList" }, "StatementId": { - "$ref": "#/definitions/StatementId", - "pattern": "^[0-9A-Za-z]+$" + "$ref": "#/definitions/StatementId" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-schemamapping.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-schemamapping.json index 146c561344..623065d35a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-schemamapping.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-schemamapping.json @@ -140,8 +140,7 @@ "$ref": "#/definitions/SchemaMappingArn" }, "SchemaName": { - "$ref": "#/definitions/EntityName", - "pattern": "^[a-zA-Z_0-9-]*$" + "$ref": "#/definitions/EntityName" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json index 5b8405fdcb..7c562429fb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json @@ -300,8 +300,7 @@ "$ref": "#/definitions/ExperimentTemplateActionMap" }, "Description": { - "$ref": "#/definitions/ExperimentTemplateDescription", - "pattern": "[\\s\\S]+" + "$ref": "#/definitions/ExperimentTemplateDescription" }, "ExperimentOptions": { "$ref": "#/definitions/ExperimentTemplateExperimentOptions" @@ -313,8 +312,7 @@ "$ref": "#/definitions/ExperimentTemplateLogConfiguration" }, "RoleArn": { - "$ref": "#/definitions/RoleArn", - "pattern": "[\\S]+" + "$ref": "#/definitions/RoleArn" }, "StopConditions": { "$ref": "#/definitions/ExperimentTemplateStopConditionList" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-targetaccountconfiguration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-targetaccountconfiguration.json index d5456a29fc..bf710126da 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-targetaccountconfiguration.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-targetaccountconfiguration.json @@ -31,20 +31,16 @@ ], "properties": { "AccountId": { - "$ref": "#/definitions/TargetAccountId", - "pattern": "[\\S]+" + "$ref": "#/definitions/TargetAccountId" }, "Description": { - "$ref": "#/definitions/TargetAccountConfigurationDescription", - "pattern": "[\\s\\S]*" + "$ref": "#/definitions/TargetAccountConfigurationDescription" }, "ExperimentTemplateId": { - "$ref": "#/definitions/TargetExperimentTemplateId", - "pattern": "[\\S]+" + "$ref": "#/definitions/TargetExperimentTemplateId" }, "RoleArn": { - "$ref": "#/definitions/TargetAccountRoleArn", - "pattern": "[\\S]+" + "$ref": "#/definitions/TargetAccountRoleArn" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-notificationchannel.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-notificationchannel.json index 3388707aa7..1cff033eb9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-notificationchannel.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-notificationchannel.json @@ -13,12 +13,10 @@ ], "properties": { "SnsRoleName": { - "$ref": "#/definitions/ResourceArn", - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + "$ref": "#/definitions/ResourceArn" }, "SnsTopicArn": { - "$ref": "#/definitions/ResourceArn", - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + "$ref": "#/definitions/ResourceArn" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json index cae698ab1e..825b6eaa5a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json @@ -264,12 +264,7 @@ "$ref": "#/definitions/AutoScalingPolicy" }, "BalancingStrategy": { - "$ref": "#/definitions/BalancingStrategy", - "enum": [ - "ON_DEMAND_ONLY", - "SPOT_ONLY", - "SPOT_PREFERRED" - ] + "$ref": "#/definitions/BalancingStrategy" }, "DeleteOption": { "$ref": "#/definitions/DeleteOption" @@ -278,15 +273,10 @@ "$ref": "#/definitions/GameServerGroupArn" }, "GameServerGroupName": { - "$ref": "#/definitions/GameServerGroupName", - "pattern": "[a-zA-Z0-9-\\.]+" + "$ref": "#/definitions/GameServerGroupName" }, "GameServerProtectionPolicy": { - "$ref": "#/definitions/GameServerProtectionPolicy", - "enum": [ - "FULL_PROTECTION", - "NO_PROTECTION" - ] + "$ref": "#/definitions/GameServerProtectionPolicy" }, "InstanceDefinitions": { "$ref": "#/definitions/InstanceDefinitions" @@ -301,8 +291,7 @@ "$ref": "#/definitions/MinSize" }, "RoleArn": { - "$ref": "#/definitions/RoleArn", - "pattern": "^arn:.*:role\\/[\\w+=,.@-]+" + "$ref": "#/definitions/RoleArn" }, "Tags": { "$ref": "#/definitions/Tags" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-grafana-workspace.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-grafana-workspace.json index beccfef8e9..e15f713a8a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-grafana-workspace.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-grafana-workspace.json @@ -243,11 +243,7 @@ ], "properties": { "AccountAccessType": { - "$ref": "#/definitions/AccountAccessType", - "enum": [ - "CURRENT_ACCOUNT", - "ORGANIZATION" - ] + "$ref": "#/definitions/AccountAccessType" }, "AuthenticationProviders": { "insertionOrder": false, @@ -323,11 +319,7 @@ "type": "array" }, "PermissionType": { - "$ref": "#/definitions/PermissionType", - "enum": [ - "CUSTOMER_MANAGED", - "SERVICE_MANAGED" - ] + "$ref": "#/definitions/PermissionType" }, "PluginAdminEnabled": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-detector.json index efaad17ff9..0632b1017c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-detector.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-detector.json @@ -36,6 +36,7 @@ "additionalProperties": false, "properties": { "AdditionalConfiguration": { + "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" }, @@ -145,6 +146,7 @@ "type": "boolean" }, "Features": { + "insertionOrder": false, "items": { "$ref": "#/definitions/CFNFeatureConfiguration" }, @@ -162,6 +164,7 @@ "type": "string" }, "Tags": { + "insertionOrder": false, "items": { "$ref": "#/definitions/TagItem" }, @@ -177,7 +180,8 @@ "tagging": { "cloudFormationSystemTags": false, "tagOnCreate": true, - "tagUpdatable": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, "taggable": true }, "typeName": "AWS::GuardDuty::Detector" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-healthlake-fhirdatastore.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-healthlake-fhirdatastore.json index d78146b57f..2de8c37a6f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-healthlake-fhirdatastore.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-healthlake-fhirdatastore.json @@ -174,17 +174,13 @@ "$ref": "#/definitions/DatastoreId" }, "DatastoreName": { - "$ref": "#/definitions/DatastoreName", - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + "$ref": "#/definitions/DatastoreName" }, "DatastoreStatus": { "$ref": "#/definitions/DatastoreStatus" }, "DatastoreTypeVersion": { - "$ref": "#/definitions/DatastoreTypeVersion", - "enum": [ - "R4" - ] + "$ref": "#/definitions/DatastoreTypeVersion" }, "IdentityProviderConfiguration": { "$ref": "#/definitions/IdentityProviderConfiguration" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-campaign.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-campaign.json index 7523429632..1a92a08bd0 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-campaign.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-campaign.json @@ -443,11 +443,7 @@ "$ref": "#/definitions/CollectionScheme" }, "Compression": { - "$ref": "#/definitions/Compression", - "enum": [ - "OFF", - "SNAPPY" - ] + "$ref": "#/definitions/Compression" }, "CreationTime": { "format": "date-time", @@ -481,11 +477,7 @@ "type": "string" }, "DiagnosticsMode": { - "$ref": "#/definitions/DiagnosticsMode", - "enum": [ - "OFF", - "SEND_ACTIVE_DTCS" - ] + "$ref": "#/definitions/DiagnosticsMode" }, "ExpiryTime": { "default": "253402214400", @@ -535,11 +527,7 @@ "type": "array" }, "SpoolingMode": { - "$ref": "#/definitions/SpoolingMode", - "enum": [ - "OFF", - "TO_DISK" - ] + "$ref": "#/definitions/SpoolingMode" }, "StartTime": { "default": "0", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-vehicle.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-vehicle.json index 36bf333051..376d20a055 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-vehicle.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-vehicle.json @@ -50,11 +50,7 @@ "type": "string" }, "AssociationBehavior": { - "$ref": "#/definitions/VehicleAssociationBehavior", - "enum": [ - "CreateIotThing", - "ValidateIotThingExists" - ] + "$ref": "#/definitions/VehicleAssociationBehavior" }, "Attributes": { "$ref": "#/definitions/attributesMap" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json index c20fac3087..1710bd48a0 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json @@ -1691,27 +1691,22 @@ "$ref": "#/definitions/DataSourceConfiguration" }, "Description": { - "$ref": "#/definitions/Description", - "pattern": "^\\P{C}*$" + "$ref": "#/definitions/Description" }, "Id": { "$ref": "#/definitions/Id" }, "IndexId": { - "$ref": "#/definitions/IndexId", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9-]*" + "$ref": "#/definitions/IndexId" }, "LanguageCode": { - "$ref": "#/definitions/LanguageCode", - "pattern": "[a-zA-Z-]*" + "$ref": "#/definitions/LanguageCode" }, "Name": { - "$ref": "#/definitions/Name", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9_-]*" + "$ref": "#/definitions/Name" }, "RoleArn": { - "$ref": "#/definitions/RoleArn", - "pattern": "arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + "$ref": "#/definitions/RoleArn" }, "Schedule": { "$ref": "#/definitions/Schedule" @@ -1720,28 +1715,7 @@ "$ref": "#/definitions/TagList" }, "Type": { - "$ref": "#/definitions/Type", - "enum": [ - "ALFRESCO", - "BOX", - "CONFLUENCE", - "CUSTOM", - "DATABASE", - "FSX", - "GITHUB", - "GOOGLEDRIVE", - "JIRA", - "ONEDRIVE", - "QUIP", - "S3", - "SALESFORCE", - "SERVICENOW", - "SHAREPOINT", - "SLACK", - "TEMPLATE", - "WEBCRAWLER", - "WORKDOCS" - ] + "$ref": "#/definitions/Type" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-faq.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-faq.json index 01b70e6837..4b05f1dbb4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-faq.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-faq.json @@ -117,35 +117,25 @@ "type": "string" }, "Description": { - "$ref": "#/definitions/Description", - "pattern": "^\\P{C}*$" + "$ref": "#/definitions/Description" }, "FileFormat": { - "$ref": "#/definitions/FileFormat", - "enum": [ - "CSV", - "CSV_WITH_HEADER", - "JSON" - ] + "$ref": "#/definitions/FileFormat" }, "Id": { "$ref": "#/definitions/Id" }, "IndexId": { - "$ref": "#/definitions/IndexId", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9-]*" + "$ref": "#/definitions/IndexId" }, "LanguageCode": { - "$ref": "#/definitions/LanguageCode", - "pattern": "[a-zA-Z-]*" + "$ref": "#/definitions/LanguageCode" }, "Name": { - "$ref": "#/definitions/FaqName", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9_-]*" + "$ref": "#/definitions/FaqName" }, "RoleArn": { - "$ref": "#/definitions/RoleArn", - "pattern": "arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + "$ref": "#/definitions/RoleArn" }, "S3Path": { "$ref": "#/definitions/S3Path" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-index.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-index.json index 3f7ed0261a..b7966dadd0 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-index.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-index.json @@ -346,29 +346,22 @@ "$ref": "#/definitions/CapacityUnitsConfiguration" }, "Description": { - "$ref": "#/definitions/Description", - "pattern": "^\\P{C}*$" + "$ref": "#/definitions/Description" }, "DocumentMetadataConfigurations": { "$ref": "#/definitions/DocumentMetadataConfigurationList" }, "Edition": { - "$ref": "#/definitions/Edition", - "enum": [ - "DEVELOPER_EDITION", - "ENTERPRISE_EDITION" - ] + "$ref": "#/definitions/Edition" }, "Id": { "$ref": "#/definitions/Id" }, "Name": { - "$ref": "#/definitions/Name", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9_-]*" + "$ref": "#/definitions/Name" }, "RoleArn": { - "$ref": "#/definitions/RoleArn", - "pattern": "arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + "$ref": "#/definitions/RoleArn" }, "ServerSideEncryptionConfiguration": { "$ref": "#/definitions/ServerSideEncryptionConfiguration" @@ -377,11 +370,7 @@ "$ref": "#/definitions/TagList" }, "UserContextPolicy": { - "$ref": "#/definitions/UserContextPolicy", - "enum": [ - "ATTRIBUTE_FILTER", - "USER_TOKEN" - ] + "$ref": "#/definitions/UserContextPolicy" }, "UserTokenConfigurations": { "$ref": "#/definitions/UserTokenConfigurationList" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendraranking-executionplan.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendraranking-executionplan.json index 901edfc7f2..ca911deafd 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendraranking-executionplan.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendraranking-executionplan.json @@ -77,15 +77,13 @@ "$ref": "#/definitions/CapacityUnitsConfiguration" }, "Description": { - "$ref": "#/definitions/Description", - "pattern": "^\\P{C}*$" + "$ref": "#/definitions/Description" }, "Id": { "$ref": "#/definitions/Id" }, "Name": { - "$ref": "#/definitions/Name", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9_-]*" + "$ref": "#/definitions/Name" }, "Tags": { "$ref": "#/definitions/Tags" diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesis-resourcepolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesis-resourcepolicy.json similarity index 100% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesis-resourcepolicy.json rename to src/cfnlint/data/schemas/providers/us_east_1/aws-kinesis-resourcepolicy.json diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesis-stream.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesis-stream.json index be1bc65c07..45b4ce6a6b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesis-stream.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesis-stream.json @@ -1,4 +1,5 @@ { + "$comment": "Do not set SystemTags to true without implementing a fail-open mechanism. It should not fail when adding systemTags for customers without AddTagsToStream Permission. Cloudformation will automatically add system tags even if customer does not have the AddTagsToStream permission. COE: https://www.coe.a2z.com/coe/236297/content", "additionalProperties": false, "createOnlyProperties": [ "/properties/Name" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisanalyticsv2-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisanalyticsv2-application.json index fcd075f56b..cda20eb996 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisanalyticsv2-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisanalyticsv2-application.json @@ -803,8 +803,7 @@ "type": "string" }, "ServiceExecutionRole": { - "$ref": "#/definitions/Arn", - "pattern": "arn:.*" + "$ref": "#/definitions/Arn" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lakeformation-tag.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lakeformation-tag.json index c290286759..2d5dfa85d2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lakeformation-tag.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lakeformation-tag.json @@ -40,8 +40,7 @@ "$ref": "#/definitions/CatalogIdString" }, "TagKey": { - "$ref": "#/definitions/LFTagKey", - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*)$" + "$ref": "#/definitions/LFTagKey" }, "TagValues": { "$ref": "#/definitions/TagValueList" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventsourcemapping.json index a22e9d02c3..bc4874d3aa 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventsourcemapping.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventsourcemapping.json @@ -310,11 +310,6 @@ "uniqueItems": true }, "StartingPosition": { - "enum": [ - "AT_TIMESTAMP", - "LATEST", - "TRIM_HORIZON" - ], "maxLength": 12, "minLength": 6, "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json index 26418a60ea..a614f2ca8a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json @@ -378,11 +378,7 @@ "type": "string" }, "RecursiveLoop": { - "$ref": "#/definitions/RecursiveLoop", - "enum": [ - "Allow", - "Terminate" - ] + "$ref": "#/definitions/RecursiveLoop" }, "ReservedConcurrentExecutions": { "minimum": 0, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-licensemanager-grant.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-licensemanager-grant.json index 64998e64cf..b8ae6f356e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-licensemanager-grant.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-licensemanager-grant.json @@ -28,8 +28,7 @@ "type": "string" }, "LicenseArn": { - "$ref": "#/definitions/Arn", - "pattern": "^arn:aws(-(cn|us-gov|iso-b|iso-c|iso-d))?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$" + "$ref": "#/definitions/Arn" }, "Principals": { "items": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-geofencecollection.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-geofencecollection.json index bdf69d3792..ac997a882a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-geofencecollection.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-geofencecollection.json @@ -89,12 +89,7 @@ "type": "string" }, "PricingPlan": { - "$ref": "#/definitions/PricingPlan", - "enum": [ - "MobileAssetManagement", - "MobileAssetTracking", - "RequestBasedUsage" - ] + "$ref": "#/definitions/PricingPlan" }, "PricingPlanDataSource": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-map.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-map.json index f749983376..93306160cf 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-map.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-map.json @@ -114,12 +114,7 @@ "type": "string" }, "PricingPlan": { - "$ref": "#/definitions/PricingPlan", - "enum": [ - "MobileAssetManagement", - "MobileAssetTracking", - "RequestBasedUsage" - ] + "$ref": "#/definitions/PricingPlan" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-placeindex.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-placeindex.json index 099a943b5c..aeb95199f7 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-placeindex.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-placeindex.json @@ -102,12 +102,7 @@ "type": "string" }, "PricingPlan": { - "$ref": "#/definitions/PricingPlan", - "enum": [ - "MobileAssetManagement", - "MobileAssetTracking", - "RequestBasedUsage" - ] + "$ref": "#/definitions/PricingPlan" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-routecalculator.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-routecalculator.json index eaeca30c72..d0141f27ac 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-routecalculator.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-routecalculator.json @@ -83,12 +83,7 @@ "type": "string" }, "PricingPlan": { - "$ref": "#/definitions/PricingPlan", - "enum": [ - "MobileAssetManagement", - "MobileAssetTracking", - "RequestBasedUsage" - ] + "$ref": "#/definitions/PricingPlan" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-tracker.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-tracker.json index 7c2e7efb0b..9ae627f4bf 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-tracker.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-tracker.json @@ -92,20 +92,10 @@ "type": "string" }, "PositionFiltering": { - "$ref": "#/definitions/PositionFiltering", - "enum": [ - "AccuracyBased", - "DistanceBased", - "TimeBased" - ] + "$ref": "#/definitions/PositionFiltering" }, "PricingPlan": { - "$ref": "#/definitions/PricingPlan", - "enum": [ - "MobileAssetManagement", - "MobileAssetTracking", - "RequestBasedUsage" - ] + "$ref": "#/definitions/PricingPlan" }, "PricingPlanDataSource": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lookoutvision-project.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lookoutvision-project.json index f717462f46..e616394844 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lookoutvision-project.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lookoutvision-project.json @@ -23,8 +23,7 @@ "$ref": "#/definitions/Arn" }, "ProjectName": { - "$ref": "#/definitions/ProjectName", - "pattern": "[a-zA-Z0-9][a-zA-Z0-9_\\-]*" + "$ref": "#/definitions/ProjectName" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-application.json index 8fd4755e70..6a62b38cd3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-application.json @@ -82,11 +82,7 @@ "type": "string" }, "EngineType": { - "$ref": "#/definitions/EngineType", - "enum": [ - "bluage", - "microfocus" - ] + "$ref": "#/definitions/EngineType" }, "KmsKeyId": { "maxLength": 2048, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-environment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-environment.json index c48958b4c2..1c433a260d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-environment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-m2-environment.json @@ -119,11 +119,7 @@ "type": "string" }, "EngineType": { - "$ref": "#/definitions/EngineType", - "enum": [ - "bluage", - "microfocus" - ] + "$ref": "#/definitions/EngineType" }, "EngineVersion": { "pattern": "^\\S{1,10}$", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-managedblockchain-accessor.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-managedblockchain-accessor.json index 856429b861..e1d6e17eb3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-managedblockchain-accessor.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-managedblockchain-accessor.json @@ -60,10 +60,7 @@ ], "properties": { "AccessorType": { - "$ref": "#/definitions/AccessorType", - "enum": [ - "BILLING_TOKEN" - ] + "$ref": "#/definitions/AccessorType" }, "Arn": { "maxLength": 1011, @@ -85,14 +82,7 @@ "type": "string" }, "NetworkType": { - "$ref": "#/definitions/NetworkAccessorType", - "enum": [ - "ETHEREUM_GOERLI", - "ETHEREUM_MAINNET", - "ETHEREUM_MAINNET_AND_GOERLI", - "POLYGON_MAINNET", - "POLYGON_MUMBAI" - ] + "$ref": "#/definitions/NetworkAccessorType" }, "Status": { "$ref": "#/definitions/AccessorStatus" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cloudwatchalarmtemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cloudwatchalarmtemplate.json index 30784ba84e..2c984b810f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cloudwatchalarmtemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cloudwatchalarmtemplate.json @@ -64,13 +64,7 @@ "type": "string" }, "ComparisonOperator": { - "$ref": "#/definitions/CloudWatchAlarmTemplateComparisonOperator", - "enum": [ - "GreaterThanOrEqualToThreshold", - "GreaterThanThreshold", - "LessThanOrEqualToThreshold", - "LessThanThreshold" - ] + "$ref": "#/definitions/CloudWatchAlarmTemplateComparisonOperator" }, "CreatedAt": { "format": "date-time", @@ -132,43 +126,20 @@ "type": "number" }, "Statistic": { - "$ref": "#/definitions/CloudWatchAlarmTemplateStatistic", - "enum": [ - "Average", - "Maximum", - "Minimum", - "SampleCount", - "Sum" - ] + "$ref": "#/definitions/CloudWatchAlarmTemplateStatistic" }, "Tags": { "$ref": "#/definitions/TagMap" }, "TargetResourceType": { - "$ref": "#/definitions/CloudWatchAlarmTemplateTargetResourceType", - "enum": [ - "CLOUDFRONT_DISTRIBUTION", - "MEDIACONNECT_FLOW", - "MEDIALIVE_CHANNEL", - "MEDIALIVE_INPUT_DEVICE", - "MEDIALIVE_MULTIPLEX", - "MEDIAPACKAGE_CHANNEL", - "MEDIAPACKAGE_ORIGIN_ENDPOINT", - "S3_BUCKET" - ] + "$ref": "#/definitions/CloudWatchAlarmTemplateTargetResourceType" }, "Threshold": { "default": 0, "type": "number" }, "TreatMissingData": { - "$ref": "#/definitions/CloudWatchAlarmTemplateTreatMissingData", - "enum": [ - "breaching", - "ignore", - "missing", - "notBreaching" - ] + "$ref": "#/definitions/CloudWatchAlarmTemplateTreatMissingData" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cluster.json index ae14c0af66..e10fa646e7 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-cluster.json @@ -93,10 +93,7 @@ "type": "array" }, "ClusterType": { - "$ref": "#/definitions/ClusterType", - "enum": [ - "ON_PREMISES" - ] + "$ref": "#/definitions/ClusterType" }, "Id": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-eventbridgeruletemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-eventbridgeruletemplate.json index ac68a9e99d..fc0d19fe3d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-eventbridgeruletemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-eventbridgeruletemplate.json @@ -71,22 +71,7 @@ "type": "array" }, "EventType": { - "$ref": "#/definitions/EventBridgeRuleTemplateEventType", - "enum": [ - "MEDIACONNECT_ALERT", - "MEDIACONNECT_FLOW_STATUS_CHANGE", - "MEDIACONNECT_OUTPUT_HEALTH", - "MEDIACONNECT_SOURCE_HEALTH", - "MEDIALIVE_CHANNEL_ALERT", - "MEDIALIVE_CHANNEL_INPUT_CHANGE", - "MEDIALIVE_CHANNEL_STATE_CHANGE", - "MEDIALIVE_MULTIPLEX_ALERT", - "MEDIALIVE_MULTIPLEX_STATE_CHANGE", - "MEDIAPACKAGE_HARVEST_JOB_NOTIFICATION", - "MEDIAPACKAGE_INPUT_NOTIFICATION", - "MEDIAPACKAGE_KEY_PROVIDER_NOTIFICATION", - "SIGNAL_MAP_ACTIVE_ALARM" - ] + "$ref": "#/definitions/EventBridgeRuleTemplateEventType" }, "GroupId": { "maxLength": 11, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-channel.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-channel.json index 823ea58af4..b791edb2a3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-channel.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-channel.json @@ -85,11 +85,7 @@ "type": "array" }, "InputType": { - "$ref": "#/definitions/InputType", - "enum": [ - "CMAF", - "HLS" - ] + "$ref": "#/definitions/InputType" }, "ModifiedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-originendpoint.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-originendpoint.json index 9db05a60c1..fc627ff318 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-originendpoint.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-mediapackagev2-originendpoint.json @@ -501,11 +501,7 @@ "type": "string" }, "ContainerType": { - "$ref": "#/definitions/ContainerType", - "enum": [ - "CMAF", - "TS" - ] + "$ref": "#/definitions/ContainerType" }, "CreatedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-mediatailor-channel.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-mediatailor-channel.json index da53ddfc25..ccb568a596 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-mediatailor-channel.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-mediatailor-channel.json @@ -171,11 +171,7 @@ "type": "array" }, "PlaybackMode": { - "$ref": "#/definitions/PlaybackMode", - "enum": [ - "LINEAR", - "LOOP" - ] + "$ref": "#/definitions/PlaybackMode" }, "Tags": { "insertionOrder": false, @@ -186,11 +182,7 @@ "uniqueItems": true }, "Tier": { - "$ref": "#/definitions/Tier", - "enum": [ - "BASIC", - "STANDARD" - ] + "$ref": "#/definitions/Tier" }, "TimeShiftConfiguration": { "$ref": "#/definitions/TimeShiftConfiguration" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-mwaa-environment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-mwaa-environment.json index 6dc5bedb86..c85441d943 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-mwaa-environment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-mwaa-environment.json @@ -333,8 +333,7 @@ ] }, "AirflowVersion": { - "$ref": "#/definitions/AirflowVersion", - "pattern": "[0-9a-z.]+" + "$ref": "#/definitions/AirflowVersion" }, "Arn": { "$ref": "#/definitions/EnvironmentArn" @@ -349,22 +348,16 @@ "$ref": "#/definitions/DatabaseVpcEndpointService" }, "EndpointManagement": { - "$ref": "#/definitions/EndpointManagement", - "enum": [ - "CUSTOMER", - "SERVICE" - ] + "$ref": "#/definitions/EndpointManagement" }, "EnvironmentClass": { "$ref": "#/definitions/EnvironmentClass" }, "ExecutionRoleArn": { - "$ref": "#/definitions/ExecutionRoleArn", - "pattern": "arn:aws(-[a-z]+)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" + "$ref": "#/definitions/ExecutionRoleArn" }, "KmsKey": { - "$ref": "#/definitions/KmsKey", - "pattern": "(((arn:aws(-[a-z]+)?:kms:[a-z]{2}-[a-z]+-\\d:\\d+:)?key\\/)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|(arn:aws(-[a-z]+)?:kms:[a-z]{2}-[a-z]+-\\d:\\d+:)?alias/.+)" + "$ref": "#/definitions/KmsKey" }, "LoggingConfiguration": { "$ref": "#/definitions/LoggingConfiguration" @@ -382,8 +375,7 @@ "$ref": "#/definitions/MinWorkers" }, "Name": { - "$ref": "#/definitions/EnvironmentName", - "pattern": "[a-zA-Z][0-9a-zA-Z-_]*" + "$ref": "#/definitions/EnvironmentName" }, "NetworkConfiguration": { "$ref": "#/definitions/NetworkConfiguration" @@ -404,8 +396,7 @@ "$ref": "#/definitions/Schedulers" }, "SourceBucketArn": { - "$ref": "#/definitions/S3BucketArn", - "pattern": "arn:aws(-[a-z]+)?:s3:::[a-z0-9.\\-]+" + "$ref": "#/definitions/S3BucketArn" }, "StartupScriptS3ObjectVersion": { "$ref": "#/definitions/S3ObjectVersion" @@ -421,11 +412,7 @@ ] }, "WebserverAccessMode": { - "$ref": "#/definitions/WebserverAccessMode", - "enum": [ - "PRIVATE_ONLY", - "PUBLIC_ONLY" - ] + "$ref": "#/definitions/WebserverAccessMode" }, "WebserverUrl": { "$ref": "#/definitions/WebserverUrl" @@ -434,8 +421,7 @@ "$ref": "#/definitions/WebserverVpcEndpointService" }, "WeeklyMaintenanceWindowStart": { - "$ref": "#/definitions/WeeklyMaintenanceWindowStart", - "pattern": ".*(MON|TUE|WED|THU|FRI|SAT|SUN):([01]\\d|2[0-3]):(00|30).*" + "$ref": "#/definitions/WeeklyMaintenanceWindowStart" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewall.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewall.json index 0a91811ed0..3a6b5ab3ac 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewall.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewall.json @@ -85,8 +85,7 @@ "type": "string" }, "FirewallPolicyArn": { - "$ref": "#/definitions/ResourceArn", - "pattern": "^arn:aws.*" + "$ref": "#/definitions/ResourceArn" }, "FirewallPolicyChangeProtection": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json index 973b595561..6c4c8f2af1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json @@ -187,6 +187,17 @@ "StatefulEngineOptions": { "additionalProperties": false, "properties": { + "FlowTimeouts": { + "additionalProperties": false, + "properties": { + "TcpIdleTimeoutSeconds": { + "maximum": 600, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, "RuleOrder": { "$ref": "#/definitions/RuleOrder" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-annotationstore.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-annotationstore.json index 46b6b52082..66cf3ce984 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-annotationstore.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-annotationstore.json @@ -214,12 +214,7 @@ "type": "string" }, "StoreFormat": { - "$ref": "#/definitions/StoreFormat", - "enum": [ - "GFF", - "TSV", - "VCF" - ] + "$ref": "#/definitions/StoreFormat" }, "StoreOptions": { "$ref": "#/definitions/StoreOptions" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-workflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-workflow.json index eaf4d7f3ba..506ff69763 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-workflow.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-workflow.json @@ -90,10 +90,7 @@ ], "properties": { "Accelerators": { - "$ref": "#/definitions/Accelerators", - "enum": [ - "GPU" - ] + "$ref": "#/definitions/Accelerators" }, "Arn": { "maxLength": 128, @@ -118,12 +115,7 @@ "type": "string" }, "Engine": { - "$ref": "#/definitions/WorkflowEngine", - "enum": [ - "CWL", - "NEXTFLOW", - "WDL" - ] + "$ref": "#/definitions/WorkflowEngine" }, "Id": { "maxLength": 18, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-accesspolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-accesspolicy.json index 6ef092edd4..4492cd3002 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-accesspolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-accesspolicy.json @@ -35,10 +35,7 @@ "type": "string" }, "Type": { - "$ref": "#/definitions/AccessPolicyType", - "enum": [ - "data" - ] + "$ref": "#/definitions/AccessPolicyType" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-collection.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-collection.json index 005e81f50e..cb4fce210b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-collection.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-collection.json @@ -79,11 +79,7 @@ "type": "string" }, "StandbyReplicas": { - "$ref": "#/definitions/StandbyReplicas", - "enum": [ - "DISABLED", - "ENABLED" - ] + "$ref": "#/definitions/StandbyReplicas" }, "Tags": { "insertionOrder": false, @@ -95,12 +91,7 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/CollectionType", - "enum": [ - "SEARCH", - "TIMESERIES", - "VECTORSEARCH" - ] + "$ref": "#/definitions/CollectionType" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-lifecyclepolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-lifecyclepolicy.json index d042a46c47..584ab2abfb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-lifecyclepolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-lifecyclepolicy.json @@ -35,10 +35,7 @@ "type": "string" }, "Type": { - "$ref": "#/definitions/LifecyclePolicyType", - "enum": [ - "retention" - ] + "$ref": "#/definitions/LifecyclePolicyType" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securityconfig.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securityconfig.json index 9a70bd4274..4e0b9a6bcd 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securityconfig.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securityconfig.json @@ -71,10 +71,7 @@ "$ref": "#/definitions/SamlConfigOptions" }, "Type": { - "$ref": "#/definitions/SecurityConfigType", - "enum": [ - "saml" - ] + "$ref": "#/definitions/SecurityConfigType" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securitypolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securitypolicy.json index 4c6e38d2d5..5f8f6dd2f5 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securitypolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchserverless-securitypolicy.json @@ -36,11 +36,7 @@ "type": "string" }, "Type": { - "$ref": "#/definitions/SecurityPolicyType", - "enum": [ - "encryption", - "network" - ] + "$ref": "#/definitions/SecurityPolicyType" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-applicationinstance.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-applicationinstance.json index 83bb95d281..093451f44d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-applicationinstance.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-applicationinstance.json @@ -168,8 +168,7 @@ "$ref": "#/definitions/ApplicationInstanceId" }, "ApplicationInstanceIdToReplace": { - "$ref": "#/definitions/ApplicationInstanceId", - "pattern": "^[a-zA-Z0-9\\-\\_]+$" + "$ref": "#/definitions/ApplicationInstanceId" }, "Arn": { "$ref": "#/definitions/ApplicationInstanceArn" @@ -178,15 +177,13 @@ "$ref": "#/definitions/Timestamp" }, "DefaultRuntimeContextDevice": { - "$ref": "#/definitions/DefaultRuntimeContextDevice", - "pattern": "^[a-zA-Z0-9\\-\\_]+$" + "$ref": "#/definitions/DefaultRuntimeContextDevice" }, "DefaultRuntimeContextDeviceName": { "$ref": "#/definitions/DeviceName" }, "Description": { - "$ref": "#/definitions/Description", - "pattern": "^.*$" + "$ref": "#/definitions/Description" }, "HealthStatus": { "$ref": "#/definitions/ApplicationInstanceHealthStatus" @@ -201,12 +198,10 @@ "$ref": "#/definitions/ManifestPayload" }, "Name": { - "$ref": "#/definitions/Name", - "pattern": "^[a-zA-Z0-9\\-\\_]+$" + "$ref": "#/definitions/Name" }, "RuntimeRoleArn": { - "$ref": "#/definitions/RuntimeRoleArn", - "pattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+$" + "$ref": "#/definitions/RuntimeRoleArn" }, "Status": { "$ref": "#/definitions/ApplicationInstanceStatus" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-package.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-package.json index 35b64bd983..77027193b3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-package.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-package.json @@ -90,8 +90,7 @@ "$ref": "#/definitions/NodePackageId" }, "PackageName": { - "$ref": "#/definitions/NodePackageName", - "pattern": "^[a-zA-Z0-9\\-\\_]+$" + "$ref": "#/definitions/NodePackageName" }, "StorageLocation": { "$ref": "#/definitions/StorageLocation" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-packageversion.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-packageversion.json index 2fff7dfaa3..e6c30311f9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-packageversion.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-panorama-packageversion.json @@ -73,26 +73,22 @@ "type": "boolean" }, "OwnerAccount": { - "$ref": "#/definitions/PackageOwnerAccount", - "pattern": "^[0-9a-z\\_]+$" + "$ref": "#/definitions/PackageOwnerAccount" }, "PackageArn": { "$ref": "#/definitions/NodePackageArn" }, "PackageId": { - "$ref": "#/definitions/NodePackageId", - "pattern": "^[a-zA-Z0-9\\-\\_\\/]+$" + "$ref": "#/definitions/NodePackageId" }, "PackageName": { "$ref": "#/definitions/NodePackageName" }, "PackageVersion": { - "$ref": "#/definitions/NodePackageVersion", - "pattern": "^([0-9]+)\\.([0-9]+)$" + "$ref": "#/definitions/NodePackageVersion" }, "PatchVersion": { - "$ref": "#/definitions/NodePackagePatchVersion", - "pattern": "^[a-z0-9]+$" + "$ref": "#/definitions/NodePackagePatchVersion" }, "RegisteredTime": { "$ref": "#/definitions/TimeStamp" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-paymentcryptography-key.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-paymentcryptography-key.json index 346b344c1e..3d582538e2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-paymentcryptography-key.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-paymentcryptography-key.json @@ -177,11 +177,7 @@ "$ref": "#/definitions/KeyAttributes" }, "KeyCheckValueAlgorithm": { - "$ref": "#/definitions/KeyCheckValueAlgorithm", - "enum": [ - "ANSI_X9_24", - "CMAC" - ] + "$ref": "#/definitions/KeyCheckValueAlgorithm" }, "KeyIdentifier": { "maxLength": 322, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-pipes-pipe.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-pipes-pipe.json index 03cd1addb1..ea5044ce0a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-pipes-pipe.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-pipes-pipe.json @@ -1743,11 +1743,7 @@ "type": "string" }, "DesiredState": { - "$ref": "#/definitions/RequestedPipeState", - "enum": [ - "RUNNING", - "STOPPED" - ] + "$ref": "#/definitions/RequestedPipeState" }, "Enrichment": { "maxLength": 1600, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-environmenttemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-environmenttemplate.json index bdf12e7f39..e8098e55ab 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-environmenttemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-environmenttemplate.json @@ -68,10 +68,7 @@ "type": "string" }, "Provisioning": { - "$ref": "#/definitions/Provisioning", - "enum": [ - "CUSTOMER_MANAGED" - ] + "$ref": "#/definitions/Provisioning" }, "Tags": { "items": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-servicetemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-servicetemplate.json index 4a6e91a129..b813638f5e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-servicetemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-proton-servicetemplate.json @@ -71,10 +71,7 @@ "type": "string" }, "PipelineProvisioning": { - "$ref": "#/definitions/Provisioning", - "enum": [ - "CUSTOMER_MANAGED" - ] + "$ref": "#/definitions/Provisioning" }, "Tags": { "items": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-application.json index 4d7362fc3a..2e1ee83240 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-application.json @@ -213,12 +213,7 @@ "type": "string" }, "IdentityType": { - "$ref": "#/definitions/IdentityType", - "enum": [ - "AWS_IAM_IDC", - "AWS_IAM_IDP_OIDC", - "AWS_IAM_IDP_SAML" - ] + "$ref": "#/definitions/IdentityType" }, "PersonalizationConfiguration": { "$ref": "#/definitions/PersonalizationConfiguration" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-index.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-index.json index 5049bfdad1..fc538a7c09 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-index.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-index.json @@ -177,11 +177,7 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/IndexType", - "enum": [ - "ENTERPRISE", - "STARTER" - ] + "$ref": "#/definitions/IndexType" }, "UpdatedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-plugin.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-plugin.json index 483d9fed0c..5cce9cb4d1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-plugin.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-plugin.json @@ -289,14 +289,7 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/PluginType", - "enum": [ - "CUSTOM", - "JIRA", - "SALESFORCE", - "SERVICE_NOW", - "ZENDESK" - ] + "$ref": "#/definitions/PluginType" }, "UpdatedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-retriever.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-retriever.json index f663c42b74..1be036db8e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-retriever.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-retriever.json @@ -156,11 +156,7 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/RetrieverType", - "enum": [ - "KENDRA_INDEX", - "NATIVE_INDEX" - ] + "$ref": "#/definitions/RetrieverType" }, "UpdatedAt": { "format": "date-time", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-webexperience.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-webexperience.json index 3a3d4025a6..f1245a2d65 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-webexperience.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-qbusiness-webexperience.json @@ -140,11 +140,7 @@ "type": "string" }, "SamplePromptsControlMode": { - "$ref": "#/definitions/WebExperienceSamplePromptsControlMode", - "enum": [ - "DISABLED", - "ENABLED" - ] + "$ref": "#/definitions/WebExperienceSamplePromptsControlMode" }, "Status": { "$ref": "#/definitions/WebExperienceStatus" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dataset.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dataset.json index effc227a61..f383e083f5 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dataset.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dataset.json @@ -1286,11 +1286,7 @@ "type": "array" }, "ImportMode": { - "$ref": "#/definitions/DataSetImportMode", - "enum": [ - "DIRECT_QUERY", - "SPICE" - ] + "$ref": "#/definitions/DataSetImportMode" }, "IngestionWaitPolicy": { "$ref": "#/definitions/IngestionWaitPolicy" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-datasource.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-datasource.json index c810930af6..50d11e3821 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-datasource.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-datasource.json @@ -917,38 +917,7 @@ "type": "array" }, "Type": { - "$ref": "#/definitions/DataSourceType", - "enum": [ - "ADOBE_ANALYTICS", - "AMAZON_ELASTICSEARCH", - "AMAZON_OPENSEARCH", - "ATHENA", - "AURORA", - "AURORA_POSTGRESQL", - "AWS_IOT_ANALYTICS", - "BIGQUERY", - "DATABRICKS", - "EXASOL", - "GITHUB", - "JIRA", - "MARIADB", - "MYSQL", - "ORACLE", - "POSTGRESQL", - "PRESTO", - "REDSHIFT", - "S3", - "SALESFORCE", - "SERVICENOW", - "SNOWFLAKE", - "SPARK", - "SQLSERVER", - "STARBURST", - "TERADATA", - "TIMESTREAM", - "TRINO", - "TWITTER" - ] + "$ref": "#/definitions/DataSourceType" }, "VpcConnectionProperties": { "$ref": "#/definitions/VpcConnectionProperties" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-folder.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-folder.json index 13e84ee166..ebd448db17 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-folder.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-folder.json @@ -94,11 +94,7 @@ "type": "string" }, "FolderType": { - "$ref": "#/definitions/FolderType", - "enum": [ - "RESTRICTED", - "SHARED" - ] + "$ref": "#/definitions/FolderType" }, "LastUpdatedTime": { "format": "date-time", @@ -122,11 +118,7 @@ "type": "array" }, "SharingModel": { - "$ref": "#/definitions/SharingModel", - "enum": [ - "ACCOUNT", - "NAMESPACE" - ] + "$ref": "#/definitions/SharingModel" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-collection.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-collection.json index 2fff8d10b4..a8deb77d7a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-collection.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-collection.json @@ -44,8 +44,7 @@ "$ref": "#/definitions/Arn" }, "CollectionId": { - "$ref": "#/definitions/CollectionId", - "pattern": "[a-zA-Z0-9_.\\-]+" + "$ref": "#/definitions/CollectionId" }, "Tags": { "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-project.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-project.json index 9fa44749fa..c406bbd18f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-project.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-rekognition-project.json @@ -24,8 +24,7 @@ "$ref": "#/definitions/Arn" }, "ProjectName": { - "$ref": "#/definitions/ProjectName", - "pattern": "[a-zA-Z0-9_.\\-]+" + "$ref": "#/definitions/ProjectName" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-robotapplicationversion.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-robotapplicationversion.json index cf17d80dc0..babfd9bdc7 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-robotapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-robotapplicationversion.json @@ -15,8 +15,7 @@ ], "properties": { "Application": { - "$ref": "#/definitions/Arn", - "pattern": "arn:.*" + "$ref": "#/definitions/Arn" }, "ApplicationVersion": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-simulationapplicationversion.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-simulationapplicationversion.json index 9407e15bab..7498d609dc 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-simulationapplicationversion.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-robomaker-simulationapplicationversion.json @@ -15,8 +15,7 @@ ], "properties": { "Application": { - "$ref": "#/definitions/Arn", - "pattern": "arn:.*" + "$ref": "#/definitions/Arn" }, "ApplicationVersion": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-dataqualityjobdefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-dataqualityjobdefinition.json index feb107b584..83c8914e4a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-dataqualityjobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-dataqualityjobdefinition.json @@ -457,8 +457,7 @@ "type": "string" }, "JobDefinitionName": { - "$ref": "#/definitions/JobDefinitionName", - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/JobDefinitionName" }, "JobResources": { "$ref": "#/definitions/MonitoringResources" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-image.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-image.json index 40275b4819..3b3f45e9af 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-image.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-image.json @@ -73,8 +73,7 @@ "$ref": "#/definitions/ImageDisplayName" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageRoleArn": { "$ref": "#/definitions/ImageRoleArn" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-imageversion.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-imageversion.json index 621ace60a5..3b09dc9bad 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-imageversion.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-imageversion.json @@ -120,46 +120,28 @@ "$ref": "#/definitions/ImageArn" }, "ImageName": { - "$ref": "#/definitions/ImageName", - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/ImageName" }, "ImageVersionArn": { "$ref": "#/definitions/ImageVersionArn" }, "JobType": { - "$ref": "#/definitions/JobType", - "enum": [ - "INFERENCE", - "NOTEBOOK_KERNEL", - "TRAINING" - ] + "$ref": "#/definitions/JobType" }, "MLFramework": { - "$ref": "#/definitions/MLFramework", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/MLFramework" }, "Processor": { - "$ref": "#/definitions/Processor", - "enum": [ - "CPU", - "GPU" - ] + "$ref": "#/definitions/Processor" }, "ProgrammingLang": { - "$ref": "#/definitions/ProgrammingLang", - "pattern": "^[a-zA-Z]+ ?\\d+\\.\\d+(\\.\\d+)?$" + "$ref": "#/definitions/ProgrammingLang" }, "ReleaseNotes": { "$ref": "#/definitions/ReleaseNotes" }, "VendorGuidance": { - "$ref": "#/definitions/VendorGuidance", - "enum": [ - "ARCHIVED", - "NOT_PROVIDED", - "STABLE", - "TO_BE_ARCHIVED" - ] + "$ref": "#/definitions/VendorGuidance" }, "Version": { "$ref": "#/definitions/Version" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferencecomponent.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferencecomponent.json index 8b90f34b7e..455e14ba03 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferencecomponent.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferencecomponent.json @@ -229,8 +229,7 @@ "$ref": "#/definitions/EndpointArn" }, "EndpointName": { - "$ref": "#/definitions/EndpointName", - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + "$ref": "#/definitions/EndpointName" }, "FailureReason": { "$ref": "#/definitions/FailureReason" @@ -239,8 +238,7 @@ "$ref": "#/definitions/InferenceComponentArn" }, "InferenceComponentName": { - "$ref": "#/definitions/InferenceComponentName", - "pattern": "^[a-zA-Z0-9]([\\-a-zA-Z0-9]*[a-zA-Z0-9])?$" + "$ref": "#/definitions/InferenceComponentName" }, "InferenceComponentStatus": { "$ref": "#/definitions/InferenceComponentStatus" @@ -258,8 +256,7 @@ "$ref": "#/definitions/TagList" }, "VariantName": { - "$ref": "#/definitions/VariantName", - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + "$ref": "#/definitions/VariantName" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferenceexperiment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferenceexperiment.json index 3168bd38de..9c906ec70e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferenceexperiment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-inferenceexperiment.json @@ -263,8 +263,7 @@ "$ref": "#/definitions/EndpointMetadata" }, "EndpointName": { - "$ref": "#/definitions/EndpointName", - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + "$ref": "#/definitions/EndpointName" }, "KmsKey": { "maxLength": 2048, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelbiasjobdefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelbiasjobdefinition.json index 4365283f76..4dc1c10d1a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelbiasjobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelbiasjobdefinition.json @@ -475,8 +475,7 @@ "type": "string" }, "JobDefinitionName": { - "$ref": "#/definitions/JobDefinitionName", - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/JobDefinitionName" }, "JobResources": { "$ref": "#/definitions/MonitoringResources" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelexplainabilityjobdefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelexplainabilityjobdefinition.json index 11354ef766..abb0a6d55e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelexplainabilityjobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelexplainabilityjobdefinition.json @@ -435,8 +435,7 @@ "type": "string" }, "JobDefinitionName": { - "$ref": "#/definitions/JobDefinitionName", - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + "$ref": "#/definitions/JobDefinitionName" }, "JobResources": { "$ref": "#/definitions/MonitoringResources" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelpackage.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelpackage.json index cfbed3f62e..0af8c6b081 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelpackage.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-modelpackage.json @@ -963,8 +963,7 @@ "$ref": "#/definitions/CertifyForMarketplace" }, "ClientToken": { - "$ref": "#/definitions/ClientToken", - "pattern": "^[a-zA-Z0-9-]+$" + "$ref": "#/definitions/ClientToken" }, "CreationTime": { "$ref": "#/definitions/CreationTime" @@ -988,12 +987,7 @@ "$ref": "#/definitions/MetadataProperties" }, "ModelApprovalStatus": { - "$ref": "#/definitions/ModelApprovalStatus", - "enum": [ - "Approved", - "PendingManualApproval", - "Rejected" - ] + "$ref": "#/definitions/ModelApprovalStatus" }, "ModelCard": { "$ref": "#/definitions/ModelCard" @@ -1005,16 +999,13 @@ "$ref": "#/definitions/ModelPackageArn" }, "ModelPackageDescription": { - "$ref": "#/definitions/ModelPackageDescription", - "pattern": "[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*" + "$ref": "#/definitions/ModelPackageDescription" }, "ModelPackageGroupName": { - "$ref": "#/definitions/ModelPackageGroupName", - "pattern": "(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(? Date: Mon, 14 Oct 2024 08:38:42 -0700 Subject: [PATCH 7/7] don't create empty files --- .github/workflows/maintenance-v1.yaml | 2 +- scripts/boto/_manual_patches.py | 20 ----- scripts/boto/update_schemas_from_boto.py | 74 ++++++++++--------- .../aws_appintegrations_application/boto.json | 1 - .../boto.json | 1 - .../boto.json | 1 - .../boto.json | 16 ++-- .../all/aws_athena_datacatalog/boto.json | 1 - .../boto.json | 1 - .../aws_autoscaling_scheduledaction/boto.json | 1 - .../all/aws_datapipeline_pipeline/boto.json | 1 - .../aws_emr_securityconfiguration/boto.json | 1 - .../extensions/all/aws_emr_step/boto.json | 1 - .../extensions/all/aws_emr_studio/boto.json | 1 - .../aws_emr_studiosessionmapping/boto.json | 1 - .../all/aws_evidently_experiment/boto.json | 1 - .../all/aws_evidently_feature/boto.json | 1 - .../all/aws_evidently_launch/boto.json | 1 - .../all/aws_evidently_project/boto.json | 1 - .../all/aws_evidently_segment/boto.json | 1 - .../all/aws_glue_database/boto.json | 1 - .../all/aws_glue_registry/boto.json | 1 - .../all/aws_glue_usageprofile/boto.json | 1 - .../aws_iottwinmaker_componenttype/boto.json | 1 - .../all/aws_iottwinmaker_entity/boto.json | 1 - .../all/aws_iottwinmaker_scene/boto.json | 1 - .../all/aws_lakeformation_tag/boto.json | 1 - .../all/aws_sagemaker_modelcard/boto.json | 1 - 28 files changed, 47 insertions(+), 89 deletions(-) delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_datapipeline_pipeline/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_securityconfiguration/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_step/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studio/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studiosessionmapping/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_experiment/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_feature/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_launch/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_project/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_segment/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_database/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_registry/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_glue_usageprofile/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_componenttype/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_entity/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_scene/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_lakeformation_tag/boto.json delete mode 100644 src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelcard/boto.json diff --git a/.github/workflows/maintenance-v1.yaml b/.github/workflows/maintenance-v1.yaml index 45c71d8ab2..8997f7360a 100644 --- a/.github/workflows/maintenance-v1.yaml +++ b/.github/workflows/maintenance-v1.yaml @@ -25,7 +25,7 @@ jobs: cfn-lint --update-documentation scripts/update_specs_from_pricing.py scripts/update_serverless_aws_policies.py - scripts/update_schemas_from_boto.py + scripts/boto/update_schemas_from_boto.py scripts/update_schemas_from_aws_api.py cfn-lint --update-specs echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT diff --git a/scripts/boto/_manual_patches.py b/scripts/boto/_manual_patches.py index da36799c6b..00eaf57165 100644 --- a/scripts/boto/_manual_patches.py +++ b/scripts/boto/_manual_patches.py @@ -28,16 +28,6 @@ shape="BrokerStorageType", ), }, - "AWS::AmazonMQ::Configuration": { - "/properties/AuthenticationStrategy": Patch( - source=["mq", "2017-11-27"], - shape="AuthenticationStrategy", - ), - "/properties/EngineType": Patch( - source=["mq", "2017-11-27"], - shape="EngineType", - ), - }, "AWS::ApiGateway::RestApi": { "/properties/ApiKeySourceType": Patch( source=["apigateway", "2015-07-09"], @@ -57,10 +47,6 @@ ), }, "AWS::ApplicationAutoScaling::ScalingPolicy": { - "/properties/PolicyType": Patch( - source=["application-autoscaling", "2016-02-06"], - shape="PolicyType", - ), ( "/definitions/PredefinedMetricSpecification/" "properties/PredefinedMetricType" @@ -385,12 +371,6 @@ shape="StreamViewType", ), }, - "AWS::EC2::CustomerGateway": { - "/properties/Type": Patch( - source=["ec2", "2016-11-15"], - shape="GatewayType", - ), - }, "AWS::EC2::EC2Fleet": { "/definitions/OnDemandOptionsRequest/properties/AllocationStrategy": Patch( source=["ec2", "2016-11-15"], diff --git a/scripts/boto/update_schemas_from_boto.py b/scripts/boto/update_schemas_from_boto.py index 5e1b4be1e4..978c5bbe00 100755 --- a/scripts/boto/update_schemas_from_boto.py +++ b/scripts/boto/update_schemas_from_boto.py @@ -56,45 +56,47 @@ def build_resource_type_patches( output_file = resource_path / "boto.json" - with open(output_file, "w+") as fh: - d = [] - boto_d = {} - for path, patch in resource_patches.items(): - service_path = ( - ["botocore-master/botocore/data"] + patch.source + ["service-2.json"] - ) - with open(os.path.join(dir, *service_path), "r") as f: - boto_d = json.load(f) - - for field in ["enum", "pattern"]: - value = boto_d.get("shapes", {}).get(patch.shape, {}).get(field) - if not value: + d = [] + boto_d = {} + for path, patch in resource_patches.items(): + service_path = ( + ["botocore-master/botocore/data"] + patch.source + ["service-2.json"] + ) + with open(os.path.join(dir, *service_path), "r") as f: + boto_d = json.load(f) + + for field in ["enum", "pattern"]: + value = boto_d.get("shapes", {}).get(patch.shape, {}).get(field) + if not value: + continue + if field == "pattern": + if value == ".*": continue - if field == "pattern": - if value == ".*": - continue - try: - re.compile(value) - except Exception: - LOGGER.info( - ( - f"Pattern {value!r} failed to " - "compile for resource " - f"{resource_name!r}" - ) + try: + re.compile(value) + except Exception: + LOGGER.info( + ( + f"Pattern {value!r} failed to " + "compile for resource " + f"{resource_name!r}" ) - continue - if value: - d.append( - { - "op": "add", - "path": f"{path}/{field}", - "value": ( - sorted(value) if isinstance(value, list) else value - ), - } ) - + continue + if value: + d.append( + { + "op": "add", + "path": f"{path}/{field}", + "value": ( + sorted(value) if isinstance(value, list) else value + ), + } + ) + + if not d: + return + with open(output_file, "w+") as fh: json.dump( d, fh, diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_application/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_dataintegration/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appintegrations_eventintegration/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json index 472b7ff68f..7a98f1835b 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json @@ -1,12 +1,4 @@ [ - { - "op": "add", - "path": "/properties/PolicyType/enum", - "value": [ - "StepScaling", - "TargetTrackingScaling" - ] - }, { "op": "add", "path": "/definitions/PredefinedMetricSpecification/properties/PredefinedMetricType/enum", @@ -94,5 +86,13 @@ "sagemaker:variant:DesiredProvisionedConcurrency", "workspaces:workspacespool:DesiredUserSessions" ] + }, + { + "op": "add", + "path": "/properties/PolicyType/enum", + "value": [ + "StepScaling", + "TargetTrackingScaling" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_athena_datacatalog/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_autoscalinggroup/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_autoscaling_scheduledaction/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_datapipeline_pipeline/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_datapipeline_pipeline/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_datapipeline_pipeline/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_securityconfiguration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_securityconfiguration/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_securityconfiguration/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_step/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_step/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_step/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studio/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studio/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studio/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studiosessionmapping/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studiosessionmapping/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_emr_studiosessionmapping/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_experiment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_experiment/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_experiment/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_feature/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_feature/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_feature/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_launch/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_launch/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_launch/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_project/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_project/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_project/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_segment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_segment/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_evidently_segment/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_database/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_database/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_database/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_registry/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_registry/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_registry/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_usageprofile/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_usageprofile/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_usageprofile/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_componenttype/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_componenttype/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_componenttype/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_entity/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_entity/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_entity/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_scene/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_scene/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iottwinmaker_scene/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_lakeformation_tag/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_lakeformation_tag/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_lakeformation_tag/boto.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelcard/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelcard/boto.json deleted file mode 100644 index fe51488c70..0000000000 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_sagemaker_modelcard/boto.json +++ /dev/null @@ -1 +0,0 @@ -[]