From 240e525ae2a82486a59fbb85e4664ace234ff554 Mon Sep 17 00:00:00 2001 From: Kevin DeJong Date: Tue, 3 Sep 2024 08:13:59 -0700 Subject: [PATCH] Add ap-southeast-5 (#3624) * Add ap-southeast-5 region --- ...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 | 1 + ...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 | 23 +- .../aws-apigatewayv2-integration.json | 187 + .../af_south_1/aws-ec2-customergateway.json | 119 + .../aws-ec2-internetgateway.json} | 54 +- .../providers/af_south_1/aws-ec2-ipam.json | 148 - .../af_south_1/aws-ec2-networkaclentry.json | 114 - .../providers/af_south_1/aws-ec2-subnet.json | 182 + .../af_south_1/aws-ec2-vpnconnection.json | 132 + .../af_south_1/aws-ec2-vpngateway.json | 96 + .../af_south_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 5 - .../af_south_1/aws-glue-database.json | 117 - .../af_south_1/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../af_south_1/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/ap_east_1/__init__.py | 11 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/ap_east_1/aws-ec2-ipam.json | 148 - .../ap_east_1/aws-ec2-networkaclentry.json | 114 - .../providers/ap_east_1/aws-ec2-subnet.json | 182 + .../ap_east_1/aws-ec2-vpnconnection.json | 132 + .../ap_east_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 5 - .../ap_east_1/aws-glue-database.json | 117 - .../ap_east_1/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../aws-securityhub-automationrule.json | 726 + .../providers/ap_northeast_1/__init__.py | 16 +- .../aws-apigatewayv2-integration.json | 197 + .../ap_northeast_1/aws-bedrock-flow.json | 1022 ++ .../ap_northeast_1/aws-bedrock-flowalias.json | 158 + .../aws-bedrock-flowversion.json | 896 ++ .../aws-bedrock-promptversion.json | 296 + .../ap_northeast_1/aws-codebuild-fleet.json | 159 - .../aws-location-geofencecollection.json | 168 - .../aws-mediapackagev2-channel.json | 169 + .../aws-mediapackagev2-channelgroup.json | 117 + .../aws-mediapackagev2-originendpoint.json | 658 + .../ap_northeast_1/aws-msk-replicator.json | 373 - .../ap_northeast_1/aws-sagemaker-domain.json | 849 ++ .../aws-sagemaker-userprofile.json | 615 + .../ap_northeast_1/aws-ses-receiptrule.json | 219 - .../providers/ap_northeast_2/__init__.py | 36 +- .../aws-apigatewayv2-integration.json | 187 + .../aws-ec2-customergateway.json | 119 + .../aws-ec2-internetgateway.json} | 54 +- .../ap_northeast_2/aws-ec2-ipam.json | 148 - .../ap_northeast_2/aws-ec2-subnet.json | 182 + .../ap_northeast_2/aws-ec2-vpnconnection.json | 132 + .../ap_northeast_2/aws-ec2-vpngateway.json | 96 + .../ap_northeast_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 5 - .../ap_northeast_2/aws-glue-database.json | 117 - .../ap_northeast_2/aws-ivs-channel.json | 148 - .../aws-ivs-encoderconfiguration.json | 136 - .../aws-ivs-playbackrestrictionpolicy.json | 123 - .../aws-ivs-recordingconfiguration.json | 255 - .../aws-ivs-storageconfiguration.json | 132 - .../ap_northeast_2/aws-ivs-streamkey.json | 117 - .../ap_northeast_2/aws-kms-replicakey.json | 131 - .../ap_northeast_2/aws-msk-replicator.json | 349 - .../aws-opensearchservice-domain.json | 538 + .../ap_northeast_2/aws-rds-globalcluster.json | 99 - .../aws-redshiftserverless-workgroup.json | 379 - .../aws-securityhub-automationrule.json | 726 + .../providers/ap_northeast_3/__init__.py | 13 +- .../aws-apigatewayv2-integration.json | 187 + .../ap_northeast_3/aws-ec2-ipam.json | 148 - .../ap_northeast_3/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ap_northeast_3/aws-glue-database.json | 117 - .../ap_northeast_3/aws-kms-replicakey.json | 131 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/ap_south_1/__init__.py | 29 +- .../aws-apigatewayv2-integration.json | 197 + .../ap_south_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ap_south_1/aws-glue-database.json | 117 - .../providers/ap_south_1/aws-ivs-channel.json | 148 - .../aws-ivs-encoderconfiguration.json | 136 - .../aws-ivs-playbackrestrictionpolicy.json | 123 - .../aws-ivs-recordingconfiguration.json | 255 - .../aws-ivs-storageconfiguration.json | 132 - .../ap_south_1/aws-ivs-streamkey.json | 117 - .../ap_south_1/aws-kms-replicakey.json | 131 - .../ap_south_1/aws-location-apikey.json | 226 - .../ap_south_1/aws-msk-replicator.json | 349 - .../aws-opensearchservice-domain.json | 538 + .../ap_south_1/aws-sagemaker-domain.json | 849 ++ .../ap_south_1/aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/ap_south_2/__init__.py | 13 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/ap_south_2/aws-ec2-ipam.json | 148 - .../ap_south_2/aws-ec2-networkaclentry.json | 114 - .../providers/ap_south_2/aws-ec2-subnet.json | 182 + .../ap_south_2/aws-ec2-vpnconnection.json | 132 + .../ap_south_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ap_south_2/aws-glue-database.json | 117 - .../providers/ap_south_2/aws-kms-alias.json | 56 - .../ap_south_2/aws-kms-replicakey.json | 131 - .../aws-securityhub-automationrule.json | 726 + .../providers/ap_southeast_1/__init__.py | 13 +- .../aws-apigatewayv2-integration.json | 197 + .../ap_southeast_1/aws-bedrock-flow.json | 1022 ++ .../ap_southeast_1/aws-bedrock-flowalias.json | 158 + .../aws-bedrock-flowversion.json | 896 ++ .../aws-bedrock-promptversion.json | 296 + .../ap_southeast_1/aws-codebuild-fleet.json | 159 - ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../aws-opensearchservice-domain.json | 538 + .../ap_southeast_1/aws-sagemaker-domain.json | 849 ++ .../aws-sagemaker-userprofile.json | 615 + .../ap_southeast_1/aws-ses-receiptrule.json | 219 - .../providers/ap_southeast_2/__init__.py | 13 +- .../aws-apigatewayv2-integration.json | 197 + .../ap_southeast_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../aws-iotevents-alarmmodel.json | 508 + .../aws-iotevents-detectormodel.json | 654 + .../ap_southeast_2/aws-iotevents-input.json | 138 + .../ap_southeast_2/aws-kms-replicakey.json | 131 - .../ap_southeast_2/aws-msk-replicator.json | 349 - .../aws-opensearchservice-domain.json | 538 + .../aws-securityhub-automationrule.json | 726 + .../ap_southeast_2/aws-ses-receiptrule.json | 219 - .../providers/ap_southeast_3/__init__.py | 30 +- .../aws-apigatewayv2-integration.json | 187 + .../aws-ec2-customergateway.json | 119 + .../aws-ec2-internetgateway.json} | 58 +- .../ap_southeast_3/aws-ec2-ipam.json | 148 - .../aws-ec2-networkaclentry.json | 114 - .../ap_southeast_3/aws-ec2-securitygroup.json | 239 - .../ap_southeast_3/aws-ec2-subnet.json | 182 + .../ap_southeast_3/aws-ec2-vpnconnection.json | 132 + .../ap_southeast_3/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ap_southeast_3/aws-kms-replicakey.json | 131 - .../aws-neptune-dbclusterparametergroup.json | 66 + .../aws-neptune-dbparametergroup.json | 66 + .../aws-opensearchservice-domain.json | 538 + .../aws-quicksight-analysis.json | 11272 +++++++++++++++ .../aws-quicksight-dashboard.json | 11510 ++++++++++++++++ .../aws-quicksight-template.json | 11239 +++++++++++++++ .../ap_southeast_3/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../ap_southeast_3/aws-ses-receiptrule.json | 219 - .../providers/ap_southeast_4/__init__.py | 16 +- .../aws-apigatewayv2-integration.json | 187 + .../aws-ec2-internetgateway.json | 84 + .../ap_southeast_4/aws-ec2-ipam.json | 148 - .../aws-ec2-networkaclentry.json | 114 - .../ap_southeast_4/aws-ec2-subnet.json | 182 + .../ap_southeast_4/aws-ec2-vpnconnection.json | 132 + .../ap_southeast_4/aws-ec2-vpngateway.json | 96 + .../ap_southeast_4/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ap_southeast_4/aws-glue-database.json | 117 - .../ap_southeast_4/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../ap_southeast_4/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../providers/ap_southeast_5/__init__.py | 584 + .../aws-apigateway-account.json | 18 + .../ap_southeast_5/aws-apigateway-apikey.json | 82 + .../aws-apigateway-authorizer.json | 63 + .../aws-apigateway-basepathmapping.json | 34 + .../aws-apigateway-clientcertificate.json} | 5 +- .../aws-apigateway-deployment.json | 219 + .../aws-apigateway-documentationpart.json | 56 + .../aws-apigateway-documentationversion.json | 32 + .../aws-apigateway-domainname.json | 90 + .../aws-apigateway-gatewayresponse.json | 71 + .../ap_southeast_5/aws-apigateway-method.json | 207 + .../ap_southeast_5/aws-apigateway-model.json | 42 + .../aws-apigateway-requestvalidator.json | 34 + .../aws-apigateway-resource.json | 34 + .../aws-apigateway-restapi.json | 145 + .../ap_southeast_5/aws-apigateway-stage.json | 167 + .../aws-apigateway-usageplan.json | 106 + .../aws-apigateway-usageplankey.json | 37 + ...applicationautoscaling-scalabletarget.json | 113 + ...-applicationautoscaling-scalingpolicy.json | 306 + .../aws-autoscaling-launchconfiguration.json | 191 + .../aws-autoscaling-lifecyclehook.json | 55 + .../aws-autoscaling-scalingpolicy.json | 403 + .../aws-autoscaling-scheduledaction.json | 45 + .../aws-batch-jobdefinition.json | 1091 ++ .../aws-cloudformation-stack.json | 71 + .../aws-cloudformation-waitcondition.json | 32 + .../aws-codedeploy-application.json | 55 + .../aws-codedeploy-deploymentconfig.json | 105 + .../aws-codepipeline-customactiontype.json | 153 + .../aws-codepipeline-pipeline.json | 505 + .../ap_southeast_5/aws-config-configrule.json | 178 + .../aws-datapipeline-pipeline.json | 172 + .../aws-directoryservice-microsoftad.json | 88 + .../aws-directoryservice-simplead.json | 93 + .../aws-ec2-customergateway.json | 119 + .../providers/ap_southeast_5/aws-ec2-eip.json | 64 + .../ap_southeast_5/aws-ec2-host.json | 39 + .../ap_southeast_5/aws-ec2-instance.json | 562 + .../aws-ec2-internetgateway.json | 84 + .../aws-ec2-networkinterfacepermission.json | 38 + .../aws-ec2-placementgroup.json | 26 + .../ap_southeast_5/aws-ec2-route.json | 61 + .../aws-ec2-securitygroup.json | 63 +- .../aws-ec2-securitygroupegress.json | 60 + .../aws-ec2-securitygroupingress.json | 79 + .../ap_southeast_5/aws-ec2-subnet.json | 182 + .../aws-ec2-subnetcidrblock.json | 29 + .../aws-ec2-subnetnetworkaclassociation.json | 33 + .../ap_southeast_5/aws-ec2-volume.json | 76 + .../aws-ec2-volumeattachment.json | 34 + .../providers/ap_southeast_5/aws-ec2-vpc.json | 96 + .../ap_southeast_5/aws-ec2-vpccidrblock.json | 56 + .../ap_southeast_5/aws-ec2-vpcendpoint.json | 66 + ...ec2-vpcendpointconnectionnotification.json | 39 + .../aws-ec2-vpcendpointservice.json | 38 + ...aws-ec2-vpcendpointservicepermissions.json | 31 + .../aws-ec2-vpcgatewayattachment.json | 28 + .../ap_southeast_5/aws-ec2-vpnconnection.json | 132 + .../aws-ec2-vpngatewayroutepropagation.json | 52 + .../ap_southeast_5/aws-ecr-repository.json | 212 + .../ap_southeast_5/aws-ecs-service.json | 625 + .../ap_southeast_5/aws-efs-filesystem.json | 99 + .../ap_southeast_5/aws-efs-mounttarget.json | 43 + .../aws-elasticache-parametergroup.json | 61 + .../aws-elasticache-subnetgroup.json | 60 + .../aws-elasticbeanstalk-application.json | 83 + ...s-elasticbeanstalk-applicationversion.json | 50 + ...lasticbeanstalk-configurationtemplate.json | 90 + .../aws-elasticbeanstalk-environment.json | 127 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + ...ws-elasticloadbalancingv2-targetgroup.json | 234 + .../aws-emr-securityconfiguration.json | 32 + .../ap_southeast_5/aws-emr-step.json | 82 + .../ap_southeast_5/aws-gamelift-alias.json | 48 + .../ap_southeast_5/aws-gamelift-build.json | 56 + .../ap_southeast_5/aws-gamelift-fleet.json | 195 + .../ap_southeast_5/aws-iam-accesskey.json | 39 + .../ap_southeast_5/aws-iot-certificate.json | 32 + .../ap_southeast_5/aws-iot-policy.json | 36 + .../aws-iot-policyprincipalattachment.json | 29 + .../ap_southeast_5/aws-iot-thing.json | 40 + .../aws-iot-thingprincipalattachment.json | 29 + .../ap_southeast_5/aws-iot-topicrule.json | 617 + .../aws-kinesis-streamconsumer.json | 72 + .../aws-lambda-alias.json | 0 .../aws-lambda-eventinvokeconfig.json | 127 + .../aws-lambda-layerversion.json | 115 + .../ap_southeast_5/aws-lambda-version.json | 135 + .../aws-opensearchservice-domain.json | 538 + .../ap_southeast_5/aws-opsworks-instance.json | 246 + .../ap_southeast_5/aws-opsworks-layer.json | 265 + .../ap_southeast_5/aws-opsworks-stack.json | 234 + .../aws-route53-healthcheck.json | 127 + .../aws-route53-hostedzone.json | 108 + .../ap_southeast_5/aws-s3-accesspoint.json | 147 + .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-secretsmanager-secret.json | 116 + ...secretsmanager-secrettargetattachment.json | 29 + .../ap_southeast_5/aws-sns-topic.json | 84 + .../ap_southeast_5/aws-sns-topicpolicy.json | 33 + .../ap_southeast_5/aws-sqs-queuepolicy.json | 57 + .../ap_southeast_5/aws-waf-ipset.json | 49 + .../ap_southeast_5/aws-waf-rule.json | 67 + .../aws-waf-sizeconstraintset.json | 73 + .../ap_southeast_5/aws-waf-webacl.json | 73 + .../ap_southeast_5/aws-waf-xssmatchset.json | 65 + .../providers/ca_central_1/__init__.py | 13 +- .../aws-apigatewayv2-integration.json | 197 + .../providers/ca_central_1/aws-ec2-ipam.json | 148 - .../ca_central_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ca_central_1/aws-glue-database.json | 117 - .../ca_central_1/aws-kms-replicakey.json | 131 - .../ca_central_1/aws-location-apikey.json | 226 - .../ca_central_1/aws-msk-replicator.json | 349 - .../aws-opensearchservice-domain.json | 538 + .../aws-securityhub-automationrule.json | 726 + .../ca_central_1/aws-ses-receiptrule.json | 219 - .../schemas/providers/ca_west_1/__init__.py | 16 +- .../aws-apigatewayv2-integration.json | 187 + .../ca_west_1/aws-ec2-customergateway.json | 119 + .../ca_west_1/aws-ec2-internetgateway.json | 84 + .../providers/ca_west_1/aws-ec2-ipam.json | 148 - .../ca_west_1/aws-ec2-networkaclentry.json | 114 - .../providers/ca_west_1/aws-ec2-subnet.json | 182 + .../ca_west_1/aws-ec2-vpnconnection.json | 132 + .../ca_west_1/aws-ec2-vpngateway.json | 96 + .../ca_west_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../ca_west_1/aws-glue-database.json | 117 - .../providers/ca_west_1/aws-glue-trigger.json | 172 - .../ca_west_1/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/cn_north_1/__init__.py | 6 +- .../aws-apigatewayv2-integration.json | 99 - .../aws-batch-computeenvironment.json | 300 + .../cn_north_1/aws-ec2-networkaclentry.json | 114 - .../cn_north_1/aws-glue-database.json | 117 - .../aws-synthetics-canary.json | 26 + .../providers/cn_northwest_1/__init__.py | 18 +- .../aws-apigatewayv2-integration.json | 99 - .../aws-ec2-internetgateway.json | 84 + .../aws-ec2-networkaclentry.json | 114 - .../cn_northwest_1/aws-ec2-securitygroup.json | 239 - .../cn_northwest_1/aws-ec2-subnet.json | 182 + .../cn_northwest_1/aws-ec2-vpngateway.json | 96 + .../cn_northwest_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../cn_northwest_1/aws-glue-database.json | 117 - .../cn_northwest_1/aws-glue-trigger.json | 172 - .../aws-opensearchservice-domain.json | 538 + .../cn_northwest_1/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../aws-synthetics-canary.json | 26 + .../providers/eu_central_1/__init__.py | 31 +- .../aws-amazonmq-configuration.json} | 87 +- .../aws-apigatewayv2-integration.json | 197 + .../aws-backup-restoretestingplan.json | 180 + .../aws-batch-computeenvironment.json | 300 + .../eu_central_1/aws-bedrock-flow.json | 1022 ++ .../eu_central_1/aws-bedrock-flowalias.json | 158 + .../eu_central_1/aws-bedrock-flowversion.json | 896 ++ .../aws-bedrock-promptversion.json | 296 + .../eu_central_1/aws-codebuild-fleet.json | 159 - .../eu_central_1/aws-ec2-networkaclentry.json | 114 - .../aws-eks-podidentityassociation.json | 134 + .../eu_central_1/aws-location-apikey.json | 226 - .../aws-medialive-channelplacementgroup.json | 135 + ...aws-medialive-cloudwatchalarmtemplate.json | 212 + ...edialive-cloudwatchalarmtemplategroup.json | 112 + .../eu_central_1/aws-medialive-cluster.json | 178 + ...aws-medialive-eventbridgeruletemplate.json | 169 + ...edialive-eventbridgeruletemplategroup.json | 112 + .../eu_central_1/aws-medialive-network.json | 151 + .../eu_central_1/aws-medialive-sdisource.json | 130 + .../eu_central_1/aws-medialive-signalmap.json | 400 + .../aws-mediapackagev2-channel.json | 169 + .../aws-mediapackagev2-channelgroup.json | 117 + .../aws-mediapackagev2-originendpoint.json | 658 + .../eu_central_1/aws-msk-replicator.json | 373 - .../eu_central_1/aws-ses-receiptrule.json | 219 - .../providers/eu_central_2/__init__.py | 34 +- .../aws-apigatewayv2-integration.json | 187 + .../eu_central_2/aws-ec2-customergateway.json | 119 + .../eu_central_2/aws-ec2-internetgateway.json | 84 + .../providers/eu_central_2/aws-ec2-ipam.json | 148 - .../eu_central_2/aws-ec2-networkaclentry.json | 114 - .../eu_central_2/aws-ec2-securitygroup.json | 239 - .../eu_central_2/aws-ec2-subnet.json | 182 + .../eu_central_2/aws-ec2-vpnconnection.json | 132 + .../eu_central_2/aws-ec2-vpngateway.json | 96 + .../eu_central_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_central_2/aws-glue-database.json | 117 - .../eu_central_2/aws-glue-trigger.json | 172 - .../providers/eu_central_2/aws-kms-alias.json | 56 - .../eu_central_2/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../eu_central_2/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/eu_north_1/__init__.py | 20 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/eu_north_1/aws-ec2-subnet.json | 182 + .../eu_north_1/aws-ec2-vpnconnection.json | 132 + .../eu_north_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_north_1/aws-glue-database.json | 117 - .../eu_north_1/aws-kms-replicakey.json | 131 - .../eu_north_1/aws-location-apikey.json | 226 - .../eu_north_1/aws-msk-replicator.json | 349 - .../eu_north_1/aws-sagemaker-domain.json | 849 ++ .../eu_north_1/aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/eu_south_1/__init__.py | 21 +- .../aws-apigatewayv2-integration.json | 187 + .../eu_south_1/aws-ec2-customergateway.json | 119 + .../eu_south_1/aws-ec2-internetgateway.json | 84 + .../providers/eu_south_1/aws-ec2-ipam.json | 148 - .../eu_south_1/aws-ec2-networkaclentry.json | 114 - .../providers/eu_south_1/aws-ec2-subnet.json | 182 + .../eu_south_1/aws-ec2-vpnconnection.json | 132 + .../eu_south_1/aws-ec2-vpngateway.json | 96 + .../eu_south_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_south_1/aws-glue-database.json | 117 - .../eu_south_1/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../eu_south_1/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/eu_south_2/__init__.py | 36 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/eu_south_2/aws-ec2-ipam.json | 148 - .../eu_south_2/aws-ec2-networkaclentry.json | 114 - .../providers/eu_south_2/aws-ec2-subnet.json | 182 + .../eu_south_2/aws-ec2-vpnconnection.json | 132 + .../eu_south_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_south_2/aws-glue-database.json | 117 - .../eu_south_2/aws-kms-replicakey.json | 131 - .../aws-neptune-dbclusterparametergroup.json | 66 + .../aws-neptune-dbparametergroup.json | 66 + .../eu_south_2/aws-sagemaker-domain.json | 849 ++ .../eu_south_2/aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/eu_west_1/__init__.py | 15 +- .../aws-apigatewayv2-integration.json | 197 + .../providers/eu_west_1/aws-bedrock-flow.json | 1022 ++ .../eu_west_1/aws-bedrock-flowalias.json | 158 + .../eu_west_1/aws-bedrock-flowversion.json | 896 ++ .../eu_west_1/aws-bedrock-promptversion.json | 296 + .../eu_west_1/aws-codebuild-fleet.json | 159 - .../providers/eu_west_1/aws-ec2-ipam.json | 148 - .../eu_west_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_west_1/aws-glue-database.json | 117 - .../eu_west_1/aws-kms-replicakey.json | 131 - .../eu_west_1/aws-msk-replicator.json | 373 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/eu_west_2/__init__.py | 16 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/eu_west_2/aws-ec2-ipam.json | 148 - .../eu_west_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_west_2/aws-glue-database.json | 117 - .../eu_west_2/aws-kms-replicakey.json | 131 - .../eu_west_2/aws-location-apikey.json | 226 - .../eu_west_2/aws-msk-replicator.json | 349 - .../eu_west_2/aws-omics-referencestore.json | 128 - .../eu_west_2/aws-omics-sequencestore.json | 134 - .../eu_west_2/aws-sagemaker-domain.json | 849 ++ .../eu_west_2/aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../eu_west_2/aws-ses-receiptrule.json | 219 - .../schemas/providers/eu_west_3/__init__.py | 23 +- .../aws-apigatewayv2-integration.json | 187 + .../eu_west_3/aws-ec2-internetgateway.json | 84 + .../providers/eu_west_3/aws-ec2-ipam.json | 148 - .../eu_west_3/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../eu_west_3/aws-glue-database.json | 117 - .../eu_west_3/aws-kms-replicakey.json | 131 - .../eu_west_3/aws-msk-replicator.json | 349 - .../aws-opensearchservice-domain.json | 538 + .../aws-quicksight-dataset.json | 5 +- .../aws-quicksight-datasource.json | 4 +- .../eu_west_3/aws-rds-globalcluster.json | 99 - .../eu_west_3/aws-sagemaker-domain.json | 849 ++ .../eu_west_3/aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../providers/il_central_1/__init__.py | 24 +- .../aws-apigatewayv2-integration.json | 187 + .../il_central_1/aws-ec2-customergateway.json | 119 + .../il_central_1/aws-ec2-internetgateway.json | 84 + .../providers/il_central_1/aws-ec2-ipam.json | 148 - .../il_central_1/aws-ec2-networkaclentry.json | 114 - .../il_central_1/aws-ec2-securitygroup.json | 239 - .../il_central_1/aws-ec2-subnet.json | 182 + .../il_central_1/aws-ec2-vpnconnection.json | 132 + .../il_central_1/aws-ec2-vpngateway.json | 96 + .../il_central_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../il_central_1/aws-glue-database.json | 117 - .../il_central_1/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../il_central_1/aws-rds-globalcluster.json | 99 - .../il_central_1/aws-sagemaker-domain.json | 849 ++ .../aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../providers/me_central_1/__init__.py | 15 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/me_central_1/aws-ec2-ipam.json | 148 - .../me_central_1/aws-ec2-networkaclentry.json | 114 - .../me_central_1/aws-ec2-vpnconnection.json | 132 + .../me_central_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../providers/me_central_1/aws-kms-alias.json | 56 - .../me_central_1/aws-kms-replicakey.json | 131 - .../me_central_1/aws-rds-globalcluster.json | 99 - .../me_central_1/aws-sagemaker-domain.json | 849 ++ .../aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/me_south_1/__init__.py | 20 +- .../aws-apigatewayv2-integration.json | 187 + .../me_south_1/aws-ec2-internetgateway.json | 84 + .../providers/me_south_1/aws-ec2-ipam.json | 148 - .../me_south_1/aws-ec2-networkaclentry.json | 114 - .../providers/me_south_1/aws-ec2-subnet.json | 182 + .../me_south_1/aws-ec2-vpnconnection.json | 132 + .../me_south_1/aws-ec2-vpngateway.json | 96 + .../me_south_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../me_south_1/aws-glue-database.json | 117 - .../me_south_1/aws-kms-replicakey.json | 131 - .../aws-opensearchservice-domain.json | 538 + .../me_south_1/aws-rds-globalcluster.json | 99 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/sa_east_1/__init__.py | 17 +- .../aws-apigatewayv2-integration.json | 197 + .../sa_east_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../sa_east_1/aws-kms-replicakey.json | 131 - .../sa_east_1/aws-location-apikey.json | 226 - .../sa_east_1/aws-msk-replicator.json | 349 - .../sa_east_1/aws-sagemaker-domain.json | 849 ++ .../sa_east_1/aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/us_east_1/__init__.py | 1 + .../aws-apigatewayv2-integration.json | 115 +- .../aws-appintegrations-application.json | 1 + ...cleanrooms-configuredtableassociation.json | 1 + .../us_east_1/aws-codebuild-fleet.json | 8 +- .../us_east_1/aws-ec2-customergateway.json | 7 +- .../us_east_1/aws-ec2-internetgateway.json | 4 + .../us_east_1/aws-ec2-networkaclentry.json | 7 +- .../us_east_1/aws-ec2-prefixlist.json | 5 + .../providers/us_east_1/aws-ec2-subnet.json | 3 +- .../us_east_1/aws-ec2-vpnconnection.json | 36 +- .../us_east_1/aws-ec2-vpngateway.json | 7 +- .../us_east_1/aws-ecr-repository.json | 7 +- .../us_east_1/aws-ecs-taskdefinition.json | 22 + ...s-elasticloadbalancingv2-loadbalancer.json | 5 + ...aws-entityresolution-matchingworkflow.json | 38 +- .../aws-entityresolution-schemamapping.json | 2 +- .../us_east_1/aws-iotfleetwise-campaign.json | 35 + .../aws-iotfleetwise-decodermanifest.json | 6 + .../aws-location-geofencecollection.json | 4 +- .../us_east_1/aws-medialive-input.json | 49 + .../us_east_1/aws-msk-replicator.json | 20 + .../us_east_1/aws-omics-referencestore.json | 3 +- .../us_east_1/aws-omics-sequencestore.json | 3 +- .../aws-opensearchservice-domain.json | 27 +- .../providers/us_east_1/aws-pipes-pipe.json | 18 +- .../us_east_1/aws-qbusiness-application.json | 96 +- .../aws-qbusiness-webexperience.json | 70 + .../us_east_1/aws-quicksight-analysis.json | 62 + .../us_east_1/aws-quicksight-dashboard.json | 62 + .../us_east_1/aws-quicksight-dataset.json | 5 +- .../us_east_1/aws-quicksight-datasource.json | 4 +- .../us_east_1/aws-quicksight-template.json | 59 + .../us_east_1/aws-sagemaker-domain.json | 3 +- .../us_east_1/aws-sagemaker-userprofile.json | 3 +- .../aws-securityhub-automationrule.json | 7 + .../us_east_1/aws-ses-receiptrule.json | 11 +- ...ws-ssmquicksetup-configurationmanager.json | 324 + .../us_east_1/aws-synthetics-canary.json | 26 - .../us_east_1/aws-synthetics-group.json | 2 +- .../schemas/providers/us_east_2/__init__.py | 11 +- .../providers/us_east_2/aws-ec2-ipam.json | 148 - .../us_east_2/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../us_east_2/aws-glue-database.json | 117 - .../us_east_2/aws-kms-replicakey.json | 131 - .../us_east_2/aws-msk-replicator.json | 349 - .../aws-opensearchservice-domain.json | 538 + .../aws-securityhub-automationrule.json | 726 + .../us_east_2/aws-ses-receiptrule.json | 219 - .../providers/us_gov_east_1/__init__.py | 17 +- .../aws-apigatewayv2-integration.json | 99 - .../providers/us_gov_east_1/aws-ec2-ipam.json | 148 - .../us_gov_east_1/aws-ec2-subnet.json | 182 + .../us_gov_east_1/aws-ec2-vpnconnection.json | 132 + .../us_gov_east_1/aws-ec2-vpngateway.json | 96 + .../us_gov_east_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../us_gov_east_1/aws-kms-replicakey.json | 131 - .../us_gov_east_1/aws-sagemaker-domain.json | 849 ++ .../aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../us_gov_east_1/aws-synthetics-canary.json | 382 + .../aws-synthetics-group.json | 3 + .../providers/us_gov_west_1/__init__.py | 28 +- .../aws-apigatewayv2-integration.json | 99 - .../aws-cognito-logdeliveryconfiguration.json | 118 - .../us_gov_west_1/aws-cognito-userpool.json | 529 - .../providers/us_gov_west_1/aws-ec2-ipam.json | 148 - .../aws-ec2-networkaclentry.json | 87 - .../us_gov_west_1/aws-ec2-securitygroup.json | 239 - .../us_gov_west_1/aws-ec2-subnet.json | 182 + .../us_gov_west_1/aws-ec2-vpnconnection.json | 132 + .../us_gov_west_1/aws-ec2-vpngateway.json | 96 + .../us_gov_west_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../us_gov_west_1/aws-kms-replicakey.json | 131 - .../us_gov_west_1/aws-lambda-alias.json | 88 - .../us_gov_west_1/aws-redshift-cluster.json | 330 - .../aws-redshift-clustersubnetgroup.json | 158 - .../aws-redshift-eventsubscription.json | 181 - .../aws-redshift-scheduledaction.json | 188 - .../us_gov_west_1/aws-sagemaker-domain.json | 849 ++ .../aws-sagemaker-userprofile.json | 615 + .../aws-securityhub-automationrule.json | 726 + .../us_gov_west_1/aws-synthetics-canary.json | 382 + .../aws-synthetics-group.json | 2 +- .../schemas/providers/us_west_1/__init__.py | 16 +- .../aws-apigatewayv2-integration.json | 187 + .../providers/us_west_1/aws-ec2-ipam.json | 148 - .../us_west_1/aws-ecr-repository.json | 212 + ...s-elasticloadbalancingv2-loadbalancer.json | 201 + .../us_west_1/aws-glue-database.json | 117 - .../us_west_1/aws-kms-replicakey.json | 131 - .../us_west_1/aws-msk-replicator.json | 349 - .../aws-securityhub-automationrule.json | 726 + .../schemas/providers/us_west_2/__init__.py | 24 +- .../aws-apigatewayv2-integration.json | 197 + .../us_west_2/aws-apigatewayv2-vpclink.json | 102 - .../aws-batch-computeenvironment.json | 300 + .../providers/us_west_2/aws-bedrock-flow.json | 1022 ++ .../us_west_2/aws-bedrock-flowalias.json | 158 + .../us_west_2/aws-bedrock-flowversion.json | 896 ++ .../us_west_2/aws-bedrock-promptversion.json | 296 + .../us_west_2/aws-codebuild-fleet.json | 159 - .../us_west_2/aws-iotevents-alarmmodel.json | 508 + .../aws-iotevents-detectormodel.json | 654 + .../us_west_2/aws-iotevents-input.json | 138 + .../aws-location-geofencecollection.json | 168 - .../us_west_2/aws-mediapackagev2-channel.json | 169 + .../aws-mediapackagev2-channelgroup.json | 117 + .../aws-mediapackagev2-originendpoint.json | 658 + .../us_west_2/aws-msk-replicator.json | 373 - .../us_west_2/aws-omics-referencestore.json | 128 - .../us_west_2/aws-omics-sequencestore.json | 134 - .../us_west_2/aws-sagemaker-domain.json | 849 ++ .../us_west_2/aws-sagemaker-userprofile.json | 615 + src/cfnlint/helpers.py | 5 + 665 files changed, 141603 insertions(+), 28733 deletions(-) create mode 100644 src/cfnlint/data/DownloadsMetadata/49ed0265aaab90ce485c07e02ea671e5aa3b299156f53fa9d1fd8eeabec5a268.meta.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-customergateway.json rename src/cfnlint/data/schemas/providers/{ap_northeast_2/aws-ivs-stage.json => af_south_1/aws-ec2-internetgateway.json} (52%) delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ecr-repository.json rename src/cfnlint/data/schemas/providers/{cn_north_1 => af_south_1}/aws-elasticloadbalancingv2-loadbalancer.json (96%) delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ecr-repository.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_east_1}/aws-elasticloadbalancingv2-loadbalancer.json (96%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flow.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowalias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowversion.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-promptversion.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codebuild-fleet.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channelgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-originendpoint.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-customergateway.json rename src/cfnlint/data/schemas/providers/{ap_south_1/aws-ivs-stage.json => ap_northeast_2/aws-ec2-internetgateway.json} (52%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecr-repository.json rename src/cfnlint/data/schemas/providers/{us_west_2 => ap_northeast_2}/aws-elasticloadbalancingv2-loadbalancer.json (96%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-redshiftserverless-workgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flow.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowalias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowversion.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-promptversion.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-elasticloadbalancingv2-loadbalancer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-elasticloadbalancingv2-loadbalancer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-alarmmodel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-detectormodel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-input.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-securityhub-automationrule.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-customergateway.json rename src/cfnlint/data/schemas/providers/{ap_northeast_2/aws-ivs-playbackkeypair.json => ap_southeast_3/aws-ec2-internetgateway.json} (50%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-networkaclentry.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbclusterparametergroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbparametergroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-analysis.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-dashboard.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-template.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-securityhub-automationrule.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-account.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-authorizer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-basepathmapping.json rename src/cfnlint/data/schemas/providers/{us_gov_east_1/aws-ec2-internetgateway.json => ap_southeast_5/aws-apigateway-clientcertificate.json} (85%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-deployment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationpart.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationversion.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-domainname.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-gatewayresponse.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-method.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-requestvalidator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-resource.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-restapi.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-stage.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplan.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplankey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalabletarget.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalingpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-launchconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-lifecyclehook.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scalingpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scheduledaction.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-stack.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-waitcondition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-customactiontype.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-pipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-config-configrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-datapipeline-pipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-microsoftad.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-simplead.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-eip.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-internetgateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-networkinterfacepermission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-placementgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-route.json rename src/cfnlint/data/schemas/providers/{ca_west_1 => ap_southeast_5}/aws-ec2-securitygroup.json (53%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupegress.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupingress.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetnetworkaclassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volume.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volumeattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpc.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpoint.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointconnectionnotification.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservice.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservicepermissions.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcgatewayattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpngatewayroutepropagation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecr-repository.json 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-efs-filesystem.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-efs-mounttarget.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-parametergroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-subnetgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-applicationversion.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-configurationtemplate.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-environment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-loadbalancer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-targetgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-securityconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-step.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-alias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-build.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-fleet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-accesskey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-certificate.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policyprincipalattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thing.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thingprincipalattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-topicrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-streamconsumer.json rename src/cfnlint/data/schemas/providers/{us_gov_east_1 => ap_southeast_5}/aws-lambda-alias.json (100%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-eventinvokeconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-layerversion.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-version.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-instance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-layer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-stack.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-healthcheck.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-hostedzone.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-s3-accesspoint.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-resourcepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secret.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secrettargetattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topic.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topicpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sqs-queuepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-ipset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-rule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-sizeconstraintset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-webacl.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-xssmatchset.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-securityhub-automationrule.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-securityhub-automationrule.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-computeenvironment.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-networkaclentry.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json rename src/cfnlint/data/schemas/providers/{us_west_2 => cn_north_1}/aws-synthetics-canary.json (90%) delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-networkaclentry.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-automationrule.json rename src/cfnlint/data/schemas/providers/{ap_northeast_2 => cn_northwest_1}/aws-synthetics-canary.json (90%) rename src/cfnlint/data/schemas/providers/{ap_south_1/aws-ivs-playbackkeypair.json => eu_central_1/aws-amazonmq-configuration.json} (50%) create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-backup-restoretestingplan.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-computeenvironment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-podidentityassociation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-channelplacementgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplate.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplategroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplate.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplategroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-network.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-sdisource.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-signalmap.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channel.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channelgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-originendpoint.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-msk-replicator.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkaclentry.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-trigger.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbclusterparametergroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbparametergroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flow.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowalias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowversion.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-promptversion.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-codebuild-fleet.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-msk-replicator.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-referencestore.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-sequencestore.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-securityhub-automationrule.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ses-receiptrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-opensearchservice-domain.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => eu_west_3}/aws-quicksight-dataset.json (99%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => eu_west_3}/aws-quicksight-datasource.json (99%) delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-networkaclentry.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-internetgateway.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-networkaclentry.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-opensearchservice-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-ssmquicksetup-configurationmanager.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-opensearchservice-domain.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-securityhub-automationrule.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ses-receiptrule.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-kms-replicakey.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-canary.json rename src/cfnlint/data/schemas/providers/{me_central_1 => us_gov_east_1}/aws-synthetics-group.json (98%) delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-logdeliveryconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpool.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-networkaclentry.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpnconnection.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpngateway.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-clustersubnetgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-eventsubscription.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-scheduledaction.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-canary.json rename src/cfnlint/data/schemas/providers/{ap_northeast_2 => us_gov_west_1}/aws-synthetics-group.json (97%) create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ecr-repository.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-elasticloadbalancingv2-loadbalancer.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-kms-replicakey.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-automationrule.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-vpclink.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-batch-computeenvironment.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flow.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowalias.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowversion.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-promptversion.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-codebuild-fleet.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-alarmmodel.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-detectormodel.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-input.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-location-geofencecollection.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channel.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channelgroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-originendpoint.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-msk-replicator.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-omics-referencestore.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-omics-sequencestore.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-userprofile.json diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index 5b5eee7fb8..1adce5efdc 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"7c0b9c6f511036e991d7e40f85391411\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"20cfb66c1ca1da796cef898a4efa20a3\"", "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 864a9b6332..557e402918 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"e4d1f70dd22872888b320e36f34df947\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"d0e230daace723c25654cd00cd19cfdf\"", "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 cffc2ef6d9..0e54f3836f 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"4879fd3de9f6bee2465d0eb4e3a6c813\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"dce80ee4c28b677f6e3933a181676b81\"", "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 9b0493eb78..7479a2c891 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"ada62c0c49d0cb4a8d6ef0b9c27c7104\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b9f1ae98d2b7d5d2c02e00fbee736a2e\"", "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 6f72df94a3..0876fc5391 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"447687aaeadf9edf586a863e4c49afad\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"6646f2b1aa5c72ccebe90bac624aa69d\"", "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 218afb1f52..734f4487a6 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"f74ae18f25b1f025e975319955569e26\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0c08142f4e08488353394a615a51a99f\"", "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 a4506a2157..b9d2a846a3 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"cb72aa4864919b7dbc40c3379b69e317\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0f12bf603c4800ae16c18a3ea8b1c1ad\"", "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 fe791456a7..10f83c4463 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"c9cb9478d36742ec912394296a4d2095\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"0d9afd59bf04cbde0e2e87a7d19ce413\"", "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 04be8c1fc5..63a97fe46d 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"00bd6b3f2042a03b83ccfa0f1efef573\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"51883e1fd6d952caa1c68579f3181f78\"", "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 5f000345ca..831d92038f 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"e8f6a5fd77e9a94a23f4d1f00472c06c\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"899a4badd3d8440a6d654b86028d982b\"", "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 new file mode 100644 index 0000000000..b0a0cb8a5f --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/49ed0265aaab90ce485c07e02ea671e5aa3b299156f53fa9d1fd8eeabec5a268.meta.json @@ -0,0 +1 @@ +{"etag": "\"4982ab81e335b913ed62c8ee9bc37848\"", "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 784e4c929d..e9c7383a48 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"dd0c5ad34a89c1f79a0d1dd42beb4fc7\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2f613ec40e5f4a92a7f7f7fc8dcae3b5\"", "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 5d305a948f..568d2901b9 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"98ee7de715eaabfc83c390c8e61706d5\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"96ff47d525317a096e3e4bb11caa94a7\"", "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 112aa7b17c..c22d1fd164 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"4c0dd5f4dd070e00881cc8e578bb64c4\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5cd19c34c7f9012da6c9ab97da7156d8\"", "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 2589f07001..c05b11fd4c 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"4771fdc9cdcb9069be4c611c08ffb80b\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f4354610e92cc770c7f34252306e740f\"", "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 9766b21dbb..4dc5169a7a 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"9f9e0eec63180e935ced8e4e10bd27a7\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7b4980320a59871f7ebb338fc5d2c9d3\"", "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 0af1f8b3d9..d338f6bcee 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"ec231c86e3a63c803e427d1b96977854\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"15d5cde75e3e87b63f16e2a3d3fa9432\"", "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 098281fb64..d73ad53532 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"b6208cce625cfb68610110ad10e189d5\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2db69d1fe313eef5d7b507a95bc70a4c\"", "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 c255469930..f940b26868 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"31e431d4e5d3820756b4eb459d352988\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"88f7597b5a1041b88bfbb70c559e1ad6\"", "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 b4b3b6ae54..19dc215511 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"1ad1bfb5b13b30aa88f3018b4f227f5e\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ad81b4c8f90f144df274cf71c406d473\"", "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 ec960132fc..e67768ecb4 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"04f05232bd5960f6d450e8a3e9f26a3f\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c3475310840673053add92cb5e246655\"", "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 b99748c31d..bd31a67fc4 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"ae86df8d95132b851e02fe4f22bf5f56\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"997796b0157d1a6f55302a13d9ee7c9a\"", "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 c78cea0900..6ff8486106 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"dbddb7f935546ee8440d9e517c7e741e\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"60c371355ad9791d1a5349deecd3e084\"", "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 93e2907cfa..fef46e521c 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"50a853cf312ff6ae30230be81dc43b90\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cdd016c9a576406fa8c465edd9b63378\"", "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 49a185c285..29c803d150 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"805f5d32bf293e7f046955708b4b9970\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0bc1b34e5bc3c820663959f50bb8a9df\"", "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 f6311f687c..84b19e38fd 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"51699645c067317ab0e0aa2092662fb0\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0efefc99abc9358691df799c55a6a5fe\"", "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 e4794a2a4e..d2e29744d9 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"3c65f0bd0f526c78cb0bed886ed4ff42\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2fbcc7c2e25e4c715ec5cfd52521d702\"", "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 7ceb93e384..3ceba3a507 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"48c5d8804127ccc7fd5ba47befcb9d37\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5d144f08a317f58a1ce95d89d373a085\"", "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 91c8b31663..874d0fdfe0 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"3744eb64f3aa4ddb4f9f794dd34bfaa2\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cd7597dbf51a476e980316584525f54a\"", "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 c8f54dd6d4..1d86883467 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"6f244c583eeda76ac01384b2708f5652\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"26fb44bb556d7f655b439b7211d0046f\"", "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 622a85cb16..edab651380 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"dd64ad881332f142da95140ac0d848fc\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ba96d4ce06d92ce4599318fbd3ad5422\"", "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 3f924b610f..71b317c865 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"04ad3c41185892164ab33491b21a9053\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"22477cde1d5465e11ac481f6c2bfcaa0\"", "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 ce1ab87c5d..b722d9a422 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"597d3c757bbc96b7062c933bba48d7d6\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"50552d949e4ec3c3d1d9b8b5c59de2e7\"", "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 5288aa1b02..a4d11897c3 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"19a83cc0b8e2b5fd6f58459111bf6dd8\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1752b952b381c834d5e40e07f848046c\"", "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 b6f1da3f23..472265ab3f 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -368,6 +368,7 @@ "AWS::EMR::Step", "AWS::EMR::Studio", "AWS::EMR::StudioSessionMapping", + "AWS::EMR::WALWorkspace", "AWS::EMRServerless::Application", "AWS::ElastiCache::CacheCluster", "AWS::ElastiCache::ParameterGroup", @@ -677,6 +678,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -861,7 +865,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1071,7 +1074,6 @@ "aws-ec2-clientvpnendpoint.json", "aws-ec2-clientvpnroute.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -1083,7 +1085,7 @@ "aws-ec2-host.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1098,6 +1100,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscope.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-ec2-networkinsightsanalysis.json", @@ -1114,7 +1117,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -1144,14 +1146,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1187,7 +1186,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1199,6 +1197,7 @@ "aws-emr-step.json", "aws-emr-studio.json", "aws-emr-studiosessionmapping.json", + "aws-emr-walworkspace.json", "aws-emrserverless-application.json", "aws-events-archive.json", "aws-events-eventbus.json", @@ -1226,6 +1225,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1283,6 +1283,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1366,7 +1367,6 @@ "aws-networkmanager-vpcattachment.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -1403,6 +1403,7 @@ "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", @@ -1485,7 +1486,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", @@ -1518,6 +1518,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-stage.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-internetgateway.json similarity index 52% rename from src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-stage.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-internetgateway.json index e8d7395467..f4b93a4397 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-stage.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-internetgateway.json @@ -11,7 +11,6 @@ }, "Value": { "maxLength": 256, - "minLength": 1, "type": "string" } }, @@ -25,60 +24,40 @@ "handlers": { "create": { "permissions": [ - "ivs:CreateStage", - "ivs:GetStage", - "ivs:TagResource", - "ivs:ListTagsForResource" + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" ] }, "delete": { "permissions": [ - "ivs:DeleteStage", - "ivs:UnTagResource" + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" ] }, "list": { "permissions": [ - "ivs:ListStages", - "ivs:ListTagsForResource" + "ec2:DescribeInternetGateways" ] }, "read": { "permissions": [ - "ivs:GetStage", - "ivs:ListTagsForResource" + "ec2:DescribeInternetGateways" ] }, "update": { "permissions": [ - "ivs:GetStage", - "ivs:UpdateStage", - "ivs:TagResource", - "ivs:UnTagResource", - "ivs:ListTagsForResource" + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" ] } }, "primaryIdentifier": [ - "/properties/Arn" + "/properties/InternetGatewayId" ], "properties": { - "ActiveSessionId": { - "default": "", - "maxLength": 128, - "minLength": 0, - "type": "string" - }, - "Arn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", + "InternetGatewayId": { "type": "string" }, "Tags": { @@ -87,20 +66,19 @@ "$ref": "#/definitions/Tag" }, "type": "array", - "uniqueItems": true + "uniqueItems": false } }, "readOnlyProperties": [ - "/properties/Arn", - "/properties/ActiveSessionId" + "/properties/InternetGatewayId" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, "taggable": true }, - "typeName": "AWS::IVS::Stage" + "typeName": "AWS::EC2::InternetGateway" } diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-elasticloadbalancingv2-loadbalancer.json similarity index 96% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-elasticloadbalancingv2-loadbalancer.json index f9572db062..b91b5af9ff 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -192,11 +192,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "elasticloadbalancing:AddTags", - "elasticloadbalancing:DescribeTags", - "elasticloadbalancing:RemoveTags" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 3072a49ed5..4c2d8ade67 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -838,7 +838,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1040,6 +1039,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1054,6 +1054,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscope.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-ec2-networkinsightsanalysis.json", @@ -1071,7 +1072,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -1101,14 +1101,12 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1144,7 +1142,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1183,6 +1180,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1271,6 +1269,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1342,7 +1341,6 @@ "aws-networkmanager-transitgatewayregistration.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -1462,7 +1460,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-elasticloadbalancingv2-loadbalancer.json similarity index 96% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-elasticloadbalancingv2-loadbalancer.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-elasticloadbalancingv2-loadbalancer.json index f9572db062..b91b5af9ff 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-elasticloadbalancingv2-loadbalancer.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -192,11 +192,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "elasticloadbalancing:AddTags", - "elasticloadbalancing:DescribeTags", - "elasticloadbalancing:RemoveTags" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 40c4f7bff4..c107b95b98 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -1059,6 +1059,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1272,7 +1273,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1364,14 +1364,10 @@ "aws-bedrock-agent.json", "aws-bedrock-agentalias.json", "aws-bedrock-datasource.json", - "aws-bedrock-flow.json", - "aws-bedrock-flowalias.json", - "aws-bedrock-flowversion.json", "aws-bedrock-guardrail.json", "aws-bedrock-guardrailversion.json", "aws-bedrock-knowledgebase.json", "aws-bedrock-prompt.json", - "aws-bedrock-promptversion.json", "aws-budgets-budget.json", "aws-budgets-budgetsaction.json", "aws-cassandra-keyspace.json", @@ -1436,6 +1432,7 @@ "aws-codeartifact-domain.json", "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", + "aws-codebuild-fleet.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", "aws-codebuild-sourcecredential.json", @@ -1982,6 +1979,7 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", "aws-location-apikey.json", + "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", "aws-location-routecalculator.json", @@ -2032,10 +2030,7 @@ "aws-mediapackage-originendpoint.json", "aws-mediapackage-packagingconfiguration.json", "aws-mediapackage-packaginggroup.json", - "aws-mediapackagev2-channel.json", - "aws-mediapackagev2-channelgroup.json", "aws-mediapackagev2-channelpolicy.json", - "aws-mediapackagev2-originendpoint.json", "aws-mediapackagev2-originendpointpolicy.json", "aws-mediastore-container.json", "aws-mediatailor-channel.json", @@ -2052,6 +2047,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -2240,7 +2236,6 @@ "aws-sagemaker-dataqualityjobdefinition.json", "aws-sagemaker-device.json", "aws-sagemaker-devicefleet.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -2263,7 +2258,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2325,6 +2319,7 @@ "aws-ses-mailmanagerruleset.json", "aws-ses-mailmanagertrafficpolicy.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2356,6 +2351,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flow.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flow.json new file mode 100644 index 0000000000..f4f72cb39c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flow.json @@ -0,0 +1,1022 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "DefinitionSubstitutions": { + "additionalProperties": false, + "maxProperties": 500, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Storage", + "Retrieval", + "Iterator", + "Collector" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "FlowValidation": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + } + }, + "required": [ + "Message" + ], + "type": "object" + }, + "FlowValidations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FlowValidation" + }, + "type": "array" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionString": { + "maxLength": 512000, + "type": "string" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Validations": { + "$ref": "#/definitions/FlowValidations" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Validations" + ], + "required": [ + "ExecutionRoleArn", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Flow", + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowalias.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowalias.json new file mode 100644 index 0000000000..e439cc9349 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowalias.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "additionalProperties": false, + "properties": { + "FlowVersion": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowAliases" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "FlowArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Id": { + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "RoutingConfiguration": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::FlowAlias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowversion.json new file mode 100644 index 0000000000..7f2a3fcdc1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-flowversion.json @@ -0,0 +1,896 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Iterator", + "Collector", + "Storage", + "Retrieval" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowVersions" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "FlowArn": { + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "pattern": "^[0-9]{1,5}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "FlowArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::FlowVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-promptversion.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-promptversion.json new file mode 100644 index 0000000000..7460656b1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-promptversion.json @@ -0,0 +1,296 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + }, + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "PromptArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "PromptId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "PromptArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Bedrock::PromptVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codebuild-fleet.json deleted file mode 100644 index 4c870f71c0..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codebuild-fleet.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[a-zA-Z+-=._:/]+$", - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:CreateFleet", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:DeleteFleet" - ] - }, - "list": { - "permissions": [ - "codebuild:ListFleets" - ] - }, - "read": { - "permissions": [ - "codebuild:BatchGetFleets" - ] - }, - "update": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:UpdateFleet", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "minLength": 1, - "type": "string" - }, - "BaseCapacity": { - "minimum": 1, - "type": "integer" - }, - "ComputeType": { - "enum": [ - "BUILD_GENERAL1_SMALL", - "BUILD_GENERAL1_MEDIUM", - "BUILD_GENERAL1_LARGE", - "BUILD_GENERAL1_2XLARGE" - ], - "type": "string" - }, - "EnvironmentType": { - "enum": [ - "WINDOWS_SERVER_2019_CONTAINER", - "WINDOWS_SERVER_2022_CONTAINER", - "LINUX_CONTAINER", - "LINUX_GPU_CONTAINER", - "ARM_CONTAINER", - "MAC_ARM" - ], - "type": "string" - }, - "FleetServiceRole": { - "pattern": "^(?:arn:)[a-zA-Z+-=,._:/@]+$", - "type": "string" - }, - "FleetVpcConfig": { - "$ref": "#/definitions/VpcConfig" - }, - "ImageId": { - "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 2, - "type": "string" - }, - "OverflowBehavior": { - "enum": [ - "QUEUE", - "ON_DEMAND" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CodeBuild::Fleet" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json deleted file mode 100644 index 98904d38a1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollectionName", - "/properties/KmsKeyId" - ], - "definitions": { - "PricingPlan": { - "enum": [ - "RequestBasedUsage" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "deprecatedProperties": [ - "/properties/PricingPlan", - "/properties/PricingPlanDataSource" - ], - "handlers": { - "create": { - "permissions": [ - "geo:CreateGeofenceCollection", - "geo:DescribeGeofenceCollection", - "geo:TagResource", - "geo:UntagResource", - "kms:DescribeKey", - "kms:CreateGrant" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteGeofenceCollection", - "geo:DescribeGeofenceCollection" - ] - }, - "list": { - "permissions": [ - "geo:ListGeofenceCollections" - ] - }, - "read": { - "permissions": [ - "geo:DescribeGeofenceCollection", - "kms:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateGeofenceCollection", - "geo:DescribeGeofenceCollection", - "geo:TagResource", - "geo:UntagResource", - "kms:DescribeKey", - "kms:CreateGrant", - "geo:UpdateGeofenceCollection" - ] - } - }, - "primaryIdentifier": [ - "/properties/CollectionName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CollectionArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CollectionName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "KmsKeyId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "PricingPlan": { - "$ref": "#/definitions/PricingPlan" - }, - "PricingPlanDataSource": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CollectionArn", - "/properties/Arn", - "/properties/CreateTime", - "/properties/UpdateTime" - ], - "required": [ - "CollectionName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::GeofenceCollection" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channel.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channel.json new file mode 100644 index 0000000000..70e46bd14f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channel.json @@ -0,0 +1,169 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/InputType" + ], + "definitions": { + "IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "InputType": { + "enum": [ + "HLS", + "CMAF" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateChannel" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetChannel", + "mediapackagev2:DeleteChannel" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelGroupName": { + "$ref": "resource-schema.json#/properties/ChannelGroupName" + } + }, + "required": [ + "ChannelGroupName" + ] + }, + "permissions": [ + "mediapackagev2:ListChannels" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetChannel" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateChannel" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ChannelName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "IngestEndpointUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IngestEndpoints": { + "items": { + "$ref": "#/definitions/IngestEndpoint" + }, + "type": "array" + }, + "InputType": { + "$ref": "#/definitions/InputType" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/IngestEndpoints", + "/properties/IngestEndpointUrls", + "/properties/ModifiedAt" + ], + "required": [ + "ChannelGroupName", + "ChannelName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channelgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channelgroup.json new file mode 100644 index 0000000000..840ae997a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-channelgroup.json @@ -0,0 +1,117 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateChannelGroup" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetChannelGroup", + "mediapackagev2:DeleteChannelGroup" + ] + }, + "list": { + "permissions": [ + "mediapackagev2:ListChannelGroups" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetChannelGroup" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateChannelGroup" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "EgressDomain": { + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/EgressDomain", + "/properties/ModifiedAt" + ], + "required": [ + "ChannelGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::ChannelGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-originendpoint.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-originendpoint.json new file mode 100644 index 0000000000..ccb9268366 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackagev2-originendpoint.json @@ -0,0 +1,658 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/OriginEndpointName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/OriginEndpointName" + ], + "definitions": { + "AdMarkerDash": { + "enum": [ + "BINARY", + "XML" + ], + "type": "string" + }, + "AdMarkerHls": { + "enum": [ + "DATERANGE" + ], + "type": "string" + }, + "CmafEncryptionMethod": { + "enum": [ + "CENC", + "CBCS" + ], + "type": "string" + }, + "ContainerType": { + "enum": [ + "TS", + "CMAF" + ], + "type": "string" + }, + "DashDrmSignaling": { + "enum": [ + "INDIVIDUAL", + "REFERENCED" + ], + "type": "string" + }, + "DashManifestConfiguration": { + "additionalProperties": false, + "properties": { + "DrmSignaling": { + "$ref": "#/definitions/DashDrmSignaling" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "MinBufferTimeSeconds": { + "type": "integer" + }, + "MinUpdatePeriodSeconds": { + "type": "integer" + }, + "PeriodTriggers": { + "items": { + "$ref": "#/definitions/DashPeriodTrigger" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ScteDash": { + "$ref": "#/definitions/ScteDash" + }, + "SegmentTemplateFormat": { + "$ref": "#/definitions/DashSegmentTemplateFormat" + }, + "SuggestedPresentationDelaySeconds": { + "type": "integer" + }, + "UtcTiming": { + "$ref": "#/definitions/DashUtcTiming" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "DashPeriodTrigger": { + "enum": [ + "AVAILS", + "DRM_KEY_ROTATION", + "SOURCE_CHANGES", + "SOURCE_DISRUPTIONS", + "NONE" + ], + "type": "string" + }, + "DashSegmentTemplateFormat": { + "enum": [ + "NUMBER_WITH_TIMELINE" + ], + "type": "string" + }, + "DashUtcTiming": { + "additionalProperties": false, + "properties": { + "TimingMode": { + "$ref": "#/definitions/DashUtcTimingMode" + }, + "TimingSource": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "DashUtcTimingMode": { + "enum": [ + "HTTP_HEAD", + "HTTP_ISO", + "HTTP_XSDATE", + "UTC_DIRECT" + ], + "type": "string" + }, + "DrmSystem": { + "enum": [ + "CLEAR_KEY_AES_128", + "FAIRPLAY", + "PLAYREADY", + "WIDEVINE", + "IRDETO" + ], + "type": "string" + }, + "Encryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "maxLength": 32, + "minLength": 32, + "pattern": "^[0-9a-fA-F]+$", + "type": "string" + }, + "EncryptionMethod": { + "$ref": "#/definitions/EncryptionMethod" + }, + "KeyRotationIntervalSeconds": { + "maximum": 31536000, + "minimum": 300, + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "EncryptionMethod", + "SpekeKeyProvider" + ], + "type": "object" + }, + "EncryptionContractConfiguration": { + "additionalProperties": false, + "properties": { + "PresetSpeke20Audio": { + "$ref": "#/definitions/PresetSpeke20Audio" + }, + "PresetSpeke20Video": { + "$ref": "#/definitions/PresetSpeke20Video" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "EncryptionMethod": { + "additionalProperties": false, + "properties": { + "CmafEncryptionMethod": { + "$ref": "#/definitions/CmafEncryptionMethod" + }, + "TsEncryptionMethod": { + "$ref": "#/definitions/TsEncryptionMethod" + } + }, + "type": "object" + }, + "EndpointErrorCondition": { + "enum": [ + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT" + ], + "type": "string" + }, + "FilterConfiguration": { + "additionalProperties": false, + "properties": { + "End": { + "format": "date-time", + "type": "string" + }, + "ManifestFilter": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Start": { + "format": "date-time", + "type": "string" + }, + "TimeDelaySeconds": { + "maximum": 1209600, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "ForceEndpointErrorConfiguration": { + "additionalProperties": false, + "properties": { + "EndpointErrorConditions": { + "items": { + "$ref": "#/definitions/EndpointErrorCondition" + }, + "type": "array" + } + }, + "type": "object" + }, + "HlsManifestConfiguration": { + "additionalProperties": false, + "properties": { + "ChildManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "ScteHls": { + "$ref": "#/definitions/ScteHls" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "LowLatencyHlsManifestConfiguration": { + "additionalProperties": false, + "properties": { + "ChildManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "ScteHls": { + "$ref": "#/definitions/ScteHls" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "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" + }, + "Scte": { + "additionalProperties": false, + "properties": { + "ScteFilter": { + "items": { + "$ref": "#/definitions/ScteFilter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScteDash": { + "additionalProperties": false, + "properties": { + "AdMarkerDash": { + "$ref": "#/definitions/AdMarkerDash" + } + }, + "type": "object" + }, + "ScteFilter": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY", + "PROGRAM" + ], + "type": "string" + }, + "ScteHls": { + "additionalProperties": false, + "properties": { + "AdMarkerHls": { + "$ref": "#/definitions/AdMarkerHls" + } + }, + "type": "object" + }, + "Segment": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/Encryption" + }, + "IncludeIframeOnlyStreams": { + "type": "boolean" + }, + "Scte": { + "$ref": "#/definitions/Scte" + }, + "SegmentDurationSeconds": { + "maximum": 30, + "minimum": 1, + "type": "integer" + }, + "SegmentName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "TsIncludeDvbSubtitles": { + "type": "boolean" + }, + "TsUseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "DrmSystems": { + "items": { + "$ref": "#/definitions/DrmSystem" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/EncryptionContractConfiguration" + }, + "ResourceId": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[0-9a-zA-Z_-]+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DrmSystems", + "EncryptionContractConfiguration", + "ResourceId", + "RoleArn", + "Url" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TsEncryptionMethod": { + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateOriginEndpoint", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetOriginEndpoint", + "mediapackagev2:DeleteOriginEndpoint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelGroupName": { + "$ref": "resource-schema.json#/properties/ChannelGroupName" + }, + "ChannelName": { + "$ref": "resource-schema.json#/properties/ChannelName" + } + }, + "required": [ + "ChannelGroupName", + "ChannelName" + ] + }, + "permissions": [ + "mediapackagev2:ListOriginEndpoints" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetOriginEndpoint" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateOriginEndpoint", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ChannelName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ContainerType": { + "$ref": "#/definitions/ContainerType" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "DashManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DashManifests": { + "items": { + "$ref": "#/definitions/DashManifestConfiguration" + }, + "type": "array" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ForceEndpointErrorConfiguration": { + "$ref": "#/definitions/ForceEndpointErrorConfiguration" + }, + "HlsManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/HlsManifestConfiguration" + }, + "type": "array" + }, + "LowLatencyHlsManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LowLatencyHlsManifests": { + "items": { + "$ref": "#/definitions/LowLatencyHlsManifestConfiguration" + }, + "type": "array" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "OriginEndpointName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Segment": { + "$ref": "#/definitions/Segment" + }, + "StartoverWindowSeconds": { + "maximum": 1209600, + "minimum": 60, + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/DashManifestUrls", + "/properties/HlsManifestUrls", + "/properties/LowLatencyHlsManifestUrls", + "/properties/ModifiedAt", + "/properties/LowLatencyHlsManifests/*/Url", + "/properties/HlsManifests/*/Url" + ], + "required": [ + "ChannelGroupName", + "ChannelName", + "OriginEndpointName", + "ContainerType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::OriginEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-msk-replicator.json deleted file mode 100644 index 19aeafdd58..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-msk-replicator.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "ReplicationTopicNameConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationTopicNameConfigurationType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationTopicNameConfigurationType": { - "enum": [ - "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS", - "IDENTICAL" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicNameConfiguration": { - "$ref": "#/definitions/ReplicationTopicNameConfiguration" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "permissions": [ - "kafka:UntagResource", - "kafka:ListTagsForResource", - "kafka:TagResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 721a6de872..e1825ed552 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -576,6 +576,7 @@ "AWS::IVS::EncoderConfiguration", "AWS::IVS::PlaybackKeyPair", "AWS::IVS::PlaybackRestrictionPolicy", + "AWS::IVS::PublicKey", "AWS::IVS::RecordingConfiguration", "AWS::IVS::Stage", "AWS::IVS::StorageConfiguration", @@ -941,6 +942,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -965,6 +969,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1160,7 +1165,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1437,7 +1441,6 @@ "aws-ec2-clientvpnendpoint.json", "aws-ec2-clientvpnroute.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -1449,7 +1452,7 @@ "aws-ec2-host.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1482,7 +1485,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -1517,14 +1519,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1560,7 +1559,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1619,6 +1617,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1739,6 +1738,15 @@ "aws-iottwinmaker-scene.json", "aws-iottwinmaker-syncjob.json", "aws-iottwinmaker-workspace.json", + "aws-ivs-channel.json", + "aws-ivs-encoderconfiguration.json", + "aws-ivs-playbackkeypair.json", + "aws-ivs-playbackrestrictionpolicy.json", + "aws-ivs-publickey.json", + "aws-ivs-recordingconfiguration.json", + "aws-ivs-stage.json", + "aws-ivs-storageconfiguration.json", + "aws-ivs-streamkey.json", "aws-ivschat-loggingconfiguration.json", "aws-ivschat-room.json", "aws-kafkaconnect-connector.json", @@ -1758,6 +1766,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1856,6 +1865,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1883,7 +1893,6 @@ "aws-networkmanager-vpcattachment.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -1949,6 +1958,7 @@ "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", @@ -1961,6 +1971,7 @@ "aws-redshift-eventsubscription.json", "aws-redshift-scheduledaction.json", "aws-redshiftserverless-namespace.json", + "aws-redshiftserverless-workgroup.json", "aws-refactorspaces-application.json", "aws-refactorspaces-environment.json", "aws-refactorspaces-route.json", @@ -2050,7 +2061,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2095,6 +2105,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", @@ -2125,6 +2138,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", @@ -2135,6 +2149,8 @@ "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", + "aws-synthetics-canary.json", + "aws-synthetics-group.json", "aws-systemsmanagersap-application.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-internetgateway.json similarity index 52% rename from src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-internetgateway.json index e8d7395467..f4b93a4397 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-internetgateway.json @@ -11,7 +11,6 @@ }, "Value": { "maxLength": 256, - "minLength": 1, "type": "string" } }, @@ -25,60 +24,40 @@ "handlers": { "create": { "permissions": [ - "ivs:CreateStage", - "ivs:GetStage", - "ivs:TagResource", - "ivs:ListTagsForResource" + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" ] }, "delete": { "permissions": [ - "ivs:DeleteStage", - "ivs:UnTagResource" + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" ] }, "list": { "permissions": [ - "ivs:ListStages", - "ivs:ListTagsForResource" + "ec2:DescribeInternetGateways" ] }, "read": { "permissions": [ - "ivs:GetStage", - "ivs:ListTagsForResource" + "ec2:DescribeInternetGateways" ] }, "update": { "permissions": [ - "ivs:GetStage", - "ivs:UpdateStage", - "ivs:TagResource", - "ivs:UnTagResource", - "ivs:ListTagsForResource" + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" ] } }, "primaryIdentifier": [ - "/properties/Arn" + "/properties/InternetGatewayId" ], "properties": { - "ActiveSessionId": { - "default": "", - "maxLength": 128, - "minLength": 0, - "type": "string" - }, - "Arn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", + "InternetGatewayId": { "type": "string" }, "Tags": { @@ -87,20 +66,19 @@ "$ref": "#/definitions/Tag" }, "type": "array", - "uniqueItems": true + "uniqueItems": false } }, "readOnlyProperties": [ - "/properties/Arn", - "/properties/ActiveSessionId" + "/properties/InternetGatewayId" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, "taggable": true }, - "typeName": "AWS::IVS::Stage" + "typeName": "AWS::EC2::InternetGateway" } diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-elasticloadbalancingv2-loadbalancer.json similarity index 96% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-elasticloadbalancingv2-loadbalancer.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-elasticloadbalancingv2-loadbalancer.json index f9572db062..b91b5af9ff 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-elasticloadbalancingv2-loadbalancer.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -192,11 +192,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "elasticloadbalancing:AddTags", - "elasticloadbalancing:DescribeTags", - "elasticloadbalancing:RemoveTags" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json deleted file mode 100644 index e4cb46dd5a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateChannel", - "ivs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteChannel", - "ivs:UnTagResource" - ] - }, - "list": { - "permissions": [ - "ivs:ListChannels", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetChannel", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetChannel", - "ivs:UpdateChannel", - "ivs:TagResource", - "ivs:UnTagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Authorized": { - "default": false, - "type": "boolean" - }, - "IngestEndpoint": { - "type": "string" - }, - "InsecureIngest": { - "default": false, - "type": "boolean" - }, - "LatencyMode": { - "default": "LOW", - "enum": [ - "NORMAL", - "LOW" - ], - "type": "string" - }, - "Name": { - "default": "-", - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "PlaybackUrl": { - "type": "string" - }, - "Preset": { - "enum": [ - "HIGHER_BANDWIDTH_DELIVERY", - "CONSTRAINED_BANDWIDTH_DELIVERY" - ], - "type": "string" - }, - "RecordingConfigurationArn": { - "default": "", - "maxLength": 128, - "minLength": 0, - "pattern": "^$|arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "default": "STANDARD", - "enum": [ - "STANDARD", - "BASIC", - "ADVANCED_SD", - "ADVANCED_HD" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/PlaybackUrl", - "/properties/IngestEndpoint" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json deleted file mode 100644 index 34c05bbe86..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Video", - "/properties/Video/Bitrate", - "/properties/Video/Framerate", - "/properties/Video/Height", - "/properties/Video/Width" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateEncoderConfiguration", - "ivs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteEncoderConfiguration", - "ivs:UntagResource" - ] - }, - "list": { - "permissions": [ - "ivs:ListEncoderConfigurations", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetEncoderConfiguration", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetEncoderConfiguration", - "ivs:ListTagsForResource", - "ivs:UntagResource", - "ivs:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:encoder-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Video": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "default": 2500000, - "maximum": 8500000, - "minimum": 1, - "type": "integer" - }, - "Framerate": { - "default": 30, - "maximum": 60, - "minimum": 1, - "type": "number" - }, - "Height": { - "default": 720, - "maximum": 1920, - "minimum": 1, - "type": "integer" - }, - "Width": { - "default": 1280, - "maximum": 1920, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::EncoderConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json deleted file mode 100644 index 5fe616ae89..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreatePlaybackRestrictionPolicy", - "ivs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ivs:DeletePlaybackRestrictionPolicy", - "ivs:UntagResource" - ] - }, - "list": { - "permissions": [ - "ivs:ListPlaybackRestrictionPolicies", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetPlaybackRestrictionPolicy", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetPlaybackRestrictionPolicy", - "ivs:UpdatePlaybackRestrictionPolicy", - "ivs:ListTagsForResource", - "ivs:UntagResource", - "ivs:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "AllowedCountries": { - "default": [], - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "default": [], - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-restriction-policy/[a-zA-Z0-9-]+$", - "type": "string" - }, - "EnableStrictOriginEnforcement": { - "default": false, - "type": "boolean" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "AllowedCountries", - "AllowedOrigins" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::PlaybackRestrictionPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json deleted file mode 100644 index e1c3e09a85..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/DestinationConfiguration", - "/properties/DestinationConfiguration/S3", - "/properties/DestinationConfiguration/S3/BucketName", - "/properties/RecordingReconnectWindowSeconds", - "/properties/ThumbnailConfiguration", - "/properties/ThumbnailConfiguration/RecordingMode", - "/properties/ThumbnailConfiguration/TargetIntervalSeconds", - "/properties/ThumbnailConfiguration/Storage", - "/properties/ThumbnailConfiguration/Resolution", - "/properties/RenditionConfiguration", - "/properties/RenditionConfiguration/RenditionSelection", - "/properties/RenditionConfiguration/Renditions" - ], - "definitions": { - "DestinationConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3DestinationConfiguration" - } - }, - "required": [], - "type": "object" - }, - "RenditionConfiguration": { - "additionalProperties": false, - "properties": { - "RenditionSelection": { - "default": "ALL", - "enum": [ - "ALL", - "NONE", - "CUSTOM" - ], - "type": "string" - }, - "Renditions": { - "insertionOrder": false, - "items": { - "enum": [ - "FULL_HD", - "HD", - "SD", - "LOWEST_RESOLUTION" - ], - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array", - "uniqueItems": true - } - }, - "required": [], - "type": "object" - }, - "S3DestinationConfiguration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9-.]+$", - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "RecordingMode": { - "default": "INTERVAL", - "enum": [ - "INTERVAL", - "DISABLED" - ], - "type": "string" - }, - "Resolution": { - "enum": [ - "FULL_HD", - "HD", - "SD", - "LOWEST_RESOLUTION" - ], - "type": "string" - }, - "Storage": { - "insertionOrder": false, - "items": { - "enum": [ - "SEQUENTIAL", - "LATEST" - ], - "type": "string" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "TargetIntervalSeconds": { - "default": 60, - "maximum": 60, - "minimum": 1, - "type": "integer" - } - }, - "required": [], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateRecordingConfiguration", - "ivs:GetRecordingConfiguration", - "ivs:TagResource", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "iam:AttachRolePolicy", - "s3:ListBucket", - "s3:GetBucketLocation", - "cloudformation:ListExports" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteRecordingConfiguration", - "ivs:UntagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "list": { - "permissions": [ - "ivs:ListRecordingConfigurations", - "s3:GetBucketLocation", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetRecordingConfiguration", - "s3:GetBucketLocation", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetRecordingConfiguration", - "sts:AssumeRole", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "iam:AttachRolePolicy", - "s3:ListBucket", - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "DestinationConfiguration": { - "$ref": "#/definitions/DestinationConfiguration" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "RecordingReconnectWindowSeconds": { - "default": 0, - "maximum": 300, - "minimum": 0, - "type": "integer" - }, - "RenditionConfiguration": { - "$ref": "#/definitions/RenditionConfiguration" - }, - "State": { - "enum": [ - "CREATING", - "CREATE_FAILED", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/State" - ], - "required": [ - "DestinationConfiguration" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::RecordingConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json deleted file mode 100644 index b3470f4c42..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/S3", - "/properties/S3/BucketName" - ], - "definitions": { - "S3StorageConfiguration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9-.]+$", - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateStorageConfiguration", - "ivs:GetStorageConfiguration", - "ivs:TagResource", - "s3:GetBucketLocation", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteStorageConfiguration", - "ivs:UntagResource", - "s3:GetBucketPolicy", - "s3:DeleteBucketPolicy", - "s3:PutBucketPolicy" - ] - }, - "list": { - "permissions": [ - "ivs:ListStorageConfigurations", - "s3:GetBucketLocation", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetStorageConfiguration", - "ivs:ListTagsForResource", - "s3:GetBucketLocation" - ] - }, - "update": { - "permissions": [ - "ivs:GetStorageConfiguration", - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:storage-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "S3": { - "$ref": "#/definitions/S3StorageConfiguration" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "S3" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::StorageConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json deleted file mode 100644 index cf085065b0..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ChannelArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:CreateStreamKey" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteStreamKey", - "ivs:UntagResource" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ChannelArn": { - "$ref": "resource-schema.json#/properties/ChannelArn" - } - }, - "required": [ - "ChannelArn" - ] - }, - "permissions": [ - "ivs:ListStreamKeys", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetStreamKey", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetStreamKey", - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$", - "type": "string" - }, - "ChannelArn": { - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Value": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Value" - ], - "replacementStrategy": "delete_then_create", - "required": [ - "ChannelArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::StreamKey" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-redshiftserverless-workgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-redshiftserverless-workgroup.json deleted file mode 100644 index 2051435bfe..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-redshiftserverless-workgroup.json +++ /dev/null @@ -1,379 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/WorkgroupName", - "/properties/NamespaceName" - ], - "definitions": { - "ConfigParameter": { - "additionalProperties": false, - "properties": { - "ParameterKey": { - "maxLength": 255, - "minLength": 0, - "type": "string" - }, - "ParameterValue": { - "maxLength": 15000, - "minLength": 0, - "type": "string" - } - }, - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "integer" - }, - "VpcEndpoints": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/VpcEndpoint" - }, - "type": "array" - } - }, - "type": "object" - }, - "NetworkInterface": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "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" - }, - "VpcEndpoint": { - "additionalProperties": false, - "properties": { - "NetworkInterfaces": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/NetworkInterface" - }, - "type": "array" - }, - "VpcEndpointId": { - "type": "string" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "type": "object" - }, - "Workgroup": { - "additionalProperties": false, - "properties": { - "BaseCapacity": { - "type": "integer" - }, - "ConfigParameters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ConfigParameter" - }, - "type": "array", - "uniqueItems": true - }, - "CreationDate": { - "type": "string" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "EnhancedVpcRouting": { - "type": "boolean" - }, - "MaxCapacity": { - "type": "integer" - }, - "NamespaceName": { - "maxLength": 64, - "minLength": 3, - "pattern": "^[a-z0-9-]+$", - "type": "string" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 255, - "minLength": 0, - "pattern": "^sg-[0-9a-fA-F]{8,}$", - "type": "string" - }, - "type": "array" - }, - "Status": { - "$ref": "#/definitions/WorkgroupStatus" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 0, - "pattern": "^subnet-[0-9a-fA-F]{8,}$", - "type": "string" - }, - "type": "array" - }, - "WorkgroupArn": { - "type": "string" - }, - "WorkgroupId": { - "type": "string" - }, - "WorkgroupName": { - "maxLength": 64, - "minLength": 3, - "pattern": "^[a-z0-9-]*$", - "type": "string" - } - }, - "type": "object" - }, - "WorkgroupStatus": { - "enum": [ - "CREATING", - "AVAILABLE", - "MODIFYING", - "DELETING" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeVpcAttribute", - "ec2:DescribeSecurityGroups", - "ec2:DescribeAddresses", - "ec2:DescribeInternetGateways", - "ec2:DescribeSubnets", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "redshift-serverless:CreateNamespace", - "redshift-serverless:CreateWorkgroup", - "redshift-serverless:GetWorkgroup" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeVpcAttribute", - "ec2:DescribeSecurityGroups", - "ec2:DescribeAddresses", - "ec2:DescribeInternetGateways", - "ec2:DescribeSubnets", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "redshift-serverless:GetWorkgroup", - "redshift-serverless:DeleteWorkgroup" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeVpcAttribute", - "ec2:DescribeSecurityGroups", - "ec2:DescribeAddresses", - "ec2:DescribeInternetGateways", - "ec2:DescribeSubnets", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "redshift-serverless:ListWorkgroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeVpcAttribute", - "ec2:DescribeSecurityGroups", - "ec2:DescribeAddresses", - "ec2:DescribeInternetGateways", - "ec2:DescribeSubnets", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "redshift-serverless:GetWorkgroup" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeVpcAttribute", - "ec2:DescribeSecurityGroups", - "ec2:DescribeAddresses", - "ec2:DescribeInternetGateways", - "ec2:DescribeSubnets", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "redshift-serverless:ListTagsForResource", - "redshift-serverless:TagResource", - "redshift-serverless:UntagResource", - "redshift-serverless:GetWorkgroup", - "redshift-serverless:UpdateWorkgroup" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkgroupName" - ], - "properties": { - "BaseCapacity": { - "type": "integer" - }, - "ConfigParameters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ConfigParameter" - }, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "EnhancedVpcRouting": { - "default": false, - "type": "boolean" - }, - "MaxCapacity": { - "type": "integer" - }, - "NamespaceName": { - "maxLength": 64, - "minLength": 3, - "pattern": "^(?=^[a-z0-9-]+$).{3,64}$", - "type": "string" - }, - "Port": { - "type": "integer" - }, - "PubliclyAccessible": { - "default": false, - "type": "boolean" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 255, - "minLength": 0, - "pattern": "^sg-[0-9a-fA-F]{8,}$", - "type": "string" - }, - "maxItems": 32, - "minItems": 1, - "type": "array" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 0, - "pattern": "^subnet-[0-9a-fA-F]{8,}$", - "type": "string" - }, - "maxItems": 32, - "minItems": 1, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - }, - "Workgroup": { - "$ref": "#/definitions/Workgroup" - }, - "WorkgroupName": { - "maxLength": 64, - "minLength": 3, - "pattern": "^(?=^[a-z0-9-]+$).{3,64}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Workgroup", - "/properties/Workgroup/WorkgroupId", - "/properties/Workgroup/WorkgroupArn", - "/properties/Workgroup/WorkgroupName", - "/properties/Workgroup/NamespaceName", - "/properties/Workgroup/BaseCapacity", - "/properties/Workgroup/MaxCapacity", - "/properties/Workgroup/EnhancedVpcRouting", - "/properties/Workgroup/ConfigParameters/*/ParameterKey", - "/properties/Workgroup/ConfigParameters/*/ParameterValue", - "/properties/Workgroup/SecurityGroupIds", - "/properties/Workgroup/SubnetIds", - "/properties/Workgroup/Status", - "/properties/Workgroup/Endpoint/Address", - "/properties/Workgroup/Endpoint/Port", - "/properties/Workgroup/Endpoint/VpcEndpoints/*/VpcEndpointId", - "/properties/Workgroup/Endpoint/VpcEndpoints/*/VpcId", - "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/NetworkInterfaceId", - "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/SubnetId", - "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/PrivateIpAddress", - "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/AvailabilityZone", - "/properties/Workgroup/PubliclyAccessible", - "/properties/Workgroup/CreationDate" - ], - "required": [ - "WorkgroupName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift-serverless", - "tagging": { - "taggable": true - }, - "typeName": "AWS::RedshiftServerless::Workgroup", - "writeOnlyProperties": [ - "/properties/BaseCapacity", - "/properties/MaxCapacity", - "/properties/ConfigParameters", - "/properties/SecurityGroupIds", - "/properties/SubnetIds", - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 87d785ef8a..f5cd6eda57 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -634,6 +634,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -807,7 +810,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -989,6 +991,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1056,7 +1059,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1093,7 +1095,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1133,6 +1134,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1187,6 +1189,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1401,7 +1404,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1439,6 +1441,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 24fc9506df..ac133d71a5 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -563,6 +563,7 @@ "AWS::IVS::EncoderConfiguration", "AWS::IVS::PlaybackKeyPair", "AWS::IVS::PlaybackRestrictionPolicy", + "AWS::IVS::PublicKey", "AWS::IVS::RecordingConfiguration", "AWS::IVS::Stage", "AWS::IVS::StorageConfiguration", @@ -947,6 +948,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -971,6 +975,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1172,7 +1177,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1532,7 +1536,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1568,7 +1571,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1621,6 +1623,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1749,6 +1752,15 @@ "aws-iottwinmaker-scene.json", "aws-iottwinmaker-syncjob.json", "aws-iottwinmaker-workspace.json", + "aws-ivs-channel.json", + "aws-ivs-encoderconfiguration.json", + "aws-ivs-playbackkeypair.json", + "aws-ivs-playbackrestrictionpolicy.json", + "aws-ivs-publickey.json", + "aws-ivs-recordingconfiguration.json", + "aws-ivs-stage.json", + "aws-ivs-storageconfiguration.json", + "aws-ivs-streamkey.json", "aws-ivschat-loggingconfiguration.json", "aws-ivschat-room.json", "aws-kafkaconnect-connector.json", @@ -1768,6 +1780,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1798,6 +1811,7 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", + "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1865,6 +1879,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1898,7 +1913,6 @@ "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", "aws-opensearchserverless-vpcendpoint.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -2040,7 +2054,6 @@ "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-dataqualityjobdefinition.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -2063,7 +2076,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2072,7 +2084,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2117,6 +2128,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", @@ -2146,6 +2160,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json deleted file mode 100644 index e4cb46dd5a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateChannel", - "ivs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteChannel", - "ivs:UnTagResource" - ] - }, - "list": { - "permissions": [ - "ivs:ListChannels", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetChannel", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetChannel", - "ivs:UpdateChannel", - "ivs:TagResource", - "ivs:UnTagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Authorized": { - "default": false, - "type": "boolean" - }, - "IngestEndpoint": { - "type": "string" - }, - "InsecureIngest": { - "default": false, - "type": "boolean" - }, - "LatencyMode": { - "default": "LOW", - "enum": [ - "NORMAL", - "LOW" - ], - "type": "string" - }, - "Name": { - "default": "-", - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "PlaybackUrl": { - "type": "string" - }, - "Preset": { - "enum": [ - "HIGHER_BANDWIDTH_DELIVERY", - "CONSTRAINED_BANDWIDTH_DELIVERY" - ], - "type": "string" - }, - "RecordingConfigurationArn": { - "default": "", - "maxLength": 128, - "minLength": 0, - "pattern": "^$|arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "default": "STANDARD", - "enum": [ - "STANDARD", - "BASIC", - "ADVANCED_SD", - "ADVANCED_HD" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/PlaybackUrl", - "/properties/IngestEndpoint" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json deleted file mode 100644 index 34c05bbe86..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Video", - "/properties/Video/Bitrate", - "/properties/Video/Framerate", - "/properties/Video/Height", - "/properties/Video/Width" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateEncoderConfiguration", - "ivs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteEncoderConfiguration", - "ivs:UntagResource" - ] - }, - "list": { - "permissions": [ - "ivs:ListEncoderConfigurations", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetEncoderConfiguration", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetEncoderConfiguration", - "ivs:ListTagsForResource", - "ivs:UntagResource", - "ivs:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:encoder-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Video": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "default": 2500000, - "maximum": 8500000, - "minimum": 1, - "type": "integer" - }, - "Framerate": { - "default": 30, - "maximum": 60, - "minimum": 1, - "type": "number" - }, - "Height": { - "default": 720, - "maximum": 1920, - "minimum": 1, - "type": "integer" - }, - "Width": { - "default": 1280, - "maximum": 1920, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::EncoderConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json deleted file mode 100644 index 5fe616ae89..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreatePlaybackRestrictionPolicy", - "ivs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ivs:DeletePlaybackRestrictionPolicy", - "ivs:UntagResource" - ] - }, - "list": { - "permissions": [ - "ivs:ListPlaybackRestrictionPolicies", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetPlaybackRestrictionPolicy", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetPlaybackRestrictionPolicy", - "ivs:UpdatePlaybackRestrictionPolicy", - "ivs:ListTagsForResource", - "ivs:UntagResource", - "ivs:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "AllowedCountries": { - "default": [], - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "default": [], - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-restriction-policy/[a-zA-Z0-9-]+$", - "type": "string" - }, - "EnableStrictOriginEnforcement": { - "default": false, - "type": "boolean" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "AllowedCountries", - "AllowedOrigins" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::PlaybackRestrictionPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json deleted file mode 100644 index e1c3e09a85..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/DestinationConfiguration", - "/properties/DestinationConfiguration/S3", - "/properties/DestinationConfiguration/S3/BucketName", - "/properties/RecordingReconnectWindowSeconds", - "/properties/ThumbnailConfiguration", - "/properties/ThumbnailConfiguration/RecordingMode", - "/properties/ThumbnailConfiguration/TargetIntervalSeconds", - "/properties/ThumbnailConfiguration/Storage", - "/properties/ThumbnailConfiguration/Resolution", - "/properties/RenditionConfiguration", - "/properties/RenditionConfiguration/RenditionSelection", - "/properties/RenditionConfiguration/Renditions" - ], - "definitions": { - "DestinationConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3DestinationConfiguration" - } - }, - "required": [], - "type": "object" - }, - "RenditionConfiguration": { - "additionalProperties": false, - "properties": { - "RenditionSelection": { - "default": "ALL", - "enum": [ - "ALL", - "NONE", - "CUSTOM" - ], - "type": "string" - }, - "Renditions": { - "insertionOrder": false, - "items": { - "enum": [ - "FULL_HD", - "HD", - "SD", - "LOWEST_RESOLUTION" - ], - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array", - "uniqueItems": true - } - }, - "required": [], - "type": "object" - }, - "S3DestinationConfiguration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9-.]+$", - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "RecordingMode": { - "default": "INTERVAL", - "enum": [ - "INTERVAL", - "DISABLED" - ], - "type": "string" - }, - "Resolution": { - "enum": [ - "FULL_HD", - "HD", - "SD", - "LOWEST_RESOLUTION" - ], - "type": "string" - }, - "Storage": { - "insertionOrder": false, - "items": { - "enum": [ - "SEQUENTIAL", - "LATEST" - ], - "type": "string" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "TargetIntervalSeconds": { - "default": 60, - "maximum": 60, - "minimum": 1, - "type": "integer" - } - }, - "required": [], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateRecordingConfiguration", - "ivs:GetRecordingConfiguration", - "ivs:TagResource", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "iam:AttachRolePolicy", - "s3:ListBucket", - "s3:GetBucketLocation", - "cloudformation:ListExports" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteRecordingConfiguration", - "ivs:UntagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "list": { - "permissions": [ - "ivs:ListRecordingConfigurations", - "s3:GetBucketLocation", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetRecordingConfiguration", - "s3:GetBucketLocation", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetRecordingConfiguration", - "sts:AssumeRole", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "iam:AttachRolePolicy", - "s3:ListBucket", - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "DestinationConfiguration": { - "$ref": "#/definitions/DestinationConfiguration" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "RecordingReconnectWindowSeconds": { - "default": 0, - "maximum": 300, - "minimum": 0, - "type": "integer" - }, - "RenditionConfiguration": { - "$ref": "#/definitions/RenditionConfiguration" - }, - "State": { - "enum": [ - "CREATING", - "CREATE_FAILED", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/State" - ], - "required": [ - "DestinationConfiguration" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::RecordingConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json deleted file mode 100644 index b3470f4c42..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/S3", - "/properties/S3/BucketName" - ], - "definitions": { - "S3StorageConfiguration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9-.]+$", - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:CreateStorageConfiguration", - "ivs:GetStorageConfiguration", - "ivs:TagResource", - "s3:GetBucketLocation", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteStorageConfiguration", - "ivs:UntagResource", - "s3:GetBucketPolicy", - "s3:DeleteBucketPolicy", - "s3:PutBucketPolicy" - ] - }, - "list": { - "permissions": [ - "ivs:ListStorageConfigurations", - "s3:GetBucketLocation", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetStorageConfiguration", - "ivs:ListTagsForResource", - "s3:GetBucketLocation" - ] - }, - "update": { - "permissions": [ - "ivs:GetStorageConfiguration", - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:storage-configuration/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "S3": { - "$ref": "#/definitions/S3StorageConfiguration" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "S3" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::StorageConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json deleted file mode 100644 index cf085065b0..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ChannelArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:CreateStreamKey" - ] - }, - "delete": { - "permissions": [ - "ivs:DeleteStreamKey", - "ivs:UntagResource" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ChannelArn": { - "$ref": "resource-schema.json#/properties/ChannelArn" - } - }, - "required": [ - "ChannelArn" - ] - }, - "permissions": [ - "ivs:ListStreamKeys", - "ivs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "ivs:GetStreamKey", - "ivs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ivs:GetStreamKey", - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$", - "type": "string" - }, - "ChannelArn": { - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Value": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Value" - ], - "replacementStrategy": "delete_then_create", - "required": [ - "ChannelArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IVS::StreamKey" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json deleted file mode 100644 index b41c88be08..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KeyName" - ], - "definitions": { - "ApiKeyRestrictions": { - "additionalProperties": false, - "properties": { - "AllowActions": { - "insertionOrder": false, - "items": { - "maxLength": 200, - "minLength": 5, - "pattern": "^geo:\\w*\\*?$", - "type": "string" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - }, - "AllowReferers": { - "insertionOrder": false, - "items": { - "maxLength": 253, - "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "AllowResources": { - "insertionOrder": false, - "items": { - "maxLength": 1600, - "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "AllowActions", - "AllowResources" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteKey", - "geo:DescribeKey" - ] - }, - "list": { - "permissions": [ - "geo:ListKeys" - ] - }, - "read": { - "permissions": [ - "geo:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix", - "geo:UpdateKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "ExpireTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "ForceDelete": { - "type": "boolean" - }, - "ForceUpdate": { - "type": "boolean" - }, - "KeyArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "KeyName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "NoExpiry": { - "type": "boolean" - }, - "Restrictions": { - "$ref": "#/definitions/ApiKeyRestrictions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CreateTime", - "/properties/Arn", - "/properties/KeyArn", - "/properties/UpdateTime" - ], - "required": [ - "KeyName", - "Restrictions" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::APIKey", - "writeOnlyProperties": [ - "/properties/ForceUpdate", - "/properties/ForceDelete", - "/properties/NoExpiry" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 ab0fb85c3b..00ee4fac82 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -148,6 +148,7 @@ "AWS::Config::DeliveryChannel", "AWS::Config::OrganizationConfigRule", "AWS::Config::OrganizationConformancePack", + "AWS::Config::RemediationConfiguration", "AWS::Config::StoredQuery", "AWS::ControlTower::EnabledBaseline", "AWS::ControlTower::EnabledControl", @@ -640,7 +641,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -750,6 +750,7 @@ "aws-config-deliverychannel.json", "aws-config-organizationconfigrule.json", "aws-config-organizationconformancepack.json", + "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", "aws-controltower-enabledcontrol.json", @@ -793,6 +794,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -803,6 +805,7 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-networkperformancemetricsubscription.json", @@ -814,7 +817,6 @@ "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -843,14 +845,12 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -881,7 +881,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -912,6 +911,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -957,7 +957,9 @@ "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", + "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1094,7 +1096,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json deleted file mode 100644 index c42acee4f5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AliasName" - ], - "handlers": { - "create": { - "permissions": [ - "kms:CreateAlias" - ] - }, - "delete": { - "permissions": [ - "kms:DeleteAlias" - ] - }, - "list": { - "permissions": [ - "kms:ListAliases" - ] - }, - "read": { - "permissions": [ - "kms:ListAliases" - ] - }, - "update": { - "permissions": [ - "kms:UpdateAlias" - ] - } - }, - "primaryIdentifier": [ - "/properties/AliasName" - ], - "properties": { - "AliasName": { - "maxLength": 256, - "minLength": 1, - "pattern": "^(alias/)[a-zA-Z0-9:/_-]+$", - "type": "string" - }, - "TargetKeyId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "taggable": false, - "typeName": "AWS::KMS::Alias" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 80ec2a020a..b108b81eb7 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1031,6 +1031,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1240,7 +1241,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1332,14 +1332,10 @@ "aws-bedrock-agent.json", "aws-bedrock-agentalias.json", "aws-bedrock-datasource.json", - "aws-bedrock-flow.json", - "aws-bedrock-flowalias.json", - "aws-bedrock-flowversion.json", "aws-bedrock-guardrail.json", "aws-bedrock-guardrailversion.json", "aws-bedrock-knowledgebase.json", "aws-bedrock-prompt.json", - "aws-bedrock-promptversion.json", "aws-budgets-budget.json", "aws-budgets-budgetsaction.json", "aws-cassandra-keyspace.json", @@ -1404,6 +1400,7 @@ "aws-codeartifact-domain.json", "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", + "aws-codebuild-fleet.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", "aws-codebuild-sourcecredential.json", @@ -1676,7 +1673,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -2034,7 +2030,6 @@ "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", "aws-opensearchserverless-vpcendpoint.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -2182,7 +2177,6 @@ "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-dataqualityjobdefinition.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -2205,7 +2199,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2259,6 +2252,7 @@ "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2291,6 +2285,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flow.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flow.json new file mode 100644 index 0000000000..f4f72cb39c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flow.json @@ -0,0 +1,1022 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "DefinitionSubstitutions": { + "additionalProperties": false, + "maxProperties": 500, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Storage", + "Retrieval", + "Iterator", + "Collector" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "FlowValidation": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + } + }, + "required": [ + "Message" + ], + "type": "object" + }, + "FlowValidations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FlowValidation" + }, + "type": "array" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionString": { + "maxLength": 512000, + "type": "string" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Validations": { + "$ref": "#/definitions/FlowValidations" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Validations" + ], + "required": [ + "ExecutionRoleArn", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Flow", + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowalias.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowalias.json new file mode 100644 index 0000000000..e439cc9349 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowalias.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "additionalProperties": false, + "properties": { + "FlowVersion": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowAliases" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "FlowArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Id": { + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "RoutingConfiguration": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::FlowAlias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowversion.json new file mode 100644 index 0000000000..7f2a3fcdc1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-flowversion.json @@ -0,0 +1,896 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Iterator", + "Collector", + "Storage", + "Retrieval" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowVersions" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "FlowArn": { + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "pattern": "^[0-9]{1,5}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "FlowArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::FlowVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-promptversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-promptversion.json new file mode 100644 index 0000000000..7460656b1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-promptversion.json @@ -0,0 +1,296 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + }, + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "PromptArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "PromptId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "PromptArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Bedrock::PromptVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json deleted file mode 100644 index 4c870f71c0..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[a-zA-Z+-=._:/]+$", - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:CreateFleet", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:DeleteFleet" - ] - }, - "list": { - "permissions": [ - "codebuild:ListFleets" - ] - }, - "read": { - "permissions": [ - "codebuild:BatchGetFleets" - ] - }, - "update": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:UpdateFleet", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "minLength": 1, - "type": "string" - }, - "BaseCapacity": { - "minimum": 1, - "type": "integer" - }, - "ComputeType": { - "enum": [ - "BUILD_GENERAL1_SMALL", - "BUILD_GENERAL1_MEDIUM", - "BUILD_GENERAL1_LARGE", - "BUILD_GENERAL1_2XLARGE" - ], - "type": "string" - }, - "EnvironmentType": { - "enum": [ - "WINDOWS_SERVER_2019_CONTAINER", - "WINDOWS_SERVER_2022_CONTAINER", - "LINUX_CONTAINER", - "LINUX_GPU_CONTAINER", - "ARM_CONTAINER", - "MAC_ARM" - ], - "type": "string" - }, - "FleetServiceRole": { - "pattern": "^(?:arn:)[a-zA-Z+-=,._:/@]+$", - "type": "string" - }, - "FleetVpcConfig": { - "$ref": "#/definitions/VpcConfig" - }, - "ImageId": { - "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 2, - "type": "string" - }, - "OverflowBehavior": { - "enum": [ - "QUEUE", - "ON_DEMAND" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CodeBuild::Fleet" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 daf243c02e..c7d4413876 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1055,6 +1055,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1264,7 +1265,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1670,7 +1670,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1706,7 +1705,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1887,9 +1885,6 @@ "aws-iotanalytics-dataset.json", "aws-iotanalytics-datastore.json", "aws-iotanalytics-pipeline.json", - "aws-iotevents-alarmmodel.json", - "aws-iotevents-detectormodel.json", - "aws-iotevents-input.json", "aws-iotfleethub-application.json", "aws-iotsitewise-accesspolicy.json", "aws-iotsitewise-asset.json", @@ -1932,6 +1927,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -2036,6 +2032,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -2073,7 +2070,6 @@ "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", "aws-opensearchserverless-vpcendpoint.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -2255,7 +2251,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2307,6 +2302,7 @@ "aws-ses-mailmanagerruleset.json", "aws-ses-mailmanagertrafficpolicy.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2339,6 +2335,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-alarmmodel.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-alarmmodel.json new file mode 100644 index 0000000000..a4f062d2dd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-alarmmodel.json @@ -0,0 +1,508 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AlarmModelName", + "/properties/Key" + ], + "definitions": { + "AcknowledgeFlow": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": "true", + "type": "boolean" + } + }, + "type": "object" + }, + "AlarmAction": { + "additionalProperties": false, + "properties": { + "DynamoDB": { + "$ref": "#/definitions/DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/Lambda" + }, + "Sns": { + "$ref": "#/definitions/Sns" + }, + "Sqs": { + "$ref": "#/definitions/Sqs" + } + }, + "type": "object" + }, + "AlarmActions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AlarmAction" + }, + "type": "array", + "uniqueItems": false + }, + "AlarmCapabilities": { + "additionalProperties": false, + "properties": { + "AcknowledgeFlow": { + "$ref": "#/definitions/AcknowledgeFlow" + }, + "InitializationConfiguration": { + "$ref": "#/definitions/InitializationConfiguration" + } + }, + "type": "object" + }, + "AlarmEventActions": { + "additionalProperties": false, + "properties": { + "AlarmActions": { + "$ref": "#/definitions/AlarmActions" + } + }, + "type": "object" + }, + "AlarmRule": { + "additionalProperties": false, + "properties": { + "SimpleRule": { + "$ref": "#/definitions/SimpleRule" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "Separator": { + "pattern": "([\\n\\t])|(\\r\\n)|(,)", + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "InitializationConfiguration": { + "additionalProperties": false, + "properties": { + "DisabledOnInitialization": { + "default": "true", + "type": "boolean" + } + }, + "required": [ + "DisabledOnInitialization" + ], + "type": "object" + }, + "IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AssetPropertyValue" + } + }, + "type": "object" + }, + "IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "minLength": 1, + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "SimpleRule": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "enum": [ + "GREATER", + "GREATER_OR_EQUAL", + "LESS", + "LESS_OR_EQUAL", + "EQUAL", + "NOT_EQUAL" + ], + "type": "string" + }, + "InputProperty": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Threshold": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "InputProperty", + "ComparisonOperator", + "Threshold" + ], + "type": "object" + }, + "Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TargetArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "QueueUrl": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iotevents:CreateAlarmModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeAlarmModel", + "iotevents:ListTagsForResource", + "iotevents:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "iotevents:DeleteAlarmModel", + "iotevents:DescribeAlarmModel" + ] + }, + "list": { + "permissions": [ + "iotevents:ListAlarmModels" + ] + }, + "read": { + "permissions": [ + "iotevents:DescribeAlarmModel", + "iotevents:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotevents:UpdateAlarmModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeAlarmModel", + "iotevents:ListTagsForResource", + "iotevents:UntagResource", + "iotevents:TagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/AlarmModelName" + ], + "properties": { + "AlarmCapabilities": { + "$ref": "#/definitions/AlarmCapabilities" + }, + "AlarmEventActions": { + "$ref": "#/definitions/AlarmEventActions" + }, + "AlarmModelDescription": { + "maxLength": 1024, + "type": "string" + }, + "AlarmModelName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "AlarmRule": { + "$ref": "#/definitions/AlarmRule" + }, + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w\\- ]+`)|([\\w\\-]+)))*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Severity": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "RoleArn", + "AlarmRule" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "iotevents:UntagResource", + "iotevents:TagResource", + "iotevents:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoTEvents::AlarmModel" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-detectormodel.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-detectormodel.json new file mode 100644 index 0000000000..518c9ec5ca --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-detectormodel.json @@ -0,0 +1,654 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DetectorModelName", + "/properties/Key" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "ClearTimer": { + "$ref": "#/definitions/ClearTimer" + }, + "DynamoDB": { + "$ref": "#/definitions/DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/Lambda" + }, + "ResetTimer": { + "$ref": "#/definitions/ResetTimer" + }, + "SetTimer": { + "$ref": "#/definitions/SetTimer" + }, + "SetVariable": { + "$ref": "#/definitions/SetVariable" + }, + "Sns": { + "$ref": "#/definitions/Sns" + }, + "Sqs": { + "$ref": "#/definitions/Sqs" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "ClearTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "DetectorModelDefinition": { + "additionalProperties": false, + "properties": { + "InitialStateName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "States": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/State" + }, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "States", + "InitialStateName" + ], + "type": "object" + }, + "DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "Event": { + "additionalProperties": false, + "properties": { + "Actions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": false + }, + "Condition": { + "maxLength": 512, + "type": "string" + }, + "EventName": { + "maxLength": 128, + "type": "string" + } + }, + "required": [ + "EventName" + ], + "type": "object" + }, + "Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "Separator": { + "pattern": "([\\n\\t])|(\\r\\n)|(,)", + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AssetPropertyValue" + } + }, + "required": [ + "PropertyValue" + ], + "type": "object" + }, + "IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "OnEnter": { + "additionalProperties": false, + "properties": { + "Events": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Event" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OnExit": { + "additionalProperties": false, + "properties": { + "Events": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Event" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OnInput": { + "additionalProperties": false, + "properties": { + "Events": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Event" + }, + "type": "array", + "uniqueItems": false + }, + "TransitionEvents": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TransitionEvent" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "minLength": 1, + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "ResetTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "SetTimer": { + "additionalProperties": false, + "properties": { + "DurationExpression": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Seconds": { + "maximum": 31622400, + "minimum": 60, + "type": "integer" + }, + "TimerName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "SetVariable": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "VariableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + } + }, + "required": [ + "Value", + "VariableName" + ], + "type": "object" + }, + "Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TargetArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "QueueUrl": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "State": { + "additionalProperties": false, + "properties": { + "OnEnter": { + "$ref": "#/definitions/OnEnter" + }, + "OnExit": { + "$ref": "#/definitions/OnExit" + }, + "OnInput": { + "$ref": "#/definitions/OnInput" + }, + "StateName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "StateName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TransitionEvent": { + "additionalProperties": false, + "properties": { + "Actions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": false + }, + "Condition": { + "maxLength": 512, + "type": "string" + }, + "EventName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NextState": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Condition", + "EventName", + "NextState" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iotevents:CreateDetectorModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeDetectorModel", + "iotevents:ListTagsForResource", + "iotevents:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "iotevents:DeleteDetectorModel", + "iotevents:DescribeDetectorModel" + ] + }, + "list": { + "permissions": [ + "iotevents:ListDetectorModels" + ] + }, + "read": { + "permissions": [ + "iotevents:DescribeDetectorModel", + "iotevents:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotevents:UpdateDetectorModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeDetectorModel", + "iotevents:ListTagsForResource", + "iotevents:UntagResource", + "iotevents:TagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DetectorModelName" + ], + "properties": { + "DetectorModelDefinition": { + "$ref": "#/definitions/DetectorModelDefinition" + }, + "DetectorModelDescription": { + "maxLength": 1024, + "type": "string" + }, + "DetectorModelName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "EvaluationMethod": { + "enum": [ + "BATCH", + "SERIAL" + ], + "type": "string" + }, + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w\\- ]+`)|([\\w\\-]+)))*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "DetectorModelDefinition", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "iotevents:UntagResource", + "iotevents:TagResource", + "iotevents:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoTEvents::DetectorModel" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-input.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-input.json new file mode 100644 index 0000000000..7213226724 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotevents-input.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InputName" + ], + "definitions": { + "Attribute": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "maxLength": 128, + "minLength": 1, + "pattern": "^((`[a-zA-Z0-9_\\- ]+`)|([a-zA-Z0-9_\\-]+))(\\.((`[a-zA-Z0-9_\\- ]+`)|([a-zA-Z0-9_\\-]+)))*$", + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "InputDefinition": { + "additionalProperties": false, + "properties": { + "Attributes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Attribute" + }, + "maxItems": 200, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Attributes" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iotevents:CreateInput", + "iotevents:TagResource", + "iotevents:DescribeInput", + "iotevents:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iotevents:DeleteInput", + "iotevents:DescribeInput" + ] + }, + "list": { + "permissions": [ + "iotevents:ListInputs" + ] + }, + "read": { + "permissions": [ + "iotevents:DescribeInput", + "iotevents:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotevents:UpdateInput", + "iotevents:DescribeInput", + "iotevents:ListTagsForResource", + "iotevents:UntagResource", + "iotevents:TagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/InputName" + ], + "properties": { + "InputDefinition": { + "$ref": "#/definitions/InputDefinition" + }, + "InputDescription": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "InputName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "InputDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotevents.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "iotevents:UntagResource", + "iotevents:TagResource", + "iotevents:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoTEvents::Input" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 da6a1a255c..8590cfa61b 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -458,6 +458,11 @@ "AWS::MSK::Configuration", "AWS::MSK::VpcConnection", "AWS::MWAA::Environment", + "AWS::Neptune::DBCluster", + "AWS::Neptune::DBClusterParameterGroup", + "AWS::Neptune::DBParameterGroup", + "AWS::Neptune::DBSubnetGroup", + "AWS::Neptune::EventSubscription", "AWS::NetworkFirewall::Firewall", "AWS::NetworkFirewall::FirewallPolicy", "AWS::NetworkFirewall::LoggingConfiguration", @@ -532,6 +537,8 @@ "AWS::Redshift::EndpointAuthorization", "AWS::Redshift::EventSubscription", "AWS::Redshift::ScheduledAction", + "AWS::RedshiftServerless::Namespace", + "AWS::RedshiftServerless::Workgroup", "AWS::ResourceExplorer2::DefaultViewAssociation", "AWS::ResourceExplorer2::Index", "AWS::ResourceExplorer2::View", @@ -720,7 +727,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -871,7 +877,6 @@ "aws-ec2-clientvpnendpoint.json", "aws-ec2-clientvpnroute.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -881,7 +886,7 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -896,6 +901,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-networkperformancemetricsubscription.json", @@ -903,11 +909,11 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -941,13 +947,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-vpngateway.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -982,7 +986,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1075,6 +1078,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1110,6 +1114,9 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", + "aws-neptune-dbcluster.json", + "aws-neptune-dbsubnetgroup.json", + "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1131,7 +1138,6 @@ "aws-networkmanager-vpcattachment.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -1147,12 +1153,9 @@ "aws-pcaconnectorad-template.json", "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-pipes-pipe.json", - "aws-quicksight-analysis.json", - "aws-quicksight-dashboard.json", "aws-quicksight-dataset.json", "aws-quicksight-datasource.json", "aws-quicksight-refreshschedule.json", - "aws-quicksight-template.json", "aws-quicksight-theme.json", "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", @@ -1168,6 +1171,7 @@ "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", @@ -1179,6 +1183,8 @@ "aws-redshift-endpointauthorization.json", "aws-redshift-eventsubscription.json", "aws-redshift-scheduledaction.json", + "aws-redshiftserverless-namespace.json", + "aws-redshiftserverless-workgroup.json", "aws-resourceexplorer2-defaultviewassociation.json", "aws-resourceexplorer2-index.json", "aws-resourceexplorer2-view.json", @@ -1246,7 +1252,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", @@ -1280,6 +1285,7 @@ "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackkeypair.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-internetgateway.json similarity index 50% rename from src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackkeypair.json rename to src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-internetgateway.json index f80020c4a8..f4b93a4397 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackkeypair.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-internetgateway.json @@ -1,9 +1,5 @@ { "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PublicKeyMaterial", - "/properties/Name" - ], "definitions": { "Tag": { "additionalProperties": false, @@ -15,7 +11,6 @@ }, "Value": { "maxLength": 256, - "minLength": 1, "type": "string" } }, @@ -29,56 +24,40 @@ "handlers": { "create": { "permissions": [ - "ivs:ImportPlaybackKeyPair", - "ivs:TagResource" + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" ] }, "delete": { "permissions": [ - "ivs:DeletePlaybackKeyPair", - "ivs:UntagResource" + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" ] }, "list": { "permissions": [ - "ivs:ListPlaybackKeyPairs", - "ivs:ListTagsForResource" + "ec2:DescribeInternetGateways" ] }, "read": { "permissions": [ - "ivs:GetPlaybackKeyPair" + "ec2:DescribeInternetGateways" ] }, "update": { "permissions": [ - "ivs:GetPlaybackKeyPair", - "ivs:ListTagsForResource", - "ivs:UntagResource", - "ivs:TagResource" + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" ] } }, "primaryIdentifier": [ - "/properties/Arn" + "/properties/InternetGatewayId" ], "properties": { - "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$", - "type": "string" - }, - "Fingerprint": { - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", - "type": "string" - }, - "PublicKeyMaterial": { + "InternetGatewayId": { "type": "string" }, "Tags": { @@ -86,25 +65,20 @@ "items": { "$ref": "#/definitions/Tag" }, - "maxItems": 50, "type": "array", - "uniqueItems": true + "uniqueItems": false } }, "readOnlyProperties": [ - "/properties/Arn", - "/properties/Fingerprint" + "/properties/InternetGatewayId" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { - "cloudFormationSystemTags": false, + "cloudFormationSystemTags": true, "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, "taggable": true }, - "typeName": "AWS::IVS::PlaybackKeyPair", - "writeOnlyProperties": [ - "/properties/PublicKeyMaterial" - ] + "typeName": "AWS::EC2::InternetGateway" } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbclusterparametergroup.json new file mode 100644 index 0000000000..196677fbf0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbclusterparametergroup.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Family", + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "Parameters", + "Family" + ], + "typeName": "AWS::Neptune::DBClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbparametergroup.json new file mode 100644 index 0000000000..40b22b45e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-neptune-dbparametergroup.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Family", + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "Parameters", + "Family" + ], + "typeName": "AWS::Neptune::DBParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-analysis.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-analysis.json new file mode 100644 index 0000000000..fde8d4ee63 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-analysis.json @@ -0,0 +1,11272 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AnalysisId", + "/properties/AwsAccountId" + ], + "definitions": { + "AggregationFunction": { + "additionalProperties": false, + "properties": { + "AttributeAggregationFunction": { + "$ref": "#/definitions/AttributeAggregationFunction" + }, + "CategoricalAggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "DateAggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "NumericalAggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + } + }, + "type": "object" + }, + "AggregationSortConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SortDirection": { + "$ref": "#/definitions/SortDirection" + } + }, + "required": [ + "Column", + "SortDirection" + ], + "type": "object" + }, + "AllSheetsFilterScopeConfiguration": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AnalysisDefaults": { + "additionalProperties": false, + "properties": { + "DefaultNewSheetConfiguration": { + "$ref": "#/definitions/DefaultNewSheetConfiguration" + } + }, + "required": [ + "DefaultNewSheetConfiguration" + ], + "type": "object" + }, + "AnalysisDefinition": { + "additionalProperties": false, + "properties": { + "AnalysisDefaults": { + "$ref": "#/definitions/AnalysisDefaults" + }, + "CalculatedFields": { + "items": { + "$ref": "#/definitions/CalculatedField" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "ColumnConfigurations": { + "items": { + "$ref": "#/definitions/ColumnConfiguration" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifierDeclarations": { + "items": { + "$ref": "#/definitions/DataSetIdentifierDeclaration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/FilterGroup" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AssetOptions" + }, + "ParameterDeclarations": { + "items": { + "$ref": "#/definitions/ParameterDeclaration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/SheetDefinition" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "DataSetIdentifierDeclarations" + ], + "type": "object" + }, + "AnalysisError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": "\\S", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AnalysisErrorType" + }, + "ViolatedEntities": { + "items": { + "$ref": "#/definitions/Entity" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "AnalysisErrorType": { + "enum": [ + "ACCESS_DENIED", + "SOURCE_NOT_FOUND", + "DATA_SET_NOT_FOUND", + "INTERNAL_FAILURE", + "PARAMETER_VALUE_INCOMPATIBLE", + "PARAMETER_TYPE_INVALID", + "PARAMETER_NOT_FOUND", + "COLUMN_TYPE_MISMATCH", + "COLUMN_GEOGRAPHIC_ROLE_MISMATCH", + "COLUMN_REPLACEMENT_MISSING" + ], + "type": "string" + }, + "AnalysisSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/AnalysisSourceTemplate" + } + }, + "type": "object" + }, + "AnalysisSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/DataSetReference" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AnchorDateConfiguration": { + "additionalProperties": false, + "properties": { + "AnchorOption": { + "$ref": "#/definitions/AnchorOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "AnchorOption": { + "enum": [ + "NOW" + ], + "type": "string" + }, + "ArcAxisConfiguration": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/ArcAxisDisplayRange" + }, + "ReserveRange": { + "default": 0, + "type": "number" + } + }, + "type": "object" + }, + "ArcAxisDisplayRange": { + "additionalProperties": false, + "properties": { + "Max": { + "default": null, + "type": "number" + }, + "Min": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "ArcConfiguration": { + "additionalProperties": false, + "properties": { + "ArcAngle": { + "default": null, + "type": "number" + }, + "ArcThickness": { + "$ref": "#/definitions/ArcThicknessOptions" + } + }, + "type": "object" + }, + "ArcOptions": { + "additionalProperties": false, + "properties": { + "ArcThickness": { + "$ref": "#/definitions/ArcThickness" + } + }, + "type": "object" + }, + "ArcThickness": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ], + "type": "string" + }, + "ArcThicknessOptions": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "AssetOptions": { + "additionalProperties": false, + "properties": { + "Timezone": { + "type": "string" + }, + "WeekStart": { + "$ref": "#/definitions/DayOfTheWeek" + } + }, + "type": "object" + }, + "AttributeAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleAttributeAggregation": { + "$ref": "#/definitions/SimpleAttributeAggregationFunction" + }, + "ValueForMultipleValues": { + "type": "string" + } + }, + "type": "object" + }, + "AxisBinding": { + "enum": [ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ], + "type": "string" + }, + "AxisDataOptions": { + "additionalProperties": false, + "properties": { + "DateAxisOptions": { + "$ref": "#/definitions/DateAxisOptions" + }, + "NumericAxisOptions": { + "$ref": "#/definitions/NumericAxisOptions" + } + }, + "type": "object" + }, + "AxisDisplayDataDrivenRange": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AxisDisplayMinMaxRange": { + "additionalProperties": false, + "properties": { + "Maximum": { + "default": null, + "type": "number" + }, + "Minimum": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AxisOffset": { + "type": "string" + }, + "DataOptions": { + "$ref": "#/definitions/AxisDataOptions" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ScrollbarOptions": { + "$ref": "#/definitions/ScrollBarOptions" + }, + "TickLabelOptions": { + "$ref": "#/definitions/AxisTickLabelOptions" + } + }, + "type": "object" + }, + "AxisDisplayRange": { + "additionalProperties": false, + "properties": { + "DataDriven": { + "$ref": "#/definitions/AxisDisplayDataDrivenRange" + }, + "MinMax": { + "$ref": "#/definitions/AxisDisplayMinMaxRange" + } + }, + "type": "object" + }, + "AxisLabelOptions": { + "additionalProperties": false, + "properties": { + "ApplyTo": { + "$ref": "#/definitions/AxisLabelReferenceOptions" + }, + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "AxisLabelReferenceOptions": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "AxisLinearScale": { + "additionalProperties": false, + "properties": { + "StepCount": { + "default": null, + "type": "number" + }, + "StepSize": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisLogarithmicScale": { + "additionalProperties": false, + "properties": { + "Base": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisScale": { + "additionalProperties": false, + "properties": { + "Linear": { + "$ref": "#/definitions/AxisLinearScale" + }, + "Logarithmic": { + "$ref": "#/definitions/AxisLogarithmicScale" + } + }, + "type": "object" + }, + "AxisTickLabelOptions": { + "additionalProperties": false, + "properties": { + "LabelOptions": { + "$ref": "#/definitions/LabelOptions" + }, + "RotationAngle": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "BarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Orientation": { + "$ref": "#/definitions/BarChartOrientation" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/BarChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BarChartFieldWells": { + "additionalProperties": false, + "properties": { + "BarChartAggregatedFieldWells": { + "$ref": "#/definitions/BarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "BarChartOrientation": { + "enum": [ + "HORIZONTAL", + "VERTICAL" + ], + "type": "string" + }, + "BarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "BarsArrangement": { + "enum": [ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ], + "type": "string" + }, + "BaseMapStyleType": { + "enum": [ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ], + "type": "string" + }, + "BinCountOptions": { + "additionalProperties": false, + "properties": { + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BinWidthOptions": { + "additionalProperties": false, + "properties": { + "BinCountLimit": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BodySectionConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/BodySectionContent" + }, + "PageBreakConfiguration": { + "$ref": "#/definitions/SectionPageBreakConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Content", + "SectionId" + ], + "type": "object" + }, + "BodySectionContent": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + } + }, + "type": "object" + }, + "BoxPlotAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BoxPlotChartConfiguration": { + "additionalProperties": false, + "properties": { + "BoxPlotOptions": { + "$ref": "#/definitions/BoxPlotOptions" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BoxPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SortConfiguration": { + "$ref": "#/definitions/BoxPlotSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BoxPlotFieldWells": { + "additionalProperties": false, + "properties": { + "BoxPlotAggregatedFieldWells": { + "$ref": "#/definitions/BoxPlotAggregatedFieldWells" + } + }, + "type": "object" + }, + "BoxPlotFillStyle": { + "enum": [ + "SOLID", + "TRANSPARENT" + ], + "type": "string" + }, + "BoxPlotOptions": { + "additionalProperties": false, + "properties": { + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "StyleOptions": { + "$ref": "#/definitions/BoxPlotStyleOptions" + } + }, + "type": "object" + }, + "BoxPlotSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + } + }, + "type": "object" + }, + "BoxPlotStyleOptions": { + "additionalProperties": false, + "properties": { + "FillStyle": { + "$ref": "#/definitions/BoxPlotFillStyle" + } + }, + "type": "object" + }, + "BoxPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BoxPlotChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "CalculatedField": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 32000, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 127, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "Expression", + "Name" + ], + "type": "object" + }, + "CalculatedMeasureField": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression", + "FieldId" + ], + "type": "object" + }, + "CascadingControlConfiguration": { + "additionalProperties": false, + "properties": { + "SourceControls": { + "items": { + "$ref": "#/definitions/CascadingControlSource" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CascadingControlSource": { + "additionalProperties": false, + "properties": { + "ColumnToMatch": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceSheetControlId": { + "type": "string" + } + }, + "type": "object" + }, + "CategoricalAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT" + ], + "type": "string" + }, + "CategoricalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoricalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoryDrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "CategoryValues", + "Column" + ], + "type": "object" + }, + "CategoryFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "Column", + "Configuration", + "FilterId" + ], + "type": "object" + }, + "CategoryFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CustomFilterConfiguration": { + "$ref": "#/definitions/CustomFilterConfiguration" + }, + "CustomFilterListConfiguration": { + "$ref": "#/definitions/CustomFilterListConfiguration" + }, + "FilterListConfiguration": { + "$ref": "#/definitions/FilterListConfiguration" + } + }, + "type": "object" + }, + "CategoryFilterMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "type": "string" + }, + "CategoryFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "ChartAxisLabelOptions": { + "additionalProperties": false, + "properties": { + "AxisLabelOptions": { + "items": { + "$ref": "#/definitions/AxisLabelOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ClusterMarker": { + "additionalProperties": false, + "properties": { + "SimpleClusterMarker": { + "$ref": "#/definitions/SimpleClusterMarker" + } + }, + "type": "object" + }, + "ClusterMarkerConfiguration": { + "additionalProperties": false, + "properties": { + "ClusterMarker": { + "$ref": "#/definitions/ClusterMarker" + } + }, + "type": "object" + }, + "ColorFillType": { + "enum": [ + "DISCRETE", + "GRADIENT" + ], + "type": "string" + }, + "ColorScale": { + "additionalProperties": false, + "properties": { + "ColorFillType": { + "$ref": "#/definitions/ColorFillType" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DataColor" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "NullValueColor": { + "$ref": "#/definitions/DataColor" + } + }, + "required": [ + "ColorFillType", + "Colors" + ], + "type": "object" + }, + "ColorsConfiguration": { + "additionalProperties": false, + "properties": { + "CustomColors": { + "items": { + "$ref": "#/definitions/CustomColor" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ColorsConfiguration": { + "$ref": "#/definitions/ColorsConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + }, + "Role": { + "$ref": "#/definitions/ColumnRole" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ColumnHierarchy": { + "additionalProperties": false, + "properties": { + "DateTimeHierarchy": { + "$ref": "#/definitions/DateTimeHierarchy" + }, + "ExplicitHierarchy": { + "$ref": "#/definitions/ExplicitHierarchy" + }, + "PredefinedHierarchy": { + "$ref": "#/definitions/PredefinedHierarchy" + } + }, + "type": "object" + }, + "ColumnIdentifier": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ColumnName", + "DataSetIdentifier" + ], + "type": "object" + }, + "ColumnRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnSort": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortBy": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "Direction", + "SortBy" + ], + "type": "object" + }, + "ColumnTooltipItem": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ComboChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "BarValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "LineValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ComboChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "LineDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/ComboChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "ComboChartFieldWells": { + "additionalProperties": false, + "properties": { + "ComboChartAggregatedFieldWells": { + "$ref": "#/definitions/ComboChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "ComboChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ComboChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ComparisonConfiguration": { + "additionalProperties": false, + "properties": { + "ComparisonFormat": { + "$ref": "#/definitions/ComparisonFormatConfiguration" + }, + "ComparisonMethod": { + "$ref": "#/definitions/ComparisonMethod" + } + }, + "type": "object" + }, + "ComparisonFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "ComparisonMethod": { + "enum": [ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ], + "type": "string" + }, + "Computation": { + "additionalProperties": false, + "properties": { + "Forecast": { + "$ref": "#/definitions/ForecastComputation" + }, + "GrowthRate": { + "$ref": "#/definitions/GrowthRateComputation" + }, + "MaximumMinimum": { + "$ref": "#/definitions/MaximumMinimumComputation" + }, + "MetricComparison": { + "$ref": "#/definitions/MetricComparisonComputation" + }, + "PeriodOverPeriod": { + "$ref": "#/definitions/PeriodOverPeriodComputation" + }, + "PeriodToDate": { + "$ref": "#/definitions/PeriodToDateComputation" + }, + "TopBottomMovers": { + "$ref": "#/definitions/TopBottomMoversComputation" + }, + "TopBottomRanked": { + "$ref": "#/definitions/TopBottomRankedComputation" + }, + "TotalAggregation": { + "$ref": "#/definitions/TotalAggregationComputation" + }, + "UniqueValues": { + "$ref": "#/definitions/UniqueValuesComputation" + } + }, + "type": "object" + }, + "ConditionalFormattingColor": { + "additionalProperties": false, + "properties": { + "Gradient": { + "$ref": "#/definitions/ConditionalFormattingGradientColor" + }, + "Solid": { + "$ref": "#/definitions/ConditionalFormattingSolidColor" + } + }, + "type": "object" + }, + "ConditionalFormattingCustomIconCondition": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DisplayConfiguration": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayConfiguration" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconOptions": { + "$ref": "#/definitions/ConditionalFormattingCustomIconOptions" + } + }, + "required": [ + "Expression", + "IconOptions" + ], + "type": "object" + }, + "ConditionalFormattingCustomIconOptions": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/Icon" + }, + "UnicodeIcon": { + "pattern": "^[^\\u0000-\\u00FF]$", + "type": "string" + } + }, + "type": "object" + }, + "ConditionalFormattingGradientColor": { + "additionalProperties": false, + "properties": { + "Color": { + "$ref": "#/definitions/GradientColor" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Color", + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIcon": { + "additionalProperties": false, + "properties": { + "CustomCondition": { + "$ref": "#/definitions/ConditionalFormattingCustomIconCondition" + }, + "IconSet": { + "$ref": "#/definitions/ConditionalFormattingIconSet" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayConfiguration": { + "additionalProperties": false, + "properties": { + "IconDisplayOption": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayOption" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayOption": { + "enum": [ + "ICON_ONLY" + ], + "type": "string" + }, + "ConditionalFormattingIconSet": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconSetType": { + "$ref": "#/definitions/ConditionalFormattingIconSetType" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIconSetType": { + "enum": [ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ], + "type": "string" + }, + "ConditionalFormattingSolidColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ContributionAnalysisDefault": { + "additionalProperties": false, + "properties": { + "ContributorDimensions": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "MeasureFieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ContributorDimensions", + "MeasureFieldId" + ], + "type": "object" + }, + "CrossDatasetTypes": { + "enum": [ + "ALL_DATASETS", + "SINGLE_DATASET" + ], + "type": "string" + }, + "CurrencyDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Symbol": { + "pattern": "^[A-Z]{3}$", + "type": "string" + } + }, + "type": "object" + }, + "CustomActionFilterOperation": { + "additionalProperties": false, + "properties": { + "SelectedFieldsConfiguration": { + "$ref": "#/definitions/FilterOperationSelectedFieldsConfiguration" + }, + "TargetVisualsConfiguration": { + "$ref": "#/definitions/FilterOperationTargetVisualsConfiguration" + } + }, + "required": [ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "type": "object" + }, + "CustomActionNavigationOperation": { + "additionalProperties": false, + "properties": { + "LocalNavigationConfiguration": { + "$ref": "#/definitions/LocalNavigationConfiguration" + } + }, + "type": "object" + }, + "CustomActionSetParametersOperation": { + "additionalProperties": false, + "properties": { + "ParameterValueConfigurations": { + "items": { + "$ref": "#/definitions/SetParameterValueConfiguration" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ParameterValueConfigurations" + ], + "type": "object" + }, + "CustomActionURLOperation": { + "additionalProperties": false, + "properties": { + "URLTarget": { + "$ref": "#/definitions/URLTargetConfiguration" + }, + "URLTemplate": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "URLTarget", + "URLTemplate" + ], + "type": "object" + }, + "CustomColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "SpecialValue": { + "$ref": "#/definitions/SpecialValue" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "CustomContentConfiguration": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/CustomContentType" + }, + "ContentUrl": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ImageScaling": { + "$ref": "#/definitions/CustomContentImageScalingConfiguration" + } + }, + "type": "object" + }, + "CustomContentImageScalingConfiguration": { + "enum": [ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ], + "type": "string" + }, + "CustomContentType": { + "enum": [ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ], + "type": "string" + }, + "CustomContentVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/CustomContentConfiguration" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "CustomFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValue": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomFilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomNarrativeOptions": { + "additionalProperties": false, + "properties": { + "Narrative": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Narrative" + ], + "type": "object" + }, + "CustomParameterValues": { + "additionalProperties": false, + "properties": { + "DateTimeValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "DecimalValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "IntegerValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "StringValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CustomValuesConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValues": { + "$ref": "#/definitions/CustomParameterValues" + }, + "IncludeNullValue": { + "type": "boolean" + } + }, + "required": [ + "CustomValues" + ], + "type": "object" + }, + "DataBarsOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "NegativeColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "DataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "DataFieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "DataLabelContent": { + "enum": [ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ], + "type": "string" + }, + "DataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DataLabelTypes": { + "items": { + "$ref": "#/definitions/DataLabelType" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelContent": { + "$ref": "#/definitions/DataLabelContent" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Overlap": { + "$ref": "#/definitions/DataLabelOverlap" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataLabelOverlap": { + "enum": [ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ], + "type": "string" + }, + "DataLabelPosition": { + "enum": [ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ], + "type": "string" + }, + "DataLabelType": { + "additionalProperties": false, + "properties": { + "DataPathLabelType": { + "$ref": "#/definitions/DataPathLabelType" + }, + "FieldLabelType": { + "$ref": "#/definitions/FieldLabelType" + }, + "MaximumLabelType": { + "$ref": "#/definitions/MaximumLabelType" + }, + "MinimumLabelType": { + "$ref": "#/definitions/MinimumLabelType" + }, + "RangeEndsLabelType": { + "$ref": "#/definitions/RangeEndsLabelType" + } + }, + "type": "object" + }, + "DataPathColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Element": { + "$ref": "#/definitions/DataPathValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Color", + "Element" + ], + "type": "object" + }, + "DataPathLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataPathSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortPaths": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Direction", + "SortPaths" + ], + "type": "object" + }, + "DataPathType": { + "additionalProperties": false, + "properties": { + "PivotTableDataPathType": { + "$ref": "#/definitions/PivotTableDataPathType" + } + }, + "type": "object" + }, + "DataPathValue": { + "additionalProperties": false, + "properties": { + "DataPathType": { + "$ref": "#/definitions/DataPathType" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DataSetIdentifierDeclaration": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "Identifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetArn", + "Identifier" + ], + "type": "object" + }, + "DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "pattern": "\\S", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "DateAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ], + "type": "string" + }, + "DateAxisOptions": { + "additionalProperties": false, + "properties": { + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DateDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DateGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateTimeDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateTimeFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "DateTimeHierarchy": { + "additionalProperties": false, + "properties": { + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "HierarchyId" + ], + "type": "object" + }, + "DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DateTimeParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DateTimeDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DateTimeValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "DateTimePickerControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DateTimeValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "format": "date-time", + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DayOfTheWeek": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "type": "string" + }, + "DecimalDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DecimalParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DecimalDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DecimalValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "DecimalPlacesConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlaces": { + "maximum": 20, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "DecimalPlaces" + ], + "type": "object" + }, + "DecimalValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DefaultDateTimePickerControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "type": "object" + }, + "DefaultFilterControlConfiguration": { + "additionalProperties": false, + "properties": { + "ControlOptions": { + "$ref": "#/definitions/DefaultFilterControlOptions" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ControlOptions", + "Title" + ], + "type": "object" + }, + "DefaultFilterControlOptions": { + "additionalProperties": false, + "properties": { + "DefaultDateTimePickerOptions": { + "$ref": "#/definitions/DefaultDateTimePickerControlOptions" + }, + "DefaultDropdownOptions": { + "$ref": "#/definitions/DefaultFilterDropDownControlOptions" + }, + "DefaultListOptions": { + "$ref": "#/definitions/DefaultFilterListControlOptions" + }, + "DefaultRelativeDateTimeOptions": { + "$ref": "#/definitions/DefaultRelativeDateTimeControlOptions" + }, + "DefaultSliderOptions": { + "$ref": "#/definitions/DefaultSliderControlOptions" + }, + "DefaultTextAreaOptions": { + "$ref": "#/definitions/DefaultTextAreaControlOptions" + }, + "DefaultTextFieldOptions": { + "$ref": "#/definitions/DefaultTextFieldControlOptions" + } + }, + "type": "object" + }, + "DefaultFilterDropDownControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "type": "object" + }, + "DefaultFilterListControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "type": "object" + }, + "DefaultFreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultGridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultInteractiveLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeForm": { + "$ref": "#/definitions/DefaultFreeFormLayoutConfiguration" + }, + "Grid": { + "$ref": "#/definitions/DefaultGridLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultNewSheetConfiguration": { + "additionalProperties": false, + "properties": { + "InteractiveLayoutConfiguration": { + "$ref": "#/definitions/DefaultInteractiveLayoutConfiguration" + }, + "PaginatedLayoutConfiguration": { + "$ref": "#/definitions/DefaultPaginatedLayoutConfiguration" + }, + "SheetContentType": { + "$ref": "#/definitions/SheetContentType" + } + }, + "type": "object" + }, + "DefaultPaginatedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "SectionBased": { + "$ref": "#/definitions/DefaultSectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultRelativeDateTimeControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + } + }, + "type": "object" + }, + "DefaultSectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultSliderControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "StepSize" + ], + "type": "object" + }, + "DefaultTextAreaControlOptions": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + } + }, + "type": "object" + }, + "DefaultTextFieldControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + } + }, + "type": "object" + }, + "DestinationParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValuesConfiguration": { + "$ref": "#/definitions/CustomValuesConfiguration" + }, + "SelectAllValueOptions": { + "$ref": "#/definitions/SelectAllValueOptions" + }, + "SourceColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceField": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SourceParameterName": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionField": { + "additionalProperties": false, + "properties": { + "CategoricalDimensionField": { + "$ref": "#/definitions/CategoricalDimensionField" + }, + "DateDimensionField": { + "$ref": "#/definitions/DateDimensionField" + }, + "NumericalDimensionField": { + "$ref": "#/definitions/NumericalDimensionField" + } + }, + "type": "object" + }, + "DonutCenterOptions": { + "additionalProperties": false, + "properties": { + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DonutOptions": { + "additionalProperties": false, + "properties": { + "ArcOptions": { + "$ref": "#/definitions/ArcOptions" + }, + "DonutCenterOptions": { + "$ref": "#/definitions/DonutCenterOptions" + } + }, + "type": "object" + }, + "DrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryDrillDownFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityDrillDownFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeDrillDownFilter" + } + }, + "type": "object" + }, + "DropDownControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DynamicDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValueColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "GroupNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "UserNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "DefaultValueColumn" + ], + "type": "object" + }, + "EmptyVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "Entity": { + "additionalProperties": false, + "properties": { + "Path": { + "pattern": "\\S", + "type": "string" + } + }, + "type": "object" + }, + "ExcludePeriodConfiguration": { + "additionalProperties": false, + "properties": { + "Amount": { + "default": null, + "type": "number" + }, + "Granularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "Amount", + "Granularity" + ], + "type": "object" + }, + "ExplicitHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 2, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "FieldBasedTooltip": { + "additionalProperties": false, + "properties": { + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, + "TooltipFields": { + "items": { + "$ref": "#/definitions/TooltipItem" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "TooltipTitleType": { + "$ref": "#/definitions/TooltipTitleType" + } + }, + "type": "object" + }, + "FieldLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "FieldSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Direction", + "FieldId" + ], + "type": "object" + }, + "FieldSortOptions": { + "additionalProperties": false, + "properties": { + "ColumnSort": { + "$ref": "#/definitions/ColumnSort" + }, + "FieldSort": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "FieldTooltipItem": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/FilledMapConditionalFormattingOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "ConditionalFormattingOptions" + ], + "type": "object" + }, + "FilledMapConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Shape": { + "$ref": "#/definitions/FilledMapShapeConditionalFormatting" + } + }, + "required": [ + "Shape" + ], + "type": "object" + }, + "FilledMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/FilledMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/FilledMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "FilledMapFieldWells": { + "additionalProperties": false, + "properties": { + "FilledMapAggregatedFieldWells": { + "$ref": "#/definitions/FilledMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "FilledMapShapeConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Format": { + "$ref": "#/definitions/ShapeConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FilledMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/FilledMapConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/NumericRangeFilter" + }, + "RelativeDatesFilter": { + "$ref": "#/definitions/RelativeDatesFilter" + }, + "TimeEqualityFilter": { + "$ref": "#/definitions/TimeEqualityFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeFilter" + }, + "TopBottomFilter": { + "$ref": "#/definitions/TopBottomFilter" + } + }, + "type": "object" + }, + "FilterControl": { + "additionalProperties": false, + "properties": { + "CrossSheet": { + "$ref": "#/definitions/FilterCrossSheetControl" + }, + "DateTimePicker": { + "$ref": "#/definitions/FilterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/FilterDropDownControl" + }, + "List": { + "$ref": "#/definitions/FilterListControl" + }, + "RelativeDateTime": { + "$ref": "#/definitions/FilterRelativeDateTimeControl" + }, + "Slider": { + "$ref": "#/definitions/FilterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/FilterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/FilterTextFieldControl" + } + }, + "type": "object" + }, + "FilterCrossSheetControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId" + ], + "type": "object" + }, + "FilterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterGroup": { + "additionalProperties": false, + "properties": { + "CrossDataset": { + "$ref": "#/definitions/CrossDatasetTypes" + }, + "FilterGroupId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "ScopeConfiguration": { + "$ref": "#/definitions/FilterScopeConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "CrossDataset", + "FilterGroupId", + "Filters", + "ScopeConfiguration" + ], + "type": "object" + }, + "FilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator" + ], + "type": "object" + }, + "FilterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterNullOption": { + "enum": [ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ], + "type": "string" + }, + "FilterOperationSelectedFieldsConfiguration": { + "additionalProperties": false, + "properties": { + "SelectedColumns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "$ref": "#/definitions/SelectedFieldOptions" + }, + "SelectedFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "FilterOperationTargetVisualsConfiguration": { + "additionalProperties": false, + "properties": { + "SameSheetTargetVisualConfiguration": { + "$ref": "#/definitions/SameSheetTargetVisualConfiguration" + } + }, + "type": "object" + }, + "FilterRelativeDateTimeControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "AllSheets": { + "$ref": "#/definitions/AllSheetsFilterScopeConfiguration" + }, + "SelectedSheets": { + "$ref": "#/definitions/SelectedSheetsFilterScopeConfiguration" + } + }, + "type": "object" + }, + "FilterSelectableValues": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "FilterControlId", + "MaximumValue", + "MinimumValue", + "SourceFilterId", + "StepSize", + "Title" + ], + "type": "object" + }, + "FilterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterVisualScope": { + "enum": [ + "ALL_VISUALS", + "SELECTED_VISUALS" + ], + "type": "string" + }, + "FontConfiguration": { + "additionalProperties": false, + "properties": { + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontDecoration": { + "$ref": "#/definitions/FontDecoration" + }, + "FontSize": { + "$ref": "#/definitions/FontSize" + }, + "FontStyle": { + "$ref": "#/definitions/FontStyle" + }, + "FontWeight": { + "$ref": "#/definitions/FontWeight" + } + }, + "type": "object" + }, + "FontDecoration": { + "enum": [ + "UNDERLINE", + "NONE" + ], + "type": "string" + }, + "FontSize": { + "additionalProperties": false, + "properties": { + "Relative": { + "$ref": "#/definitions/RelativeFontSize" + } + }, + "type": "object" + }, + "FontStyle": { + "enum": [ + "NORMAL", + "ITALIC" + ], + "type": "string" + }, + "FontWeight": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/FontWeightName" + } + }, + "type": "object" + }, + "FontWeightName": { + "enum": [ + "NORMAL", + "BOLD" + ], + "type": "string" + }, + "ForecastComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "CustomSeasonalityValue": { + "default": null, + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "LowerBoundary": { + "default": null, + "type": "number" + }, + "Name": { + "type": "string" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "$ref": "#/definitions/ForecastComputationSeasonality" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "UpperBoundary": { + "default": null, + "type": "number" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ForecastComputationSeasonality": { + "enum": [ + "AUTOMATIC", + "CUSTOM" + ], + "type": "string" + }, + "ForecastConfiguration": { + "additionalProperties": false, + "properties": { + "ForecastProperties": { + "$ref": "#/definitions/TimeBasedForecastProperties" + }, + "Scenario": { + "$ref": "#/definitions/ForecastScenario" + } + }, + "type": "object" + }, + "ForecastScenario": { + "additionalProperties": false, + "properties": { + "WhatIfPointScenario": { + "$ref": "#/definitions/WhatIfPointScenario" + }, + "WhatIfRangeScenario": { + "$ref": "#/definitions/WhatIfRangeScenario" + } + }, + "type": "object" + }, + "FormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "NumberFormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "StringFormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "type": "object" + }, + "FreeFormLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "FreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FreeFormLayoutElement": { + "additionalProperties": false, + "properties": { + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "BorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "Height": { + "type": "string" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "RenderingRules": { + "items": { + "$ref": "#/definitions/SheetElementRenderingRule" + }, + "maxItems": 10000, + "minItems": 0, + "type": "array" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + }, + "XAxisLocation": { + "type": "string" + }, + "YAxisLocation": { + "type": "string" + } + }, + "required": [ + "ElementId", + "ElementType", + "Height", + "Width", + "XAxisLocation", + "YAxisLocation" + ], + "type": "object" + }, + "FreeFormLayoutElementBackgroundStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutElementBorderStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "type": "string" + } + }, + "required": [ + "OptimizedViewPortWidth" + ], + "type": "object" + }, + "FreeFormSectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FunnelChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabelOptions": { + "$ref": "#/definitions/FunnelChartDataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/FunnelChartFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/FunnelChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "FunnelChartDataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureDataLabelStyle": { + "$ref": "#/definitions/FunnelChartMeasureDataLabelStyle" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FunnelChartFieldWells": { + "additionalProperties": false, + "properties": { + "FunnelChartAggregatedFieldWells": { + "$ref": "#/definitions/FunnelChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "FunnelChartMeasureDataLabelStyle": { + "enum": [ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ], + "type": "string" + }, + "FunnelChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FunnelChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GaugeChartArcConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/GaugeChartConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/GaugeChartArcConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/GaugeChartPrimaryValueConditionalFormatting" + } + }, + "type": "object" + }, + "GaugeChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/GaugeChartFieldWells" + }, + "GaugeChartOptions": { + "$ref": "#/definitions/GaugeChartOptions" + }, + "TooltipOptions": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "GaugeChartFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartOptions": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/ArcConfiguration" + }, + "ArcAxis": { + "$ref": "#/definitions/ArcAxisConfiguration" + }, + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "GaugeChartPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GaugeChartConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/GaugeChartConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialCoordinateBounds": { + "additionalProperties": false, + "properties": { + "East": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + }, + "North": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "South": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "West": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + } + }, + "required": [ + "East", + "North", + "South", + "West" + ], + "type": "object" + }, + "GeospatialHeatmapColorScale": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/GeospatialHeatmapDataColor" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialHeatmapConfiguration": { + "additionalProperties": false, + "properties": { + "HeatmapColor": { + "$ref": "#/definitions/GeospatialHeatmapColorScale" + } + }, + "type": "object" + }, + "GeospatialHeatmapDataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "GeospatialMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/GeospatialMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "PointStyleOptions": { + "$ref": "#/definitions/GeospatialPointStyleOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "GeospatialMapFieldWells": { + "additionalProperties": false, + "properties": { + "GeospatialMapAggregatedFieldWells": { + "$ref": "#/definitions/GeospatialMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "GeospatialMapStyleOptions": { + "additionalProperties": false, + "properties": { + "BaseMapStyle": { + "$ref": "#/definitions/BaseMapStyleType" + } + }, + "type": "object" + }, + "GeospatialMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GeospatialMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialPointStyleOptions": { + "additionalProperties": false, + "properties": { + "ClusterMarkerConfiguration": { + "$ref": "#/definitions/ClusterMarkerConfiguration" + }, + "HeatmapConfiguration": { + "$ref": "#/definitions/GeospatialHeatmapConfiguration" + }, + "SelectedPointStyle": { + "$ref": "#/definitions/GeospatialSelectedPointStyle" + } + }, + "type": "object" + }, + "GeospatialSelectedPointStyle": { + "enum": [ + "POINT", + "CLUSTER", + "HEATMAP" + ], + "type": "string" + }, + "GeospatialWindowOptions": { + "additionalProperties": false, + "properties": { + "Bounds": { + "$ref": "#/definitions/GeospatialCoordinateBounds" + }, + "MapZoomMode": { + "$ref": "#/definitions/MapZoomMode" + } + }, + "type": "object" + }, + "GlobalTableBorderOptions": { + "additionalProperties": false, + "properties": { + "SideSpecificBorder": { + "$ref": "#/definitions/TableSideBorderOptions" + }, + "UniformBorder": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "GradientColor": { + "additionalProperties": false, + "properties": { + "Stops": { + "items": { + "$ref": "#/definitions/GradientStop" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GradientStop": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + }, + "GradientOffset": { + "default": 0, + "type": "number" + } + }, + "required": [ + "GradientOffset" + ], + "type": "object" + }, + "GridLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "GridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/GridLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "GridLayoutElement": { + "additionalProperties": false, + "properties": { + "ColumnIndex": { + "maximum": 35, + "minimum": 0, + "type": "number" + }, + "ColumnSpan": { + "maximum": 36, + "minimum": 1, + "type": "number" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "RowIndex": { + "maximum": 9009, + "minimum": 0, + "type": "number" + }, + "RowSpan": { + "maximum": 21, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "ColumnSpan", + "ElementId", + "ElementType", + "RowSpan" + ], + "type": "object" + }, + "GridLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "type": "string" + }, + "ResizeOption": { + "$ref": "#/definitions/ResizeOption" + } + }, + "required": [ + "ResizeOption" + ], + "type": "object" + }, + "GrowthRateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodSize": { + "default": 0, + "maximum": 52, + "minimum": 2, + "type": "number" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "HeaderFooterSectionConfiguration": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Layout", + "SectionId" + ], + "type": "object" + }, + "HeatMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "ColumnLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HeatMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "RowLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/HeatMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "HeatMapFieldWells": { + "additionalProperties": false, + "properties": { + "HeatMapAggregatedFieldWells": { + "$ref": "#/definitions/HeatMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "HeatMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "HeatMapColumnItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapColumnSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "HeatMapRowItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapRowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HeatMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HistogramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HistogramBinOptions": { + "additionalProperties": false, + "properties": { + "BinCount": { + "$ref": "#/definitions/BinCountOptions" + }, + "BinWidth": { + "$ref": "#/definitions/BinWidthOptions" + }, + "SelectedBinType": { + "$ref": "#/definitions/HistogramBinType" + }, + "StartValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "HistogramBinType": { + "enum": [ + "BIN_COUNT", + "BIN_WIDTH" + ], + "type": "string" + }, + "HistogramConfiguration": { + "additionalProperties": false, + "properties": { + "BinOptions": { + "$ref": "#/definitions/HistogramBinOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HistogramFieldWells" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + } + }, + "type": "object" + }, + "HistogramFieldWells": { + "additionalProperties": false, + "properties": { + "HistogramAggregatedFieldWells": { + "$ref": "#/definitions/HistogramAggregatedFieldWells" + } + }, + "type": "object" + }, + "HistogramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HistogramConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HorizontalTextAlignment": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ], + "type": "string" + }, + "Icon": { + "enum": [ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ], + "type": "string" + }, + "InsightConfiguration": { + "additionalProperties": false, + "properties": { + "Computations": { + "items": { + "$ref": "#/definitions/Computation" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "CustomNarrative": { + "$ref": "#/definitions/CustomNarrativeOptions" + } + }, + "type": "object" + }, + "InsightVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "InsightConfiguration": { + "$ref": "#/definitions/InsightConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "IntegerDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "IntegerParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/IntegerDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/IntegerValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "IntegerValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "ItemsLimitConfiguration": { + "additionalProperties": false, + "properties": { + "ItemsLimit": { + "default": null, + "type": "number" + }, + "OtherCategories": { + "$ref": "#/definitions/OtherCategories" + } + }, + "type": "object" + }, + "KPIActualValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIComparisonValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/KPIConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "ActualValue": { + "$ref": "#/definitions/KPIActualValueConditionalFormatting" + }, + "ComparisonValue": { + "$ref": "#/definitions/KPIComparisonValueConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/KPIPrimaryValueConditionalFormatting" + }, + "ProgressBar": { + "$ref": "#/definitions/KPIProgressBarConditionalFormatting" + } + }, + "type": "object" + }, + "KPIConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/KPIFieldWells" + }, + "KPIOptions": { + "$ref": "#/definitions/KPIOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/KPISortConfiguration" + } + }, + "type": "object" + }, + "KPIFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrendGroups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIOptions": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "ProgressBar": { + "$ref": "#/definitions/ProgressBarOptions" + }, + "SecondaryValue": { + "$ref": "#/definitions/SecondaryValueOptions" + }, + "SecondaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Sparkline": { + "$ref": "#/definitions/KPISparklineOptions" + }, + "TrendArrows": { + "$ref": "#/definitions/TrendArrowOptions" + }, + "VisualLayoutOptions": { + "$ref": "#/definitions/KPIVisualLayoutOptions" + } + }, + "type": "object" + }, + "KPIPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIProgressBarConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPISortConfiguration": { + "additionalProperties": false, + "properties": { + "TrendGroupSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPISparklineOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Type": { + "$ref": "#/definitions/KPISparklineType" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPISparklineType": { + "enum": [ + "LINE", + "AREA" + ], + "type": "string" + }, + "KPIVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/KPIConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/KPIConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "KPIVisualLayoutOptions": { + "additionalProperties": false, + "properties": { + "StandardLayout": { + "$ref": "#/definitions/KPIVisualStandardLayout" + } + }, + "type": "object" + }, + "KPIVisualStandardLayout": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/KPIVisualStandardLayoutType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPIVisualStandardLayoutType": { + "enum": [ + "CLASSIC", + "VERTICAL" + ], + "type": "string" + }, + "LabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/LayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "LayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormLayoutConfiguration" + }, + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + }, + "SectionBasedLayout": { + "$ref": "#/definitions/SectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "LayoutElementType": { + "enum": [ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ], + "type": "string" + }, + "LegendOptions": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "string" + }, + "Position": { + "$ref": "#/definitions/LegendPosition" + }, + "Title": { + "$ref": "#/definitions/LabelOptions" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + } + }, + "type": "object" + }, + "LegendPosition": { + "enum": [ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ], + "type": "string" + }, + "LineChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartConfiguration": { + "additionalProperties": false, + "properties": { + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DefaultSeriesSettings": { + "$ref": "#/definitions/LineChartDefaultSeriesSettings" + }, + "FieldWells": { + "$ref": "#/definitions/LineChartFieldWells" + }, + "ForecastConfigurations": { + "items": { + "$ref": "#/definitions/ForecastConfiguration" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Series": { + "items": { + "$ref": "#/definitions/SeriesItem" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/LineChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "Type": { + "$ref": "#/definitions/LineChartType" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "LineChartDefaultSeriesSettings": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartFieldWells": { + "additionalProperties": false, + "properties": { + "LineChartAggregatedFieldWells": { + "$ref": "#/definitions/LineChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "LineChartLineStyle": { + "enum": [ + "SOLID", + "DOTTED", + "DASHED" + ], + "type": "string" + }, + "LineChartLineStyleSettings": { + "additionalProperties": false, + "properties": { + "LineInterpolation": { + "$ref": "#/definitions/LineInterpolation" + }, + "LineStyle": { + "$ref": "#/definitions/LineChartLineStyle" + }, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LineWidth": { + "type": "string" + } + }, + "type": "object" + }, + "LineChartMarkerShape": { + "enum": [ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ], + "type": "string" + }, + "LineChartMarkerStyleSettings": { + "additionalProperties": false, + "properties": { + "MarkerColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MarkerShape": { + "$ref": "#/definitions/LineChartMarkerShape" + }, + "MarkerSize": { + "type": "string" + }, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LineChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartType": { + "enum": [ + "LINE", + "AREA", + "STACKED_AREA" + ], + "type": "string" + }, + "LineChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/LineChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "LineInterpolation": { + "enum": [ + "LINEAR", + "SMOOTH", + "STEPPED" + ], + "type": "string" + }, + "LineSeriesAxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "MissingDataConfigurations": { + "items": { + "$ref": "#/definitions/MissingDataConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ListControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SearchOptions": { + "$ref": "#/definitions/ListControlSearchOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "ListControlSearchOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ListControlSelectAllOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LoadingAnimation": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LocalNavigationConfiguration": { + "additionalProperties": false, + "properties": { + "TargetSheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "TargetSheetId" + ], + "type": "object" + }, + "LongFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "MapZoomMode": { + "enum": [ + "AUTO", + "MANUAL" + ], + "type": "string" + }, + "MappedDataSetParameter": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DataSetParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "DataSetParameterName" + ], + "type": "object" + }, + "MaximumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MaximumMinimumComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/MaximumMinimumComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "MaximumMinimumComputationType": { + "enum": [ + "MAXIMUM", + "MINIMUM" + ], + "type": "string" + }, + "MeasureField": { + "additionalProperties": false, + "properties": { + "CalculatedMeasureField": { + "$ref": "#/definitions/CalculatedMeasureField" + }, + "CategoricalMeasureField": { + "$ref": "#/definitions/CategoricalMeasureField" + }, + "DateMeasureField": { + "$ref": "#/definitions/DateMeasureField" + }, + "NumericalMeasureField": { + "$ref": "#/definitions/NumericalMeasureField" + } + }, + "type": "object" + }, + "MetricComparisonComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "FromValue": { + "$ref": "#/definitions/MeasureField" + }, + "Name": { + "type": "string" + }, + "TargetValue": { + "$ref": "#/definitions/MeasureField" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "MinimumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MissingDataConfiguration": { + "additionalProperties": false, + "properties": { + "TreatmentOption": { + "$ref": "#/definitions/MissingDataTreatmentOption" + } + }, + "type": "object" + }, + "MissingDataTreatmentOption": { + "enum": [ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ], + "type": "string" + }, + "NegativeValueConfiguration": { + "additionalProperties": false, + "properties": { + "DisplayMode": { + "$ref": "#/definitions/NegativeValueDisplayMode" + } + }, + "required": [ + "DisplayMode" + ], + "type": "object" + }, + "NegativeValueDisplayMode": { + "enum": [ + "POSITIVE", + "NEGATIVE" + ], + "type": "string" + }, + "NullValueFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullString": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "NullString" + ], + "type": "object" + }, + "NumberDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "NumberFormatConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "NumericAxisOptions": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/AxisDisplayRange" + }, + "Scale": { + "$ref": "#/definitions/AxisScale" + } + }, + "type": "object" + }, + "NumericEqualityDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Column", + "Value" + ], + "type": "object" + }, + "NumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/NumericEqualityMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + }, + "Value": { + "default": null, + "type": "number" + } + }, + "required": [ + "Column", + "FilterId", + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "NumericEqualityMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL" + ], + "type": "string" + }, + "NumericFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "NumericFormatConfiguration": { + "additionalProperties": false, + "properties": { + "CurrencyDisplayFormatConfiguration": { + "$ref": "#/definitions/CurrencyDisplayFormatConfiguration" + }, + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "NumericRangeFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "RangeMinimum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "NumericRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StaticValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "NumericSeparatorConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalSeparator": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "ThousandsSeparator": { + "$ref": "#/definitions/ThousandSeparatorOptions" + } + }, + "type": "object" + }, + "NumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT", + "SPACE" + ], + "type": "string" + }, + "NumericalAggregationFunction": { + "additionalProperties": false, + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/PercentileAggregation" + }, + "SimpleNumericalAggregation": { + "$ref": "#/definitions/SimpleNumericalAggregationFunction" + } + }, + "type": "object" + }, + "NumericalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "NumericalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "OtherCategories": { + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "type": "string" + }, + "PaginationConfiguration": { + "additionalProperties": false, + "properties": { + "PageNumber": { + "minimum": 0, + "type": "number" + }, + "PageSize": { + "default": null, + "type": "number" + } + }, + "required": [ + "PageNumber", + "PageSize" + ], + "type": "object" + }, + "PanelBorderStyle": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "PanelConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BorderStyle": { + "$ref": "#/definitions/PanelBorderStyle" + }, + "BorderThickness": { + "type": "string" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GutterSpacing": { + "type": "string" + }, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Title": { + "$ref": "#/definitions/PanelTitleOptions" + } + }, + "type": "object" + }, + "PanelTitleOptions": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PaperOrientation": { + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "type": "string" + }, + "PaperSize": { + "enum": [ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ], + "type": "string" + }, + "ParameterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/ParameterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/ParameterDropDownControl" + }, + "List": { + "$ref": "#/definitions/ParameterListControl" + }, + "Slider": { + "$ref": "#/definitions/ParameterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/ParameterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/ParameterTextFieldControl" + } + }, + "type": "object" + }, + "ParameterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DateTimeParameterDeclaration": { + "$ref": "#/definitions/DateTimeParameterDeclaration" + }, + "DecimalParameterDeclaration": { + "$ref": "#/definitions/DecimalParameterDeclaration" + }, + "IntegerParameterDeclaration": { + "$ref": "#/definitions/IntegerParameterDeclaration" + }, + "StringParameterDeclaration": { + "$ref": "#/definitions/StringParameterDeclaration" + } + }, + "type": "object" + }, + "ParameterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterSelectableValues": { + "additionalProperties": false, + "properties": { + "LinkToDataSetColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ParameterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "ParameterControlId", + "SourceParameterName", + "StepSize", + "Title" + ], + "type": "object" + }, + "ParameterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterValueType": { + "enum": [ + "MULTI_VALUED", + "SINGLE_VALUED" + ], + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/DateTimeParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/DecimalParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/IntegerParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/StringParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PercentVisibleRange": { + "additionalProperties": false, + "properties": { + "From": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "To": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PercentageDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PercentileAggregation": { + "additionalProperties": false, + "properties": { + "PercentileValue": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PeriodOverPeriodComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PeriodToDateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodTimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PieChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DonutOptions": { + "$ref": "#/definitions/DonutOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PieChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PieChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "PieChartFieldWells": { + "additionalProperties": false, + "properties": { + "PieChartAggregatedFieldWells": { + "$ref": "#/definitions/PieChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "PieChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PieChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotFieldSortOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SortBy": { + "$ref": "#/definitions/PivotTableSortBy" + } + }, + "required": [ + "FieldId", + "SortBy" + ], + "type": "object" + }, + "PivotTableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingOption" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/PivotTableCellConditionalFormatting" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScope": { + "additionalProperties": false, + "properties": { + "Role": { + "$ref": "#/definitions/PivotTableConditionalFormattingScopeRole" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScopeRole": { + "enum": [ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ], + "type": "string" + }, + "PivotTableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/PivotTableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PivotTableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/PivotTablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PivotTableSortConfiguration" + }, + "TableOptions": { + "$ref": "#/definitions/PivotTableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/PivotTableTotalOptions" + } + }, + "type": "object" + }, + "PivotTableDataPathOption": { + "additionalProperties": false, + "properties": { + "DataPathList": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Width": { + "type": "string" + } + }, + "required": [ + "DataPathList" + ], + "type": "object" + }, + "PivotTableDataPathType": { + "enum": [ + "HIERARCHY_ROWS_LAYOUT_COLUMN", + "MULTIPLE_ROW_METRICS_COLUMN", + "EMPTY_COLUMN_HEADER", + "COUNT_METRIC_COLUMN" + ], + "type": "string" + }, + "PivotTableFieldCollapseState": { + "enum": [ + "COLLAPSED", + "EXPANDED" + ], + "type": "string" + }, + "PivotTableFieldCollapseStateOption": { + "additionalProperties": false, + "properties": { + "State": { + "$ref": "#/definitions/PivotTableFieldCollapseState" + }, + "Target": { + "$ref": "#/definitions/PivotTableFieldCollapseStateTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "PivotTableFieldCollapseStateTarget": { + "additionalProperties": false, + "properties": { + "FieldDataPathValues": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "FieldId": { + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableFieldOptions": { + "additionalProperties": false, + "properties": { + "CollapseStateOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldCollapseStateOption" + }, + "type": "array" + }, + "DataPathOptions": { + "items": { + "$ref": "#/definitions/PivotTableDataPathOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableFieldSubtotalOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldWells": { + "additionalProperties": false, + "properties": { + "PivotTableAggregatedFieldWells": { + "$ref": "#/definitions/PivotTableAggregatedFieldWells" + } + }, + "type": "object" + }, + "PivotTableMetricPlacement": { + "enum": [ + "ROW", + "COLUMN" + ], + "type": "string" + }, + "PivotTableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ColumnHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DefaultCellWidth": { + "type": "string" + }, + "MetricPlacement": { + "$ref": "#/definitions/PivotTableMetricPlacement" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + }, + "RowFieldNamesStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowsLabelOptions": { + "$ref": "#/definitions/PivotTableRowsLabelOptions" + }, + "RowsLayout": { + "$ref": "#/definitions/PivotTableRowsLayout" + }, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLayout": { + "enum": [ + "TABULAR", + "HIERARCHY" + ], + "type": "string" + }, + "PivotTableSortBy": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnSort" + }, + "DataPath": { + "$ref": "#/definitions/DataPathSort" + }, + "Field": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "PivotTableSortConfiguration": { + "additionalProperties": false, + "properties": { + "FieldSortOptions": { + "items": { + "$ref": "#/definitions/PivotFieldSortOptions" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableSubtotalLevel": { + "enum": [ + "ALL", + "CUSTOM", + "LAST" + ], + "type": "string" + }, + "PivotTableTotalOptions": { + "additionalProperties": false, + "properties": { + "ColumnSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "ColumnTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + }, + "RowSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "RowTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + } + }, + "type": "object" + }, + "PivotTableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PivotTableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/PivotTableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotTotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "PredefinedHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "PrimaryValueDisplayType": { + "enum": [ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ], + "type": "string" + }, + "ProgressBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Color": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartAreaStyleSettings": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAxesRangeScale": { + "enum": [ + "AUTO", + "INDEPENDENT", + "SHARED" + ], + "type": "string" + }, + "RadarChartConfiguration": { + "additionalProperties": false, + "properties": { + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AlternateBandEvenColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AlternateBandOddColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AxesRangeScale": { + "$ref": "#/definitions/RadarChartAxesRangeScale" + }, + "BaseSeriesSettings": { + "$ref": "#/definitions/RadarChartSeriesSettings" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/RadarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Shape": { + "$ref": "#/definitions/RadarChartShape" + }, + "SortConfiguration": { + "$ref": "#/definitions/RadarChartSortConfiguration" + }, + "StartAngle": { + "maximum": 360, + "minimum": -360, + "type": "number" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "RadarChartFieldWells": { + "additionalProperties": false, + "properties": { + "RadarChartAggregatedFieldWells": { + "$ref": "#/definitions/RadarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "RadarChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "AreaStyleSettings": { + "$ref": "#/definitions/RadarChartAreaStyleSettings" + } + }, + "type": "object" + }, + "RadarChartShape": { + "enum": [ + "CIRCLE", + "POLYGON" + ], + "type": "string" + }, + "RadarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/RadarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "RangeEndsLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ReferenceLine": { + "additionalProperties": false, + "properties": { + "DataConfiguration": { + "$ref": "#/definitions/ReferenceLineDataConfiguration" + }, + "LabelConfiguration": { + "$ref": "#/definitions/ReferenceLineLabelConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "StyleConfiguration": { + "$ref": "#/definitions/ReferenceLineStyleConfiguration" + } + }, + "required": [ + "DataConfiguration" + ], + "type": "object" + }, + "ReferenceLineCustomLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "pattern": "\\S", + "type": "string" + } + }, + "required": [ + "CustomLabel" + ], + "type": "object" + }, + "ReferenceLineDataConfiguration": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "DynamicConfiguration": { + "$ref": "#/definitions/ReferenceLineDynamicDataConfiguration" + }, + "SeriesType": { + "$ref": "#/definitions/ReferenceLineSeriesType" + }, + "StaticConfiguration": { + "$ref": "#/definitions/ReferenceLineStaticDataConfiguration" + } + }, + "type": "object" + }, + "ReferenceLineDynamicDataConfiguration": { + "additionalProperties": false, + "properties": { + "Calculation": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "MeasureAggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + } + }, + "required": [ + "Calculation", + "Column" + ], + "type": "object" + }, + "ReferenceLineLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineCustomLabelConfiguration" + }, + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalPosition": { + "$ref": "#/definitions/ReferenceLineLabelHorizontalPosition" + }, + "ValueLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineValueLabelConfiguration" + }, + "VerticalPosition": { + "$ref": "#/definitions/ReferenceLineLabelVerticalPosition" + } + }, + "type": "object" + }, + "ReferenceLineLabelHorizontalPosition": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "ReferenceLineLabelVerticalPosition": { + "enum": [ + "ABOVE", + "BELOW" + ], + "type": "string" + }, + "ReferenceLinePatternType": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "ReferenceLineSeriesType": { + "enum": [ + "BAR", + "LINE" + ], + "type": "string" + }, + "ReferenceLineStaticDataConfiguration": { + "additionalProperties": false, + "properties": { + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "ReferenceLineStyleConfiguration": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Pattern": { + "$ref": "#/definitions/ReferenceLinePatternType" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + }, + "RelativePosition": { + "$ref": "#/definitions/ReferenceLineValueLabelRelativePosition" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelRelativePosition": { + "enum": [ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ], + "type": "string" + }, + "RelativeDateTimeControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "RelativeDateType": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ], + "type": "string" + }, + "RelativeDatesFilter": { + "additionalProperties": false, + "properties": { + "AnchorDateConfiguration": { + "$ref": "#/definitions/AnchorDateConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MinimumGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RelativeDateType": { + "$ref": "#/definitions/RelativeDateType" + }, + "RelativeDateValue": { + "default": null, + "type": "number" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AnchorDateConfiguration", + "Column", + "FilterId", + "NullOption", + "RelativeDateType", + "TimeGranularity" + ], + "type": "object" + }, + "RelativeFontSize": { + "enum": [ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "type": "string" + }, + "ResizeOption": { + "enum": [ + "FIXED", + "RESPONSIVE" + ], + "type": "string" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "RollingDateConfiguration": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "RowAlternateColorOptions": { + "additionalProperties": false, + "properties": { + "RowAlternateColors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "UsePrimaryBackgroundColor": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "type": "object" + }, + "SameSheetTargetVisualConfiguration": { + "additionalProperties": false, + "properties": { + "TargetVisualOptions": { + "$ref": "#/definitions/TargetVisualOptions" + }, + "TargetVisuals": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Destination": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Source": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Weight": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/SankeyDiagramFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/SankeyDiagramSortConfiguration" + } + }, + "type": "object" + }, + "SankeyDiagramFieldWells": { + "additionalProperties": false, + "properties": { + "SankeyDiagramAggregatedFieldWells": { + "$ref": "#/definitions/SankeyDiagramAggregatedFieldWells" + } + }, + "type": "object" + }, + "SankeyDiagramSortConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SourceItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "WeightSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/SankeyDiagramChartConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScatterPlotCategoricallyAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ScatterPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "YAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "ScatterPlotFieldWells": { + "additionalProperties": false, + "properties": { + "ScatterPlotCategoricallyAggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotCategoricallyAggregatedFieldWells" + }, + "ScatterPlotUnaggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "ScatterPlotUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ScatterPlotConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScrollBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "VisibleRange": { + "$ref": "#/definitions/VisibleRangeOptions" + } + }, + "type": "object" + }, + "SecondaryValueOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SectionAfterPageBreak": { + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/SectionPageBreakStatus" + } + }, + "type": "object" + }, + "SectionBasedLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperCanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutPaperCanvasSizeOptions" + } + }, + "type": "object" + }, + "SectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "BodySections": { + "items": { + "$ref": "#/definitions/BodySectionConfiguration" + }, + "maxItems": 28, + "minItems": 0, + "type": "array" + }, + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + }, + "FooterSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "HeaderSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "BodySections", + "CanvasSizeOptions", + "FooterSections", + "HeaderSections" + ], + "type": "object" + }, + "SectionBasedLayoutPaperCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperMargin": { + "$ref": "#/definitions/Spacing" + }, + "PaperOrientation": { + "$ref": "#/definitions/PaperOrientation" + }, + "PaperSize": { + "$ref": "#/definitions/PaperSize" + } + }, + "type": "object" + }, + "SectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormSectionLayoutConfiguration" + } + }, + "required": [ + "FreeFormLayout" + ], + "type": "object" + }, + "SectionPageBreakConfiguration": { + "additionalProperties": false, + "properties": { + "After": { + "$ref": "#/definitions/SectionAfterPageBreak" + } + }, + "type": "object" + }, + "SectionPageBreakStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "SectionStyle": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "string" + }, + "Padding": { + "$ref": "#/definitions/Spacing" + } + }, + "type": "object" + }, + "SelectAllValueOptions": { + "enum": [ + "ALL_VALUES" + ], + "type": "string" + }, + "SelectedFieldOptions": { + "enum": [ + "ALL_FIELDS" + ], + "type": "string" + }, + "SelectedSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "SheetVisualScopingConfigurations": { + "items": { + "$ref": "#/definitions/SheetVisualScopingConfiguration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SelectedTooltipType": { + "enum": [ + "BASIC", + "DETAILED" + ], + "type": "string" + }, + "SeriesItem": { + "additionalProperties": false, + "properties": { + "DataFieldSeriesItem": { + "$ref": "#/definitions/DataFieldSeriesItem" + }, + "FieldSeriesItem": { + "$ref": "#/definitions/FieldSeriesItem" + } + }, + "type": "object" + }, + "SetParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/DestinationParameterValueConfiguration" + } + }, + "required": [ + "DestinationParameterName", + "Value" + ], + "type": "object" + }, + "ShapeConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "required": [ + "BackgroundColor" + ], + "type": "object" + }, + "Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "type": "object" + }, + "SheetContentType": { + "enum": [ + "PAGINATED", + "INTERACTIVE" + ], + "type": "string" + }, + "SheetControlDateTimePickerType": { + "enum": [ + "SINGLE_VALUED", + "DATE_RANGE" + ], + "type": "string" + }, + "SheetControlInfoIconLabelOptions": { + "additionalProperties": false, + "properties": { + "InfoIconText": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetControlLayout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/SheetControlLayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "SheetControlLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + } + }, + "type": "object" + }, + "SheetControlListType": { + "enum": [ + "MULTI_SELECT", + "SINGLE_SELECT" + ], + "type": "string" + }, + "SheetControlSliderType": { + "enum": [ + "SINGLE_POINT", + "RANGE" + ], + "type": "string" + }, + "SheetDefinition": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/SheetContentType" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "FilterControls": { + "items": { + "$ref": "#/definitions/FilterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Layouts": { + "items": { + "$ref": "#/definitions/Layout" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ParameterControls": { + "items": { + "$ref": "#/definitions/ParameterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SheetControlLayouts": { + "items": { + "$ref": "#/definitions/SheetControlLayout" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "TextBoxes": { + "items": { + "$ref": "#/definitions/SheetTextBox" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Title": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visuals": { + "items": { + "$ref": "#/definitions/Visual" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "SheetId" + ], + "type": "object" + }, + "SheetElementConfigurationOverrides": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetElementRenderingRule": { + "additionalProperties": false, + "properties": { + "ConfigurationOverrides": { + "$ref": "#/definitions/SheetElementConfigurationOverrides" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ConfigurationOverrides", + "Expression" + ], + "type": "object" + }, + "SheetTextBox": { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + }, + "SheetTextBoxId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "SheetTextBoxId" + ], + "type": "object" + }, + "SheetVisualScopingConfiguration": { + "additionalProperties": false, + "properties": { + "Scope": { + "$ref": "#/definitions/FilterVisualScope" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "VisualIds": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Scope", + "SheetId" + ], + "type": "object" + }, + "ShortFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SimpleAttributeAggregationFunction": { + "enum": [ + "UNIQUE_VALUE" + ], + "type": "string" + }, + "SimpleClusterMarker": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "SimpleNumericalAggregationFunction": { + "enum": [ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ], + "type": "string" + }, + "SimpleTotalAggregationFunction": { + "enum": [ + "DEFAULT", + "SUM", + "AVERAGE", + "MIN", + "MAX", + "NONE" + ], + "type": "string" + }, + "SliderControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "SmallMultiplesAxisPlacement": { + "enum": [ + "OUTSIDE", + "INSIDE" + ], + "type": "string" + }, + "SmallMultiplesAxisProperties": { + "additionalProperties": false, + "properties": { + "Placement": { + "$ref": "#/definitions/SmallMultiplesAxisPlacement" + }, + "Scale": { + "$ref": "#/definitions/SmallMultiplesAxisScale" + } + }, + "type": "object" + }, + "SmallMultiplesAxisScale": { + "enum": [ + "SHARED", + "INDEPENDENT" + ], + "type": "string" + }, + "SmallMultiplesOptions": { + "additionalProperties": false, + "properties": { + "MaxVisibleColumns": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "MaxVisibleRows": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "PanelConfiguration": { + "$ref": "#/definitions/PanelConfiguration" + }, + "XAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + }, + "YAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + } + }, + "type": "object" + }, + "SortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "Spacing": { + "additionalProperties": false, + "properties": { + "Bottom": { + "type": "string" + }, + "Left": { + "type": "string" + }, + "Right": { + "type": "string" + }, + "Top": { + "type": "string" + } + }, + "type": "object" + }, + "SpecialValue": { + "enum": [ + "EMPTY", + "NULL", + "OTHER" + ], + "type": "string" + }, + "StringDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "StringFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "StringParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/StringDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/StringValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "StringValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "StyledCellType": { + "enum": [ + "TOTAL", + "METRIC_HEADER", + "VALUE" + ], + "type": "string" + }, + "SubtotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FieldLevel": { + "$ref": "#/definitions/PivotTableSubtotalLevel" + }, + "FieldLevelOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldSubtotalOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "StyleTargets": { + "items": { + "$ref": "#/definitions/TableStyleTarget" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "TableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableBorderOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/TableBorderStyle" + }, + "Thickness": { + "maximum": 4, + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TableBorderStyle": { + "enum": [ + "NONE", + "SOLID" + ], + "type": "string" + }, + "TableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableCellImageScalingConfiguration": { + "enum": [ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ], + "type": "string" + }, + "TableCellImageSizingConfiguration": { + "additionalProperties": false, + "properties": { + "TableCellImageScalingConfiguration": { + "$ref": "#/definitions/TableCellImageScalingConfiguration" + } + }, + "type": "object" + }, + "TableCellStyle": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Border": { + "$ref": "#/definitions/GlobalTableBorderOptions" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Height": { + "maximum": 500, + "minimum": 8, + "type": "number" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "TextWrap": { + "$ref": "#/definitions/TextWrap" + }, + "VerticalTextAlignment": { + "$ref": "#/definitions/VerticalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/TableConditionalFormattingOption" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/TableCellConditionalFormatting" + }, + "Row": { + "$ref": "#/definitions/TableRowConditionalFormatting" + } + }, + "type": "object" + }, + "TableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/TableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/TablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TableSortConfiguration" + }, + "TableInlineVisualizations": { + "items": { + "$ref": "#/definitions/TableInlineVisualization" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TableOptions": { + "$ref": "#/definitions/TableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/TotalOptions" + } + }, + "type": "object" + }, + "TableFieldCustomIconContent": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/TableFieldIconSetType" + } + }, + "type": "object" + }, + "TableFieldCustomTextContent": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "FontConfiguration" + ], + "type": "object" + }, + "TableFieldIconSetType": { + "enum": [ + "LINK" + ], + "type": "string" + }, + "TableFieldImageConfiguration": { + "additionalProperties": false, + "properties": { + "SizingOptions": { + "$ref": "#/definitions/TableCellImageSizingConfiguration" + } + }, + "type": "object" + }, + "TableFieldLinkConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/TableFieldLinkContentConfiguration" + }, + "Target": { + "$ref": "#/definitions/URLTargetConfiguration" + } + }, + "required": [ + "Content", + "Target" + ], + "type": "object" + }, + "TableFieldLinkContentConfiguration": { + "additionalProperties": false, + "properties": { + "CustomIconContent": { + "$ref": "#/definitions/TableFieldCustomIconContent" + }, + "CustomTextContent": { + "$ref": "#/definitions/TableFieldCustomTextContent" + } + }, + "type": "object" + }, + "TableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "URLStyling": { + "$ref": "#/definitions/TableFieldURLConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableFieldOptions": { + "additionalProperties": false, + "properties": { + "Order": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "PinnedFieldOptions": { + "$ref": "#/definitions/TablePinnedFieldOptions" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/TableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableFieldURLConfiguration": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/TableFieldImageConfiguration" + }, + "LinkConfiguration": { + "$ref": "#/definitions/TableFieldLinkConfiguration" + } + }, + "type": "object" + }, + "TableFieldWells": { + "additionalProperties": false, + "properties": { + "TableAggregatedFieldWells": { + "$ref": "#/definitions/TableAggregatedFieldWells" + }, + "TableUnaggregatedFieldWells": { + "$ref": "#/definitions/TableUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "TableInlineVisualization": { + "additionalProperties": false, + "properties": { + "DataBars": { + "$ref": "#/definitions/DataBarsOptions" + } + }, + "type": "object" + }, + "TableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "HeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Orientation": { + "$ref": "#/definitions/TableOrientation" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + } + }, + "type": "object" + }, + "TableOrientation": { + "enum": [ + "VERTICAL", + "HORIZONTAL" + ], + "type": "string" + }, + "TablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TablePinnedFieldOptions": { + "additionalProperties": false, + "properties": { + "PinnedLeftFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 201, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableRowConditionalFormatting": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TableSideBorderOptions": { + "additionalProperties": false, + "properties": { + "Bottom": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerHorizontal": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerVertical": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Left": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Right": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Top": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "TableSortConfiguration": { + "additionalProperties": false, + "properties": { + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + }, + "RowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableStyleTarget": { + "additionalProperties": false, + "properties": { + "CellType": { + "$ref": "#/definitions/StyledCellType" + } + }, + "required": [ + "CellType" + ], + "type": "object" + }, + "TableTotalsPlacement": { + "enum": [ + "START", + "END", + "AUTO" + ], + "type": "string" + }, + "TableTotalsScrollStatus": { + "enum": [ + "PINNED", + "SCROLLED" + ], + "type": "string" + }, + "TableUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/UnaggregatedField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/TableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetVisualOptions": { + "enum": [ + "ALL_VISUALS" + ], + "type": "string" + }, + "TextAreaControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TextControlPlaceholderOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TextFieldControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextWrap": { + "enum": [ + "NONE", + "WRAP" + ], + "type": "string" + }, + "ThousandSeparatorOptions": { + "additionalProperties": false, + "properties": { + "Symbol": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TimeBasedForecastProperties": { + "additionalProperties": false, + "properties": { + "LowerBoundary": { + "default": null, + "type": "number" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "UpperBoundary": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "TimeEqualityFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Value": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "Column", + "FilterId" + ], + "type": "object" + }, + "TimeGranularity": { + "enum": [ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ], + "type": "string" + }, + "TimeRangeDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "RangeMaximum": { + "format": "date-time", + "type": "string" + }, + "RangeMinimum": { + "format": "date-time", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "RangeMaximum", + "RangeMinimum", + "TimeGranularity" + ], + "type": "object" + }, + "TimeRangeFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "RangeMinimumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "TimeRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValue": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "TooltipItem": { + "additionalProperties": false, + "properties": { + "ColumnTooltipItem": { + "$ref": "#/definitions/ColumnTooltipItem" + }, + "FieldTooltipItem": { + "$ref": "#/definitions/FieldTooltipItem" + } + }, + "type": "object" + }, + "TooltipOptions": { + "additionalProperties": false, + "properties": { + "FieldBasedTooltip": { + "$ref": "#/definitions/FieldBasedTooltip" + }, + "SelectedTooltipType": { + "$ref": "#/definitions/SelectedTooltipType" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TooltipTitleType": { + "enum": [ + "NONE", + "PRIMARY_VALUE" + ], + "type": "string" + }, + "TopBottomComputationType": { + "enum": [ + "TOP", + "BOTTOM" + ], + "type": "string" + }, + "TopBottomFilter": { + "additionalProperties": false, + "properties": { + "AggregationSortConfigurations": { + "items": { + "$ref": "#/definitions/AggregationSortConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Limit": { + "default": null, + "type": "number" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AggregationSortConfigurations", + "Column", + "FilterId" + ], + "type": "object" + }, + "TopBottomMoversComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MoverSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Name": { + "type": "string" + }, + "SortOrder": { + "$ref": "#/definitions/TopBottomSortOrder" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomRankedComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResultSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomSortOrder": { + "enum": [ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ], + "type": "string" + }, + "TotalAggregationComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "TotalAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleTotalAggregationFunction": { + "$ref": "#/definitions/SimpleTotalAggregationFunction" + } + }, + "type": "object" + }, + "TotalAggregationOption": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TotalAggregationFunction": { + "$ref": "#/definitions/TotalAggregationFunction" + } + }, + "required": [ + "FieldId", + "TotalAggregationFunction" + ], + "type": "object" + }, + "TotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TreeMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Groups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Sizes": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TreeMapFieldWells" + }, + "GroupLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SizeLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TreeMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "TreeMapFieldWells": { + "additionalProperties": false, + "properties": { + "TreeMapAggregatedFieldWells": { + "$ref": "#/definitions/TreeMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "TreeMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "TreeMapGroupItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "TreeMapSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TreeMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "TrendArrowOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "URLTargetConfiguration": { + "enum": [ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ], + "type": "string" + }, + "UnaggregatedField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "UniqueValuesComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ValidationStrategy": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ValidationStrategyMode" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ValidationStrategyMode": { + "enum": [ + "STRICT", + "LENIENT" + ], + "type": "string" + }, + "ValueWhenUnsetOption": { + "enum": [ + "RECOMMENDED_VALUE", + "NULL" + ], + "type": "string" + }, + "VerticalTextAlignment": { + "enum": [ + "TOP", + "MIDDLE", + "BOTTOM", + "AUTO" + ], + "type": "string" + }, + "Visibility": { + "enum": [ + "HIDDEN", + "VISIBLE" + ], + "type": "string" + }, + "VisibleRangeOptions": { + "additionalProperties": false, + "properties": { + "PercentRange": { + "$ref": "#/definitions/PercentVisibleRange" + } + }, + "type": "object" + }, + "Visual": { + "additionalProperties": false, + "properties": { + "BarChartVisual": { + "$ref": "#/definitions/BarChartVisual" + }, + "BoxPlotVisual": { + "$ref": "#/definitions/BoxPlotVisual" + }, + "ComboChartVisual": { + "$ref": "#/definitions/ComboChartVisual" + }, + "CustomContentVisual": { + "$ref": "#/definitions/CustomContentVisual" + }, + "EmptyVisual": { + "$ref": "#/definitions/EmptyVisual" + }, + "FilledMapVisual": { + "$ref": "#/definitions/FilledMapVisual" + }, + "FunnelChartVisual": { + "$ref": "#/definitions/FunnelChartVisual" + }, + "GaugeChartVisual": { + "$ref": "#/definitions/GaugeChartVisual" + }, + "GeospatialMapVisual": { + "$ref": "#/definitions/GeospatialMapVisual" + }, + "HeatMapVisual": { + "$ref": "#/definitions/HeatMapVisual" + }, + "HistogramVisual": { + "$ref": "#/definitions/HistogramVisual" + }, + "InsightVisual": { + "$ref": "#/definitions/InsightVisual" + }, + "KPIVisual": { + "$ref": "#/definitions/KPIVisual" + }, + "LineChartVisual": { + "$ref": "#/definitions/LineChartVisual" + }, + "PieChartVisual": { + "$ref": "#/definitions/PieChartVisual" + }, + "PivotTableVisual": { + "$ref": "#/definitions/PivotTableVisual" + }, + "RadarChartVisual": { + "$ref": "#/definitions/RadarChartVisual" + }, + "SankeyDiagramVisual": { + "$ref": "#/definitions/SankeyDiagramVisual" + }, + "ScatterPlotVisual": { + "$ref": "#/definitions/ScatterPlotVisual" + }, + "TableVisual": { + "$ref": "#/definitions/TableVisual" + }, + "TreeMapVisual": { + "$ref": "#/definitions/TreeMapVisual" + }, + "WaterfallVisual": { + "$ref": "#/definitions/WaterfallVisual" + }, + "WordCloudVisual": { + "$ref": "#/definitions/WordCloudVisual" + } + }, + "type": "object" + }, + "VisualCustomAction": { + "additionalProperties": false, + "properties": { + "ActionOperations": { + "items": { + "$ref": "#/definitions/VisualCustomActionOperation" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "CustomActionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "Trigger": { + "$ref": "#/definitions/VisualCustomActionTrigger" + } + }, + "required": [ + "ActionOperations", + "CustomActionId", + "Name", + "Trigger" + ], + "type": "object" + }, + "VisualCustomActionOperation": { + "additionalProperties": false, + "properties": { + "FilterOperation": { + "$ref": "#/definitions/CustomActionFilterOperation" + }, + "NavigationOperation": { + "$ref": "#/definitions/CustomActionNavigationOperation" + }, + "SetParametersOperation": { + "$ref": "#/definitions/CustomActionSetParametersOperation" + }, + "URLOperation": { + "$ref": "#/definitions/CustomActionURLOperation" + } + }, + "type": "object" + }, + "VisualCustomActionTrigger": { + "enum": [ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ], + "type": "string" + }, + "VisualPalette": { + "additionalProperties": false, + "properties": { + "ChartColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "ColorMap": { + "items": { + "$ref": "#/definitions/DataPathColor" + }, + "maxItems": 5000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "VisualSubtitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/LongFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "VisualTitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/ShortFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "WaterfallChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Breakdowns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Categories": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallChartColorConfiguration": { + "additionalProperties": false, + "properties": { + "GroupColorConfiguration": { + "$ref": "#/definitions/WaterfallChartGroupColorConfiguration" + } + }, + "type": "object" + }, + "WaterfallChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorConfiguration": { + "$ref": "#/definitions/WaterfallChartColorConfiguration" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WaterfallChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/WaterfallChartSortConfiguration" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WaterfallChartOptions": { + "$ref": "#/definitions/WaterfallChartOptions" + } + }, + "type": "object" + }, + "WaterfallChartFieldWells": { + "additionalProperties": false, + "properties": { + "WaterfallChartAggregatedFieldWells": { + "$ref": "#/definitions/WaterfallChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "WaterfallChartGroupColorConfiguration": { + "additionalProperties": false, + "properties": { + "NegativeBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TotalBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartOptions": { + "additionalProperties": false, + "properties": { + "TotalBarLabel": { + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "BreakdownItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WaterfallChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WhatIfPointScenario": { + "additionalProperties": false, + "properties": { + "Date": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Date", + "Value" + ], + "type": "object" + }, + "WhatIfRangeScenario": { + "additionalProperties": false, + "properties": { + "EndDate": { + "format": "date-time", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "EndDate", + "StartDate", + "Value" + ], + "type": "object" + }, + "WidgetStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WordCloudAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WordCloudFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/WordCloudSortConfiguration" + }, + "WordCloudOptions": { + "$ref": "#/definitions/WordCloudOptions" + } + }, + "type": "object" + }, + "WordCloudCloudLayout": { + "enum": [ + "FLUID", + "NORMAL" + ], + "type": "string" + }, + "WordCloudFieldWells": { + "additionalProperties": false, + "properties": { + "WordCloudAggregatedFieldWells": { + "$ref": "#/definitions/WordCloudAggregatedFieldWells" + } + }, + "type": "object" + }, + "WordCloudOptions": { + "additionalProperties": false, + "properties": { + "CloudLayout": { + "$ref": "#/definitions/WordCloudCloudLayout" + }, + "MaximumStringLength": { + "maximum": 100, + "minimum": 1, + "type": "number" + }, + "WordCasing": { + "$ref": "#/definitions/WordCloudWordCasing" + }, + "WordOrientation": { + "$ref": "#/definitions/WordCloudWordOrientation" + }, + "WordPadding": { + "$ref": "#/definitions/WordCloudWordPadding" + }, + "WordScaling": { + "$ref": "#/definitions/WordCloudWordScaling" + } + }, + "type": "object" + }, + "WordCloudSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WordCloudChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WordCloudWordCasing": { + "enum": [ + "LOWER_CASE", + "EXISTING_CASE" + ], + "type": "string" + }, + "WordCloudWordOrientation": { + "enum": [ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ], + "type": "string" + }, + "WordCloudWordPadding": { + "enum": [ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "WordCloudWordScaling": { + "enum": [ + "EMPHASIZE", + "NORMAL" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DescribeAnalysisPermissions", + "quicksight:CreateAnalysis", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DeleteAnalysis" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListAnalyses" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DescribeAnalysisPermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DescribeAnalysisPermissions", + "quicksight:UpdateAnalysis", + "quicksight:UpdateAnalysisPermissions", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AnalysisId", + "/properties/AwsAccountId" + ], + "properties": { + "AnalysisId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DataSetArns": { + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Definition": { + "$ref": "#/definitions/AnalysisDefinition" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AnalysisError" + }, + "minItems": 1, + "type": "array" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/Sheet" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AnalysisSourceEntity" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "ThemeArn": { + "type": "string" + }, + "ValidationStrategy": { + "$ref": "#/definitions/ValidationStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/DataSetArns", + "/properties/LastUpdatedTime" + ], + "required": [ + "AwsAccountId", + "AnalysisId", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Analysis", + "writeOnlyProperties": [ + "/properties/Definition", + "/properties/Parameters", + "/properties/SourceEntity", + "/properties/Status", + "/properties/ValidationStrategy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-dashboard.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-dashboard.json new file mode 100644 index 0000000000..bf30fd8a9e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-dashboard.json @@ -0,0 +1,11510 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/DashboardId" + ], + "definitions": { + "AdHocFilteringOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "AggregationFunction": { + "additionalProperties": false, + "properties": { + "AttributeAggregationFunction": { + "$ref": "#/definitions/AttributeAggregationFunction" + }, + "CategoricalAggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "DateAggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "NumericalAggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + } + }, + "type": "object" + }, + "AggregationSortConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SortDirection": { + "$ref": "#/definitions/SortDirection" + } + }, + "required": [ + "Column", + "SortDirection" + ], + "type": "object" + }, + "AllSheetsFilterScopeConfiguration": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AnalysisDefaults": { + "additionalProperties": false, + "properties": { + "DefaultNewSheetConfiguration": { + "$ref": "#/definitions/DefaultNewSheetConfiguration" + } + }, + "required": [ + "DefaultNewSheetConfiguration" + ], + "type": "object" + }, + "AnchorDateConfiguration": { + "additionalProperties": false, + "properties": { + "AnchorOption": { + "$ref": "#/definitions/AnchorOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "AnchorOption": { + "enum": [ + "NOW" + ], + "type": "string" + }, + "ArcAxisConfiguration": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/ArcAxisDisplayRange" + }, + "ReserveRange": { + "default": 0, + "type": "number" + } + }, + "type": "object" + }, + "ArcAxisDisplayRange": { + "additionalProperties": false, + "properties": { + "Max": { + "default": null, + "type": "number" + }, + "Min": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "ArcConfiguration": { + "additionalProperties": false, + "properties": { + "ArcAngle": { + "default": null, + "type": "number" + }, + "ArcThickness": { + "$ref": "#/definitions/ArcThicknessOptions" + } + }, + "type": "object" + }, + "ArcOptions": { + "additionalProperties": false, + "properties": { + "ArcThickness": { + "$ref": "#/definitions/ArcThickness" + } + }, + "type": "object" + }, + "ArcThickness": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ], + "type": "string" + }, + "ArcThicknessOptions": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "AssetOptions": { + "additionalProperties": false, + "properties": { + "Timezone": { + "type": "string" + }, + "WeekStart": { + "$ref": "#/definitions/DayOfTheWeek" + } + }, + "type": "object" + }, + "AttributeAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleAttributeAggregation": { + "$ref": "#/definitions/SimpleAttributeAggregationFunction" + }, + "ValueForMultipleValues": { + "type": "string" + } + }, + "type": "object" + }, + "AxisBinding": { + "enum": [ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ], + "type": "string" + }, + "AxisDataOptions": { + "additionalProperties": false, + "properties": { + "DateAxisOptions": { + "$ref": "#/definitions/DateAxisOptions" + }, + "NumericAxisOptions": { + "$ref": "#/definitions/NumericAxisOptions" + } + }, + "type": "object" + }, + "AxisDisplayDataDrivenRange": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AxisDisplayMinMaxRange": { + "additionalProperties": false, + "properties": { + "Maximum": { + "default": null, + "type": "number" + }, + "Minimum": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AxisOffset": { + "type": "string" + }, + "DataOptions": { + "$ref": "#/definitions/AxisDataOptions" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ScrollbarOptions": { + "$ref": "#/definitions/ScrollBarOptions" + }, + "TickLabelOptions": { + "$ref": "#/definitions/AxisTickLabelOptions" + } + }, + "type": "object" + }, + "AxisDisplayRange": { + "additionalProperties": false, + "properties": { + "DataDriven": { + "$ref": "#/definitions/AxisDisplayDataDrivenRange" + }, + "MinMax": { + "$ref": "#/definitions/AxisDisplayMinMaxRange" + } + }, + "type": "object" + }, + "AxisLabelOptions": { + "additionalProperties": false, + "properties": { + "ApplyTo": { + "$ref": "#/definitions/AxisLabelReferenceOptions" + }, + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "AxisLabelReferenceOptions": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "AxisLinearScale": { + "additionalProperties": false, + "properties": { + "StepCount": { + "default": null, + "type": "number" + }, + "StepSize": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisLogarithmicScale": { + "additionalProperties": false, + "properties": { + "Base": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisScale": { + "additionalProperties": false, + "properties": { + "Linear": { + "$ref": "#/definitions/AxisLinearScale" + }, + "Logarithmic": { + "$ref": "#/definitions/AxisLogarithmicScale" + } + }, + "type": "object" + }, + "AxisTickLabelOptions": { + "additionalProperties": false, + "properties": { + "LabelOptions": { + "$ref": "#/definitions/LabelOptions" + }, + "RotationAngle": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "BarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Orientation": { + "$ref": "#/definitions/BarChartOrientation" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/BarChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BarChartFieldWells": { + "additionalProperties": false, + "properties": { + "BarChartAggregatedFieldWells": { + "$ref": "#/definitions/BarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "BarChartOrientation": { + "enum": [ + "HORIZONTAL", + "VERTICAL" + ], + "type": "string" + }, + "BarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "BarsArrangement": { + "enum": [ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ], + "type": "string" + }, + "BaseMapStyleType": { + "enum": [ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ], + "type": "string" + }, + "BinCountOptions": { + "additionalProperties": false, + "properties": { + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BinWidthOptions": { + "additionalProperties": false, + "properties": { + "BinCountLimit": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BodySectionConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/BodySectionContent" + }, + "PageBreakConfiguration": { + "$ref": "#/definitions/SectionPageBreakConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Content", + "SectionId" + ], + "type": "object" + }, + "BodySectionContent": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + } + }, + "type": "object" + }, + "BoxPlotAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BoxPlotChartConfiguration": { + "additionalProperties": false, + "properties": { + "BoxPlotOptions": { + "$ref": "#/definitions/BoxPlotOptions" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BoxPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SortConfiguration": { + "$ref": "#/definitions/BoxPlotSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BoxPlotFieldWells": { + "additionalProperties": false, + "properties": { + "BoxPlotAggregatedFieldWells": { + "$ref": "#/definitions/BoxPlotAggregatedFieldWells" + } + }, + "type": "object" + }, + "BoxPlotFillStyle": { + "enum": [ + "SOLID", + "TRANSPARENT" + ], + "type": "string" + }, + "BoxPlotOptions": { + "additionalProperties": false, + "properties": { + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "StyleOptions": { + "$ref": "#/definitions/BoxPlotStyleOptions" + } + }, + "type": "object" + }, + "BoxPlotSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + } + }, + "type": "object" + }, + "BoxPlotStyleOptions": { + "additionalProperties": false, + "properties": { + "FillStyle": { + "$ref": "#/definitions/BoxPlotFillStyle" + } + }, + "type": "object" + }, + "BoxPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BoxPlotChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "CalculatedField": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 32000, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 127, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "Expression", + "Name" + ], + "type": "object" + }, + "CalculatedMeasureField": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression", + "FieldId" + ], + "type": "object" + }, + "CascadingControlConfiguration": { + "additionalProperties": false, + "properties": { + "SourceControls": { + "items": { + "$ref": "#/definitions/CascadingControlSource" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CascadingControlSource": { + "additionalProperties": false, + "properties": { + "ColumnToMatch": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceSheetControlId": { + "type": "string" + } + }, + "type": "object" + }, + "CategoricalAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT" + ], + "type": "string" + }, + "CategoricalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoricalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoryDrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "CategoryValues", + "Column" + ], + "type": "object" + }, + "CategoryFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "Column", + "Configuration", + "FilterId" + ], + "type": "object" + }, + "CategoryFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CustomFilterConfiguration": { + "$ref": "#/definitions/CustomFilterConfiguration" + }, + "CustomFilterListConfiguration": { + "$ref": "#/definitions/CustomFilterListConfiguration" + }, + "FilterListConfiguration": { + "$ref": "#/definitions/FilterListConfiguration" + } + }, + "type": "object" + }, + "CategoryFilterMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "type": "string" + }, + "CategoryFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "ChartAxisLabelOptions": { + "additionalProperties": false, + "properties": { + "AxisLabelOptions": { + "items": { + "$ref": "#/definitions/AxisLabelOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ClusterMarker": { + "additionalProperties": false, + "properties": { + "SimpleClusterMarker": { + "$ref": "#/definitions/SimpleClusterMarker" + } + }, + "type": "object" + }, + "ClusterMarkerConfiguration": { + "additionalProperties": false, + "properties": { + "ClusterMarker": { + "$ref": "#/definitions/ClusterMarker" + } + }, + "type": "object" + }, + "ColorFillType": { + "enum": [ + "DISCRETE", + "GRADIENT" + ], + "type": "string" + }, + "ColorScale": { + "additionalProperties": false, + "properties": { + "ColorFillType": { + "$ref": "#/definitions/ColorFillType" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DataColor" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "NullValueColor": { + "$ref": "#/definitions/DataColor" + } + }, + "required": [ + "ColorFillType", + "Colors" + ], + "type": "object" + }, + "ColorsConfiguration": { + "additionalProperties": false, + "properties": { + "CustomColors": { + "items": { + "$ref": "#/definitions/CustomColor" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ColorsConfiguration": { + "$ref": "#/definitions/ColorsConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + }, + "Role": { + "$ref": "#/definitions/ColumnRole" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ColumnHierarchy": { + "additionalProperties": false, + "properties": { + "DateTimeHierarchy": { + "$ref": "#/definitions/DateTimeHierarchy" + }, + "ExplicitHierarchy": { + "$ref": "#/definitions/ExplicitHierarchy" + }, + "PredefinedHierarchy": { + "$ref": "#/definitions/PredefinedHierarchy" + } + }, + "type": "object" + }, + "ColumnIdentifier": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ColumnName", + "DataSetIdentifier" + ], + "type": "object" + }, + "ColumnRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnSort": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortBy": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "Direction", + "SortBy" + ], + "type": "object" + }, + "ColumnTooltipItem": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ComboChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "BarValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "LineValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ComboChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "LineDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/ComboChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "ComboChartFieldWells": { + "additionalProperties": false, + "properties": { + "ComboChartAggregatedFieldWells": { + "$ref": "#/definitions/ComboChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "ComboChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ComboChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ComparisonConfiguration": { + "additionalProperties": false, + "properties": { + "ComparisonFormat": { + "$ref": "#/definitions/ComparisonFormatConfiguration" + }, + "ComparisonMethod": { + "$ref": "#/definitions/ComparisonMethod" + } + }, + "type": "object" + }, + "ComparisonFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "ComparisonMethod": { + "enum": [ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ], + "type": "string" + }, + "Computation": { + "additionalProperties": false, + "properties": { + "Forecast": { + "$ref": "#/definitions/ForecastComputation" + }, + "GrowthRate": { + "$ref": "#/definitions/GrowthRateComputation" + }, + "MaximumMinimum": { + "$ref": "#/definitions/MaximumMinimumComputation" + }, + "MetricComparison": { + "$ref": "#/definitions/MetricComparisonComputation" + }, + "PeriodOverPeriod": { + "$ref": "#/definitions/PeriodOverPeriodComputation" + }, + "PeriodToDate": { + "$ref": "#/definitions/PeriodToDateComputation" + }, + "TopBottomMovers": { + "$ref": "#/definitions/TopBottomMoversComputation" + }, + "TopBottomRanked": { + "$ref": "#/definitions/TopBottomRankedComputation" + }, + "TotalAggregation": { + "$ref": "#/definitions/TotalAggregationComputation" + }, + "UniqueValues": { + "$ref": "#/definitions/UniqueValuesComputation" + } + }, + "type": "object" + }, + "ConditionalFormattingColor": { + "additionalProperties": false, + "properties": { + "Gradient": { + "$ref": "#/definitions/ConditionalFormattingGradientColor" + }, + "Solid": { + "$ref": "#/definitions/ConditionalFormattingSolidColor" + } + }, + "type": "object" + }, + "ConditionalFormattingCustomIconCondition": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DisplayConfiguration": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayConfiguration" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconOptions": { + "$ref": "#/definitions/ConditionalFormattingCustomIconOptions" + } + }, + "required": [ + "Expression", + "IconOptions" + ], + "type": "object" + }, + "ConditionalFormattingCustomIconOptions": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/Icon" + }, + "UnicodeIcon": { + "pattern": "^[^\\u0000-\\u00FF]$", + "type": "string" + } + }, + "type": "object" + }, + "ConditionalFormattingGradientColor": { + "additionalProperties": false, + "properties": { + "Color": { + "$ref": "#/definitions/GradientColor" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Color", + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIcon": { + "additionalProperties": false, + "properties": { + "CustomCondition": { + "$ref": "#/definitions/ConditionalFormattingCustomIconCondition" + }, + "IconSet": { + "$ref": "#/definitions/ConditionalFormattingIconSet" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayConfiguration": { + "additionalProperties": false, + "properties": { + "IconDisplayOption": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayOption" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayOption": { + "enum": [ + "ICON_ONLY" + ], + "type": "string" + }, + "ConditionalFormattingIconSet": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconSetType": { + "$ref": "#/definitions/ConditionalFormattingIconSetType" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIconSetType": { + "enum": [ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ], + "type": "string" + }, + "ConditionalFormattingSolidColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ContributionAnalysisDefault": { + "additionalProperties": false, + "properties": { + "ContributorDimensions": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "MeasureFieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ContributorDimensions", + "MeasureFieldId" + ], + "type": "object" + }, + "CrossDatasetTypes": { + "enum": [ + "ALL_DATASETS", + "SINGLE_DATASET" + ], + "type": "string" + }, + "CurrencyDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Symbol": { + "pattern": "^[A-Z]{3}$", + "type": "string" + } + }, + "type": "object" + }, + "CustomActionFilterOperation": { + "additionalProperties": false, + "properties": { + "SelectedFieldsConfiguration": { + "$ref": "#/definitions/FilterOperationSelectedFieldsConfiguration" + }, + "TargetVisualsConfiguration": { + "$ref": "#/definitions/FilterOperationTargetVisualsConfiguration" + } + }, + "required": [ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "type": "object" + }, + "CustomActionNavigationOperation": { + "additionalProperties": false, + "properties": { + "LocalNavigationConfiguration": { + "$ref": "#/definitions/LocalNavigationConfiguration" + } + }, + "type": "object" + }, + "CustomActionSetParametersOperation": { + "additionalProperties": false, + "properties": { + "ParameterValueConfigurations": { + "items": { + "$ref": "#/definitions/SetParameterValueConfiguration" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ParameterValueConfigurations" + ], + "type": "object" + }, + "CustomActionURLOperation": { + "additionalProperties": false, + "properties": { + "URLTarget": { + "$ref": "#/definitions/URLTargetConfiguration" + }, + "URLTemplate": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "URLTarget", + "URLTemplate" + ], + "type": "object" + }, + "CustomColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "SpecialValue": { + "$ref": "#/definitions/SpecialValue" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "CustomContentConfiguration": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/CustomContentType" + }, + "ContentUrl": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ImageScaling": { + "$ref": "#/definitions/CustomContentImageScalingConfiguration" + } + }, + "type": "object" + }, + "CustomContentImageScalingConfiguration": { + "enum": [ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ], + "type": "string" + }, + "CustomContentType": { + "enum": [ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ], + "type": "string" + }, + "CustomContentVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/CustomContentConfiguration" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "CustomFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValue": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomFilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomNarrativeOptions": { + "additionalProperties": false, + "properties": { + "Narrative": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Narrative" + ], + "type": "object" + }, + "CustomParameterValues": { + "additionalProperties": false, + "properties": { + "DateTimeValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "DecimalValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "IntegerValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "StringValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CustomValuesConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValues": { + "$ref": "#/definitions/CustomParameterValues" + }, + "IncludeNullValue": { + "type": "boolean" + } + }, + "required": [ + "CustomValues" + ], + "type": "object" + }, + "DashboardBehavior": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DashboardError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": "\\S", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/DashboardErrorType" + }, + "ViolatedEntities": { + "items": { + "$ref": "#/definitions/Entity" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DashboardErrorType": { + "enum": [ + "ACCESS_DENIED", + "SOURCE_NOT_FOUND", + "DATA_SET_NOT_FOUND", + "INTERNAL_FAILURE", + "PARAMETER_VALUE_INCOMPATIBLE", + "PARAMETER_TYPE_INVALID", + "PARAMETER_NOT_FOUND", + "COLUMN_TYPE_MISMATCH", + "COLUMN_GEOGRAPHIC_ROLE_MISMATCH", + "COLUMN_REPLACEMENT_MISSING" + ], + "type": "string" + }, + "DashboardPublishOptions": { + "additionalProperties": false, + "properties": { + "AdHocFilteringOption": { + "$ref": "#/definitions/AdHocFilteringOption" + }, + "DataPointDrillUpDownOption": { + "$ref": "#/definitions/DataPointDrillUpDownOption" + }, + "DataPointMenuLabelOption": { + "$ref": "#/definitions/DataPointMenuLabelOption" + }, + "DataPointTooltipOption": { + "$ref": "#/definitions/DataPointTooltipOption" + }, + "ExportToCSVOption": { + "$ref": "#/definitions/ExportToCSVOption" + }, + "ExportWithHiddenFieldsOption": { + "$ref": "#/definitions/ExportWithHiddenFieldsOption" + }, + "SheetControlsOption": { + "$ref": "#/definitions/SheetControlsOption" + }, + "SheetLayoutElementMaximizationOption": { + "$ref": "#/definitions/SheetLayoutElementMaximizationOption" + }, + "VisualAxisSortOption": { + "$ref": "#/definitions/VisualAxisSortOption" + }, + "VisualMenuOption": { + "$ref": "#/definitions/VisualMenuOption" + }, + "VisualPublishOptions": { + "$ref": "#/definitions/DashboardVisualPublishOptions" + } + }, + "type": "object" + }, + "DashboardSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/DashboardSourceTemplate" + } + }, + "type": "object" + }, + "DashboardSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/DataSetReference" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "DashboardUIState": { + "enum": [ + "EXPANDED", + "COLLAPSED" + ], + "type": "string" + }, + "DashboardVersion": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DataSetArns": { + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Description": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/DashboardError" + }, + "minItems": 1, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/Sheet" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SourceEntityArn": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "ThemeArn": { + "type": "string" + }, + "VersionNumber": { + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "DashboardVersionDefinition": { + "additionalProperties": false, + "properties": { + "AnalysisDefaults": { + "$ref": "#/definitions/AnalysisDefaults" + }, + "CalculatedFields": { + "items": { + "$ref": "#/definitions/CalculatedField" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "ColumnConfigurations": { + "items": { + "$ref": "#/definitions/ColumnConfiguration" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifierDeclarations": { + "items": { + "$ref": "#/definitions/DataSetIdentifierDeclaration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/FilterGroup" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AssetOptions" + }, + "ParameterDeclarations": { + "items": { + "$ref": "#/definitions/ParameterDeclaration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/SheetDefinition" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "DataSetIdentifierDeclarations" + ], + "type": "object" + }, + "DashboardVisualPublishOptions": { + "additionalProperties": false, + "properties": { + "ExportHiddenFieldsOption": { + "$ref": "#/definitions/ExportHiddenFieldsOption" + } + }, + "type": "object" + }, + "DataBarsOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "NegativeColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "DataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "DataFieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "DataLabelContent": { + "enum": [ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ], + "type": "string" + }, + "DataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DataLabelTypes": { + "items": { + "$ref": "#/definitions/DataLabelType" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelContent": { + "$ref": "#/definitions/DataLabelContent" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Overlap": { + "$ref": "#/definitions/DataLabelOverlap" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataLabelOverlap": { + "enum": [ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ], + "type": "string" + }, + "DataLabelPosition": { + "enum": [ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ], + "type": "string" + }, + "DataLabelType": { + "additionalProperties": false, + "properties": { + "DataPathLabelType": { + "$ref": "#/definitions/DataPathLabelType" + }, + "FieldLabelType": { + "$ref": "#/definitions/FieldLabelType" + }, + "MaximumLabelType": { + "$ref": "#/definitions/MaximumLabelType" + }, + "MinimumLabelType": { + "$ref": "#/definitions/MinimumLabelType" + }, + "RangeEndsLabelType": { + "$ref": "#/definitions/RangeEndsLabelType" + } + }, + "type": "object" + }, + "DataPathColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Element": { + "$ref": "#/definitions/DataPathValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Color", + "Element" + ], + "type": "object" + }, + "DataPathLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataPathSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortPaths": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Direction", + "SortPaths" + ], + "type": "object" + }, + "DataPathType": { + "additionalProperties": false, + "properties": { + "PivotTableDataPathType": { + "$ref": "#/definitions/PivotTableDataPathType" + } + }, + "type": "object" + }, + "DataPathValue": { + "additionalProperties": false, + "properties": { + "DataPathType": { + "$ref": "#/definitions/DataPathType" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DataPointDrillUpDownOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "DataPointMenuLabelOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "DataPointTooltipOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "DataSetIdentifierDeclaration": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "Identifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetArn", + "Identifier" + ], + "type": "object" + }, + "DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "pattern": "\\S", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "DateAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ], + "type": "string" + }, + "DateAxisOptions": { + "additionalProperties": false, + "properties": { + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DateDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DateGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateTimeDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateTimeFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "DateTimeHierarchy": { + "additionalProperties": false, + "properties": { + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "HierarchyId" + ], + "type": "object" + }, + "DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DateTimeParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DateTimeDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DateTimeValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "DateTimePickerControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DateTimeValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "format": "date-time", + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DayOfTheWeek": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "type": "string" + }, + "DecimalDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DecimalParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DecimalDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DecimalValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "DecimalPlacesConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlaces": { + "maximum": 20, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "DecimalPlaces" + ], + "type": "object" + }, + "DecimalValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DefaultDateTimePickerControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "type": "object" + }, + "DefaultFilterControlConfiguration": { + "additionalProperties": false, + "properties": { + "ControlOptions": { + "$ref": "#/definitions/DefaultFilterControlOptions" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ControlOptions", + "Title" + ], + "type": "object" + }, + "DefaultFilterControlOptions": { + "additionalProperties": false, + "properties": { + "DefaultDateTimePickerOptions": { + "$ref": "#/definitions/DefaultDateTimePickerControlOptions" + }, + "DefaultDropdownOptions": { + "$ref": "#/definitions/DefaultFilterDropDownControlOptions" + }, + "DefaultListOptions": { + "$ref": "#/definitions/DefaultFilterListControlOptions" + }, + "DefaultRelativeDateTimeOptions": { + "$ref": "#/definitions/DefaultRelativeDateTimeControlOptions" + }, + "DefaultSliderOptions": { + "$ref": "#/definitions/DefaultSliderControlOptions" + }, + "DefaultTextAreaOptions": { + "$ref": "#/definitions/DefaultTextAreaControlOptions" + }, + "DefaultTextFieldOptions": { + "$ref": "#/definitions/DefaultTextFieldControlOptions" + } + }, + "type": "object" + }, + "DefaultFilterDropDownControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "type": "object" + }, + "DefaultFilterListControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "type": "object" + }, + "DefaultFreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultGridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultInteractiveLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeForm": { + "$ref": "#/definitions/DefaultFreeFormLayoutConfiguration" + }, + "Grid": { + "$ref": "#/definitions/DefaultGridLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultNewSheetConfiguration": { + "additionalProperties": false, + "properties": { + "InteractiveLayoutConfiguration": { + "$ref": "#/definitions/DefaultInteractiveLayoutConfiguration" + }, + "PaginatedLayoutConfiguration": { + "$ref": "#/definitions/DefaultPaginatedLayoutConfiguration" + }, + "SheetContentType": { + "$ref": "#/definitions/SheetContentType" + } + }, + "type": "object" + }, + "DefaultPaginatedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "SectionBased": { + "$ref": "#/definitions/DefaultSectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultRelativeDateTimeControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + } + }, + "type": "object" + }, + "DefaultSectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultSliderControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "StepSize" + ], + "type": "object" + }, + "DefaultTextAreaControlOptions": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + } + }, + "type": "object" + }, + "DefaultTextFieldControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + } + }, + "type": "object" + }, + "DestinationParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValuesConfiguration": { + "$ref": "#/definitions/CustomValuesConfiguration" + }, + "SelectAllValueOptions": { + "$ref": "#/definitions/SelectAllValueOptions" + }, + "SourceColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceField": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SourceParameterName": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionField": { + "additionalProperties": false, + "properties": { + "CategoricalDimensionField": { + "$ref": "#/definitions/CategoricalDimensionField" + }, + "DateDimensionField": { + "$ref": "#/definitions/DateDimensionField" + }, + "NumericalDimensionField": { + "$ref": "#/definitions/NumericalDimensionField" + } + }, + "type": "object" + }, + "DonutCenterOptions": { + "additionalProperties": false, + "properties": { + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DonutOptions": { + "additionalProperties": false, + "properties": { + "ArcOptions": { + "$ref": "#/definitions/ArcOptions" + }, + "DonutCenterOptions": { + "$ref": "#/definitions/DonutCenterOptions" + } + }, + "type": "object" + }, + "DrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryDrillDownFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityDrillDownFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeDrillDownFilter" + } + }, + "type": "object" + }, + "DropDownControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DynamicDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValueColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "GroupNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "UserNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "DefaultValueColumn" + ], + "type": "object" + }, + "EmptyVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "Entity": { + "additionalProperties": false, + "properties": { + "Path": { + "pattern": "\\S", + "type": "string" + } + }, + "type": "object" + }, + "ExcludePeriodConfiguration": { + "additionalProperties": false, + "properties": { + "Amount": { + "default": null, + "type": "number" + }, + "Granularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "Amount", + "Granularity" + ], + "type": "object" + }, + "ExplicitHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 2, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "ExportHiddenFieldsOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "ExportToCSVOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "ExportWithHiddenFieldsOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "FieldBasedTooltip": { + "additionalProperties": false, + "properties": { + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, + "TooltipFields": { + "items": { + "$ref": "#/definitions/TooltipItem" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "TooltipTitleType": { + "$ref": "#/definitions/TooltipTitleType" + } + }, + "type": "object" + }, + "FieldLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "FieldSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Direction", + "FieldId" + ], + "type": "object" + }, + "FieldSortOptions": { + "additionalProperties": false, + "properties": { + "ColumnSort": { + "$ref": "#/definitions/ColumnSort" + }, + "FieldSort": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "FieldTooltipItem": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/FilledMapConditionalFormattingOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "ConditionalFormattingOptions" + ], + "type": "object" + }, + "FilledMapConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Shape": { + "$ref": "#/definitions/FilledMapShapeConditionalFormatting" + } + }, + "required": [ + "Shape" + ], + "type": "object" + }, + "FilledMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/FilledMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/FilledMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "FilledMapFieldWells": { + "additionalProperties": false, + "properties": { + "FilledMapAggregatedFieldWells": { + "$ref": "#/definitions/FilledMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "FilledMapShapeConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Format": { + "$ref": "#/definitions/ShapeConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FilledMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/FilledMapConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/NumericRangeFilter" + }, + "RelativeDatesFilter": { + "$ref": "#/definitions/RelativeDatesFilter" + }, + "TimeEqualityFilter": { + "$ref": "#/definitions/TimeEqualityFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeFilter" + }, + "TopBottomFilter": { + "$ref": "#/definitions/TopBottomFilter" + } + }, + "type": "object" + }, + "FilterControl": { + "additionalProperties": false, + "properties": { + "CrossSheet": { + "$ref": "#/definitions/FilterCrossSheetControl" + }, + "DateTimePicker": { + "$ref": "#/definitions/FilterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/FilterDropDownControl" + }, + "List": { + "$ref": "#/definitions/FilterListControl" + }, + "RelativeDateTime": { + "$ref": "#/definitions/FilterRelativeDateTimeControl" + }, + "Slider": { + "$ref": "#/definitions/FilterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/FilterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/FilterTextFieldControl" + } + }, + "type": "object" + }, + "FilterCrossSheetControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId" + ], + "type": "object" + }, + "FilterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterGroup": { + "additionalProperties": false, + "properties": { + "CrossDataset": { + "$ref": "#/definitions/CrossDatasetTypes" + }, + "FilterGroupId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "ScopeConfiguration": { + "$ref": "#/definitions/FilterScopeConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "CrossDataset", + "FilterGroupId", + "Filters", + "ScopeConfiguration" + ], + "type": "object" + }, + "FilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator" + ], + "type": "object" + }, + "FilterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterNullOption": { + "enum": [ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ], + "type": "string" + }, + "FilterOperationSelectedFieldsConfiguration": { + "additionalProperties": false, + "properties": { + "SelectedColumns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "$ref": "#/definitions/SelectedFieldOptions" + }, + "SelectedFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "FilterOperationTargetVisualsConfiguration": { + "additionalProperties": false, + "properties": { + "SameSheetTargetVisualConfiguration": { + "$ref": "#/definitions/SameSheetTargetVisualConfiguration" + } + }, + "type": "object" + }, + "FilterRelativeDateTimeControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "AllSheets": { + "$ref": "#/definitions/AllSheetsFilterScopeConfiguration" + }, + "SelectedSheets": { + "$ref": "#/definitions/SelectedSheetsFilterScopeConfiguration" + } + }, + "type": "object" + }, + "FilterSelectableValues": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "FilterControlId", + "MaximumValue", + "MinimumValue", + "SourceFilterId", + "StepSize", + "Title" + ], + "type": "object" + }, + "FilterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterVisualScope": { + "enum": [ + "ALL_VISUALS", + "SELECTED_VISUALS" + ], + "type": "string" + }, + "FontConfiguration": { + "additionalProperties": false, + "properties": { + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontDecoration": { + "$ref": "#/definitions/FontDecoration" + }, + "FontSize": { + "$ref": "#/definitions/FontSize" + }, + "FontStyle": { + "$ref": "#/definitions/FontStyle" + }, + "FontWeight": { + "$ref": "#/definitions/FontWeight" + } + }, + "type": "object" + }, + "FontDecoration": { + "enum": [ + "UNDERLINE", + "NONE" + ], + "type": "string" + }, + "FontSize": { + "additionalProperties": false, + "properties": { + "Relative": { + "$ref": "#/definitions/RelativeFontSize" + } + }, + "type": "object" + }, + "FontStyle": { + "enum": [ + "NORMAL", + "ITALIC" + ], + "type": "string" + }, + "FontWeight": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/FontWeightName" + } + }, + "type": "object" + }, + "FontWeightName": { + "enum": [ + "NORMAL", + "BOLD" + ], + "type": "string" + }, + "ForecastComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "CustomSeasonalityValue": { + "default": null, + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "LowerBoundary": { + "default": null, + "type": "number" + }, + "Name": { + "type": "string" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "$ref": "#/definitions/ForecastComputationSeasonality" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "UpperBoundary": { + "default": null, + "type": "number" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ForecastComputationSeasonality": { + "enum": [ + "AUTOMATIC", + "CUSTOM" + ], + "type": "string" + }, + "ForecastConfiguration": { + "additionalProperties": false, + "properties": { + "ForecastProperties": { + "$ref": "#/definitions/TimeBasedForecastProperties" + }, + "Scenario": { + "$ref": "#/definitions/ForecastScenario" + } + }, + "type": "object" + }, + "ForecastScenario": { + "additionalProperties": false, + "properties": { + "WhatIfPointScenario": { + "$ref": "#/definitions/WhatIfPointScenario" + }, + "WhatIfRangeScenario": { + "$ref": "#/definitions/WhatIfRangeScenario" + } + }, + "type": "object" + }, + "FormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "NumberFormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "StringFormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "type": "object" + }, + "FreeFormLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "FreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FreeFormLayoutElement": { + "additionalProperties": false, + "properties": { + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "BorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "Height": { + "type": "string" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "RenderingRules": { + "items": { + "$ref": "#/definitions/SheetElementRenderingRule" + }, + "maxItems": 10000, + "minItems": 0, + "type": "array" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + }, + "XAxisLocation": { + "type": "string" + }, + "YAxisLocation": { + "type": "string" + } + }, + "required": [ + "ElementId", + "ElementType", + "Height", + "Width", + "XAxisLocation", + "YAxisLocation" + ], + "type": "object" + }, + "FreeFormLayoutElementBackgroundStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutElementBorderStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "type": "string" + } + }, + "required": [ + "OptimizedViewPortWidth" + ], + "type": "object" + }, + "FreeFormSectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FunnelChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabelOptions": { + "$ref": "#/definitions/FunnelChartDataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/FunnelChartFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/FunnelChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "FunnelChartDataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureDataLabelStyle": { + "$ref": "#/definitions/FunnelChartMeasureDataLabelStyle" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FunnelChartFieldWells": { + "additionalProperties": false, + "properties": { + "FunnelChartAggregatedFieldWells": { + "$ref": "#/definitions/FunnelChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "FunnelChartMeasureDataLabelStyle": { + "enum": [ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ], + "type": "string" + }, + "FunnelChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FunnelChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GaugeChartArcConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/GaugeChartConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/GaugeChartArcConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/GaugeChartPrimaryValueConditionalFormatting" + } + }, + "type": "object" + }, + "GaugeChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/GaugeChartFieldWells" + }, + "GaugeChartOptions": { + "$ref": "#/definitions/GaugeChartOptions" + }, + "TooltipOptions": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "GaugeChartFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartOptions": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/ArcConfiguration" + }, + "ArcAxis": { + "$ref": "#/definitions/ArcAxisConfiguration" + }, + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "GaugeChartPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GaugeChartConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/GaugeChartConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialCoordinateBounds": { + "additionalProperties": false, + "properties": { + "East": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + }, + "North": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "South": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "West": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + } + }, + "required": [ + "East", + "North", + "South", + "West" + ], + "type": "object" + }, + "GeospatialHeatmapColorScale": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/GeospatialHeatmapDataColor" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialHeatmapConfiguration": { + "additionalProperties": false, + "properties": { + "HeatmapColor": { + "$ref": "#/definitions/GeospatialHeatmapColorScale" + } + }, + "type": "object" + }, + "GeospatialHeatmapDataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "GeospatialMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/GeospatialMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "PointStyleOptions": { + "$ref": "#/definitions/GeospatialPointStyleOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "GeospatialMapFieldWells": { + "additionalProperties": false, + "properties": { + "GeospatialMapAggregatedFieldWells": { + "$ref": "#/definitions/GeospatialMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "GeospatialMapStyleOptions": { + "additionalProperties": false, + "properties": { + "BaseMapStyle": { + "$ref": "#/definitions/BaseMapStyleType" + } + }, + "type": "object" + }, + "GeospatialMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GeospatialMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialPointStyleOptions": { + "additionalProperties": false, + "properties": { + "ClusterMarkerConfiguration": { + "$ref": "#/definitions/ClusterMarkerConfiguration" + }, + "HeatmapConfiguration": { + "$ref": "#/definitions/GeospatialHeatmapConfiguration" + }, + "SelectedPointStyle": { + "$ref": "#/definitions/GeospatialSelectedPointStyle" + } + }, + "type": "object" + }, + "GeospatialSelectedPointStyle": { + "enum": [ + "POINT", + "CLUSTER", + "HEATMAP" + ], + "type": "string" + }, + "GeospatialWindowOptions": { + "additionalProperties": false, + "properties": { + "Bounds": { + "$ref": "#/definitions/GeospatialCoordinateBounds" + }, + "MapZoomMode": { + "$ref": "#/definitions/MapZoomMode" + } + }, + "type": "object" + }, + "GlobalTableBorderOptions": { + "additionalProperties": false, + "properties": { + "SideSpecificBorder": { + "$ref": "#/definitions/TableSideBorderOptions" + }, + "UniformBorder": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "GradientColor": { + "additionalProperties": false, + "properties": { + "Stops": { + "items": { + "$ref": "#/definitions/GradientStop" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GradientStop": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + }, + "GradientOffset": { + "default": 0, + "type": "number" + } + }, + "required": [ + "GradientOffset" + ], + "type": "object" + }, + "GridLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "GridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/GridLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "GridLayoutElement": { + "additionalProperties": false, + "properties": { + "ColumnIndex": { + "maximum": 35, + "minimum": 0, + "type": "number" + }, + "ColumnSpan": { + "maximum": 36, + "minimum": 1, + "type": "number" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "RowIndex": { + "maximum": 9009, + "minimum": 0, + "type": "number" + }, + "RowSpan": { + "maximum": 21, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "ColumnSpan", + "ElementId", + "ElementType", + "RowSpan" + ], + "type": "object" + }, + "GridLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "type": "string" + }, + "ResizeOption": { + "$ref": "#/definitions/ResizeOption" + } + }, + "required": [ + "ResizeOption" + ], + "type": "object" + }, + "GrowthRateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodSize": { + "default": 0, + "maximum": 52, + "minimum": 2, + "type": "number" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "HeaderFooterSectionConfiguration": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Layout", + "SectionId" + ], + "type": "object" + }, + "HeatMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "ColumnLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HeatMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "RowLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/HeatMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "HeatMapFieldWells": { + "additionalProperties": false, + "properties": { + "HeatMapAggregatedFieldWells": { + "$ref": "#/definitions/HeatMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "HeatMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "HeatMapColumnItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapColumnSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "HeatMapRowItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapRowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HeatMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HistogramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HistogramBinOptions": { + "additionalProperties": false, + "properties": { + "BinCount": { + "$ref": "#/definitions/BinCountOptions" + }, + "BinWidth": { + "$ref": "#/definitions/BinWidthOptions" + }, + "SelectedBinType": { + "$ref": "#/definitions/HistogramBinType" + }, + "StartValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "HistogramBinType": { + "enum": [ + "BIN_COUNT", + "BIN_WIDTH" + ], + "type": "string" + }, + "HistogramConfiguration": { + "additionalProperties": false, + "properties": { + "BinOptions": { + "$ref": "#/definitions/HistogramBinOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HistogramFieldWells" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + } + }, + "type": "object" + }, + "HistogramFieldWells": { + "additionalProperties": false, + "properties": { + "HistogramAggregatedFieldWells": { + "$ref": "#/definitions/HistogramAggregatedFieldWells" + } + }, + "type": "object" + }, + "HistogramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HistogramConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HorizontalTextAlignment": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ], + "type": "string" + }, + "Icon": { + "enum": [ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ], + "type": "string" + }, + "InsightConfiguration": { + "additionalProperties": false, + "properties": { + "Computations": { + "items": { + "$ref": "#/definitions/Computation" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "CustomNarrative": { + "$ref": "#/definitions/CustomNarrativeOptions" + } + }, + "type": "object" + }, + "InsightVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "InsightConfiguration": { + "$ref": "#/definitions/InsightConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "IntegerDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "IntegerParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/IntegerDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/IntegerValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "IntegerValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "ItemsLimitConfiguration": { + "additionalProperties": false, + "properties": { + "ItemsLimit": { + "default": null, + "type": "number" + }, + "OtherCategories": { + "$ref": "#/definitions/OtherCategories" + } + }, + "type": "object" + }, + "KPIActualValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIComparisonValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/KPIConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "ActualValue": { + "$ref": "#/definitions/KPIActualValueConditionalFormatting" + }, + "ComparisonValue": { + "$ref": "#/definitions/KPIComparisonValueConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/KPIPrimaryValueConditionalFormatting" + }, + "ProgressBar": { + "$ref": "#/definitions/KPIProgressBarConditionalFormatting" + } + }, + "type": "object" + }, + "KPIConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/KPIFieldWells" + }, + "KPIOptions": { + "$ref": "#/definitions/KPIOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/KPISortConfiguration" + } + }, + "type": "object" + }, + "KPIFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrendGroups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIOptions": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "ProgressBar": { + "$ref": "#/definitions/ProgressBarOptions" + }, + "SecondaryValue": { + "$ref": "#/definitions/SecondaryValueOptions" + }, + "SecondaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Sparkline": { + "$ref": "#/definitions/KPISparklineOptions" + }, + "TrendArrows": { + "$ref": "#/definitions/TrendArrowOptions" + }, + "VisualLayoutOptions": { + "$ref": "#/definitions/KPIVisualLayoutOptions" + } + }, + "type": "object" + }, + "KPIPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIProgressBarConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPISortConfiguration": { + "additionalProperties": false, + "properties": { + "TrendGroupSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPISparklineOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Type": { + "$ref": "#/definitions/KPISparklineType" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPISparklineType": { + "enum": [ + "LINE", + "AREA" + ], + "type": "string" + }, + "KPIVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/KPIConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/KPIConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "KPIVisualLayoutOptions": { + "additionalProperties": false, + "properties": { + "StandardLayout": { + "$ref": "#/definitions/KPIVisualStandardLayout" + } + }, + "type": "object" + }, + "KPIVisualStandardLayout": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/KPIVisualStandardLayoutType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPIVisualStandardLayoutType": { + "enum": [ + "CLASSIC", + "VERTICAL" + ], + "type": "string" + }, + "LabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/LayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "LayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormLayoutConfiguration" + }, + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + }, + "SectionBasedLayout": { + "$ref": "#/definitions/SectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "LayoutElementType": { + "enum": [ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ], + "type": "string" + }, + "LegendOptions": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "string" + }, + "Position": { + "$ref": "#/definitions/LegendPosition" + }, + "Title": { + "$ref": "#/definitions/LabelOptions" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + } + }, + "type": "object" + }, + "LegendPosition": { + "enum": [ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ], + "type": "string" + }, + "LineChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartConfiguration": { + "additionalProperties": false, + "properties": { + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DefaultSeriesSettings": { + "$ref": "#/definitions/LineChartDefaultSeriesSettings" + }, + "FieldWells": { + "$ref": "#/definitions/LineChartFieldWells" + }, + "ForecastConfigurations": { + "items": { + "$ref": "#/definitions/ForecastConfiguration" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Series": { + "items": { + "$ref": "#/definitions/SeriesItem" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/LineChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "Type": { + "$ref": "#/definitions/LineChartType" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "LineChartDefaultSeriesSettings": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartFieldWells": { + "additionalProperties": false, + "properties": { + "LineChartAggregatedFieldWells": { + "$ref": "#/definitions/LineChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "LineChartLineStyle": { + "enum": [ + "SOLID", + "DOTTED", + "DASHED" + ], + "type": "string" + }, + "LineChartLineStyleSettings": { + "additionalProperties": false, + "properties": { + "LineInterpolation": { + "$ref": "#/definitions/LineInterpolation" + }, + "LineStyle": { + "$ref": "#/definitions/LineChartLineStyle" + }, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LineWidth": { + "type": "string" + } + }, + "type": "object" + }, + "LineChartMarkerShape": { + "enum": [ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ], + "type": "string" + }, + "LineChartMarkerStyleSettings": { + "additionalProperties": false, + "properties": { + "MarkerColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MarkerShape": { + "$ref": "#/definitions/LineChartMarkerShape" + }, + "MarkerSize": { + "type": "string" + }, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LineChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartType": { + "enum": [ + "LINE", + "AREA", + "STACKED_AREA" + ], + "type": "string" + }, + "LineChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/LineChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "LineInterpolation": { + "enum": [ + "LINEAR", + "SMOOTH", + "STEPPED" + ], + "type": "string" + }, + "LineSeriesAxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "MissingDataConfigurations": { + "items": { + "$ref": "#/definitions/MissingDataConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LinkSharingConfiguration": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "ListControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SearchOptions": { + "$ref": "#/definitions/ListControlSearchOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "ListControlSearchOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ListControlSelectAllOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LoadingAnimation": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LocalNavigationConfiguration": { + "additionalProperties": false, + "properties": { + "TargetSheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "TargetSheetId" + ], + "type": "object" + }, + "LongFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "MapZoomMode": { + "enum": [ + "AUTO", + "MANUAL" + ], + "type": "string" + }, + "MappedDataSetParameter": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DataSetParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "DataSetParameterName" + ], + "type": "object" + }, + "MaximumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MaximumMinimumComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/MaximumMinimumComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "MaximumMinimumComputationType": { + "enum": [ + "MAXIMUM", + "MINIMUM" + ], + "type": "string" + }, + "MeasureField": { + "additionalProperties": false, + "properties": { + "CalculatedMeasureField": { + "$ref": "#/definitions/CalculatedMeasureField" + }, + "CategoricalMeasureField": { + "$ref": "#/definitions/CategoricalMeasureField" + }, + "DateMeasureField": { + "$ref": "#/definitions/DateMeasureField" + }, + "NumericalMeasureField": { + "$ref": "#/definitions/NumericalMeasureField" + } + }, + "type": "object" + }, + "MetricComparisonComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "FromValue": { + "$ref": "#/definitions/MeasureField" + }, + "Name": { + "type": "string" + }, + "TargetValue": { + "$ref": "#/definitions/MeasureField" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "MinimumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MissingDataConfiguration": { + "additionalProperties": false, + "properties": { + "TreatmentOption": { + "$ref": "#/definitions/MissingDataTreatmentOption" + } + }, + "type": "object" + }, + "MissingDataTreatmentOption": { + "enum": [ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ], + "type": "string" + }, + "NegativeValueConfiguration": { + "additionalProperties": false, + "properties": { + "DisplayMode": { + "$ref": "#/definitions/NegativeValueDisplayMode" + } + }, + "required": [ + "DisplayMode" + ], + "type": "object" + }, + "NegativeValueDisplayMode": { + "enum": [ + "POSITIVE", + "NEGATIVE" + ], + "type": "string" + }, + "NullValueFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullString": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "NullString" + ], + "type": "object" + }, + "NumberDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "NumberFormatConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "NumericAxisOptions": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/AxisDisplayRange" + }, + "Scale": { + "$ref": "#/definitions/AxisScale" + } + }, + "type": "object" + }, + "NumericEqualityDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Column", + "Value" + ], + "type": "object" + }, + "NumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/NumericEqualityMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + }, + "Value": { + "default": null, + "type": "number" + } + }, + "required": [ + "Column", + "FilterId", + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "NumericEqualityMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL" + ], + "type": "string" + }, + "NumericFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "NumericFormatConfiguration": { + "additionalProperties": false, + "properties": { + "CurrencyDisplayFormatConfiguration": { + "$ref": "#/definitions/CurrencyDisplayFormatConfiguration" + }, + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "NumericRangeFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "RangeMinimum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "NumericRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StaticValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "NumericSeparatorConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalSeparator": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "ThousandsSeparator": { + "$ref": "#/definitions/ThousandSeparatorOptions" + } + }, + "type": "object" + }, + "NumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT", + "SPACE" + ], + "type": "string" + }, + "NumericalAggregationFunction": { + "additionalProperties": false, + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/PercentileAggregation" + }, + "SimpleNumericalAggregation": { + "$ref": "#/definitions/SimpleNumericalAggregationFunction" + } + }, + "type": "object" + }, + "NumericalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "NumericalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "OtherCategories": { + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "type": "string" + }, + "PaginationConfiguration": { + "additionalProperties": false, + "properties": { + "PageNumber": { + "minimum": 0, + "type": "number" + }, + "PageSize": { + "default": null, + "type": "number" + } + }, + "required": [ + "PageNumber", + "PageSize" + ], + "type": "object" + }, + "PanelBorderStyle": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "PanelConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BorderStyle": { + "$ref": "#/definitions/PanelBorderStyle" + }, + "BorderThickness": { + "type": "string" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GutterSpacing": { + "type": "string" + }, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Title": { + "$ref": "#/definitions/PanelTitleOptions" + } + }, + "type": "object" + }, + "PanelTitleOptions": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PaperOrientation": { + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "type": "string" + }, + "PaperSize": { + "enum": [ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ], + "type": "string" + }, + "ParameterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/ParameterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/ParameterDropDownControl" + }, + "List": { + "$ref": "#/definitions/ParameterListControl" + }, + "Slider": { + "$ref": "#/definitions/ParameterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/ParameterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/ParameterTextFieldControl" + } + }, + "type": "object" + }, + "ParameterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DateTimeParameterDeclaration": { + "$ref": "#/definitions/DateTimeParameterDeclaration" + }, + "DecimalParameterDeclaration": { + "$ref": "#/definitions/DecimalParameterDeclaration" + }, + "IntegerParameterDeclaration": { + "$ref": "#/definitions/IntegerParameterDeclaration" + }, + "StringParameterDeclaration": { + "$ref": "#/definitions/StringParameterDeclaration" + } + }, + "type": "object" + }, + "ParameterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterSelectableValues": { + "additionalProperties": false, + "properties": { + "LinkToDataSetColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ParameterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "ParameterControlId", + "SourceParameterName", + "StepSize", + "Title" + ], + "type": "object" + }, + "ParameterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterValueType": { + "enum": [ + "MULTI_VALUED", + "SINGLE_VALUED" + ], + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/DateTimeParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/DecimalParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/IntegerParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/StringParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PercentVisibleRange": { + "additionalProperties": false, + "properties": { + "From": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "To": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PercentageDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PercentileAggregation": { + "additionalProperties": false, + "properties": { + "PercentileValue": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PeriodOverPeriodComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PeriodToDateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodTimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PieChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DonutOptions": { + "$ref": "#/definitions/DonutOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PieChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PieChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "PieChartFieldWells": { + "additionalProperties": false, + "properties": { + "PieChartAggregatedFieldWells": { + "$ref": "#/definitions/PieChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "PieChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PieChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotFieldSortOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SortBy": { + "$ref": "#/definitions/PivotTableSortBy" + } + }, + "required": [ + "FieldId", + "SortBy" + ], + "type": "object" + }, + "PivotTableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingOption" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/PivotTableCellConditionalFormatting" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScope": { + "additionalProperties": false, + "properties": { + "Role": { + "$ref": "#/definitions/PivotTableConditionalFormattingScopeRole" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScopeRole": { + "enum": [ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ], + "type": "string" + }, + "PivotTableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/PivotTableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PivotTableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/PivotTablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PivotTableSortConfiguration" + }, + "TableOptions": { + "$ref": "#/definitions/PivotTableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/PivotTableTotalOptions" + } + }, + "type": "object" + }, + "PivotTableDataPathOption": { + "additionalProperties": false, + "properties": { + "DataPathList": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Width": { + "type": "string" + } + }, + "required": [ + "DataPathList" + ], + "type": "object" + }, + "PivotTableDataPathType": { + "enum": [ + "HIERARCHY_ROWS_LAYOUT_COLUMN", + "MULTIPLE_ROW_METRICS_COLUMN", + "EMPTY_COLUMN_HEADER", + "COUNT_METRIC_COLUMN" + ], + "type": "string" + }, + "PivotTableFieldCollapseState": { + "enum": [ + "COLLAPSED", + "EXPANDED" + ], + "type": "string" + }, + "PivotTableFieldCollapseStateOption": { + "additionalProperties": false, + "properties": { + "State": { + "$ref": "#/definitions/PivotTableFieldCollapseState" + }, + "Target": { + "$ref": "#/definitions/PivotTableFieldCollapseStateTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "PivotTableFieldCollapseStateTarget": { + "additionalProperties": false, + "properties": { + "FieldDataPathValues": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "FieldId": { + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableFieldOptions": { + "additionalProperties": false, + "properties": { + "CollapseStateOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldCollapseStateOption" + }, + "type": "array" + }, + "DataPathOptions": { + "items": { + "$ref": "#/definitions/PivotTableDataPathOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableFieldSubtotalOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldWells": { + "additionalProperties": false, + "properties": { + "PivotTableAggregatedFieldWells": { + "$ref": "#/definitions/PivotTableAggregatedFieldWells" + } + }, + "type": "object" + }, + "PivotTableMetricPlacement": { + "enum": [ + "ROW", + "COLUMN" + ], + "type": "string" + }, + "PivotTableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ColumnHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DefaultCellWidth": { + "type": "string" + }, + "MetricPlacement": { + "$ref": "#/definitions/PivotTableMetricPlacement" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + }, + "RowFieldNamesStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowsLabelOptions": { + "$ref": "#/definitions/PivotTableRowsLabelOptions" + }, + "RowsLayout": { + "$ref": "#/definitions/PivotTableRowsLayout" + }, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLayout": { + "enum": [ + "TABULAR", + "HIERARCHY" + ], + "type": "string" + }, + "PivotTableSortBy": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnSort" + }, + "DataPath": { + "$ref": "#/definitions/DataPathSort" + }, + "Field": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "PivotTableSortConfiguration": { + "additionalProperties": false, + "properties": { + "FieldSortOptions": { + "items": { + "$ref": "#/definitions/PivotFieldSortOptions" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableSubtotalLevel": { + "enum": [ + "ALL", + "CUSTOM", + "LAST" + ], + "type": "string" + }, + "PivotTableTotalOptions": { + "additionalProperties": false, + "properties": { + "ColumnSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "ColumnTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + }, + "RowSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "RowTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + } + }, + "type": "object" + }, + "PivotTableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PivotTableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/PivotTableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotTotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "PredefinedHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "PrimaryValueDisplayType": { + "enum": [ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ], + "type": "string" + }, + "ProgressBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Color": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartAreaStyleSettings": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAxesRangeScale": { + "enum": [ + "AUTO", + "INDEPENDENT", + "SHARED" + ], + "type": "string" + }, + "RadarChartConfiguration": { + "additionalProperties": false, + "properties": { + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AlternateBandEvenColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AlternateBandOddColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AxesRangeScale": { + "$ref": "#/definitions/RadarChartAxesRangeScale" + }, + "BaseSeriesSettings": { + "$ref": "#/definitions/RadarChartSeriesSettings" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/RadarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Shape": { + "$ref": "#/definitions/RadarChartShape" + }, + "SortConfiguration": { + "$ref": "#/definitions/RadarChartSortConfiguration" + }, + "StartAngle": { + "maximum": 360, + "minimum": -360, + "type": "number" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "RadarChartFieldWells": { + "additionalProperties": false, + "properties": { + "RadarChartAggregatedFieldWells": { + "$ref": "#/definitions/RadarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "RadarChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "AreaStyleSettings": { + "$ref": "#/definitions/RadarChartAreaStyleSettings" + } + }, + "type": "object" + }, + "RadarChartShape": { + "enum": [ + "CIRCLE", + "POLYGON" + ], + "type": "string" + }, + "RadarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/RadarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "RangeEndsLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ReferenceLine": { + "additionalProperties": false, + "properties": { + "DataConfiguration": { + "$ref": "#/definitions/ReferenceLineDataConfiguration" + }, + "LabelConfiguration": { + "$ref": "#/definitions/ReferenceLineLabelConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "StyleConfiguration": { + "$ref": "#/definitions/ReferenceLineStyleConfiguration" + } + }, + "required": [ + "DataConfiguration" + ], + "type": "object" + }, + "ReferenceLineCustomLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "pattern": "\\S", + "type": "string" + } + }, + "required": [ + "CustomLabel" + ], + "type": "object" + }, + "ReferenceLineDataConfiguration": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "DynamicConfiguration": { + "$ref": "#/definitions/ReferenceLineDynamicDataConfiguration" + }, + "SeriesType": { + "$ref": "#/definitions/ReferenceLineSeriesType" + }, + "StaticConfiguration": { + "$ref": "#/definitions/ReferenceLineStaticDataConfiguration" + } + }, + "type": "object" + }, + "ReferenceLineDynamicDataConfiguration": { + "additionalProperties": false, + "properties": { + "Calculation": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "MeasureAggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + } + }, + "required": [ + "Calculation", + "Column" + ], + "type": "object" + }, + "ReferenceLineLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineCustomLabelConfiguration" + }, + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalPosition": { + "$ref": "#/definitions/ReferenceLineLabelHorizontalPosition" + }, + "ValueLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineValueLabelConfiguration" + }, + "VerticalPosition": { + "$ref": "#/definitions/ReferenceLineLabelVerticalPosition" + } + }, + "type": "object" + }, + "ReferenceLineLabelHorizontalPosition": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "ReferenceLineLabelVerticalPosition": { + "enum": [ + "ABOVE", + "BELOW" + ], + "type": "string" + }, + "ReferenceLinePatternType": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "ReferenceLineSeriesType": { + "enum": [ + "BAR", + "LINE" + ], + "type": "string" + }, + "ReferenceLineStaticDataConfiguration": { + "additionalProperties": false, + "properties": { + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "ReferenceLineStyleConfiguration": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Pattern": { + "$ref": "#/definitions/ReferenceLinePatternType" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + }, + "RelativePosition": { + "$ref": "#/definitions/ReferenceLineValueLabelRelativePosition" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelRelativePosition": { + "enum": [ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ], + "type": "string" + }, + "RelativeDateTimeControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "RelativeDateType": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ], + "type": "string" + }, + "RelativeDatesFilter": { + "additionalProperties": false, + "properties": { + "AnchorDateConfiguration": { + "$ref": "#/definitions/AnchorDateConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MinimumGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RelativeDateType": { + "$ref": "#/definitions/RelativeDateType" + }, + "RelativeDateValue": { + "default": null, + "type": "number" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AnchorDateConfiguration", + "Column", + "FilterId", + "NullOption", + "RelativeDateType", + "TimeGranularity" + ], + "type": "object" + }, + "RelativeFontSize": { + "enum": [ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "type": "string" + }, + "ResizeOption": { + "enum": [ + "FIXED", + "RESPONSIVE" + ], + "type": "string" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "RollingDateConfiguration": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "RowAlternateColorOptions": { + "additionalProperties": false, + "properties": { + "RowAlternateColors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "UsePrimaryBackgroundColor": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "type": "object" + }, + "SameSheetTargetVisualConfiguration": { + "additionalProperties": false, + "properties": { + "TargetVisualOptions": { + "$ref": "#/definitions/TargetVisualOptions" + }, + "TargetVisuals": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Destination": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Source": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Weight": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/SankeyDiagramFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/SankeyDiagramSortConfiguration" + } + }, + "type": "object" + }, + "SankeyDiagramFieldWells": { + "additionalProperties": false, + "properties": { + "SankeyDiagramAggregatedFieldWells": { + "$ref": "#/definitions/SankeyDiagramAggregatedFieldWells" + } + }, + "type": "object" + }, + "SankeyDiagramSortConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SourceItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "WeightSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/SankeyDiagramChartConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScatterPlotCategoricallyAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ScatterPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "YAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "ScatterPlotFieldWells": { + "additionalProperties": false, + "properties": { + "ScatterPlotCategoricallyAggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotCategoricallyAggregatedFieldWells" + }, + "ScatterPlotUnaggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "ScatterPlotUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ScatterPlotConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScrollBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "VisibleRange": { + "$ref": "#/definitions/VisibleRangeOptions" + } + }, + "type": "object" + }, + "SecondaryValueOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SectionAfterPageBreak": { + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/SectionPageBreakStatus" + } + }, + "type": "object" + }, + "SectionBasedLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperCanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutPaperCanvasSizeOptions" + } + }, + "type": "object" + }, + "SectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "BodySections": { + "items": { + "$ref": "#/definitions/BodySectionConfiguration" + }, + "maxItems": 28, + "minItems": 0, + "type": "array" + }, + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + }, + "FooterSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "HeaderSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "BodySections", + "CanvasSizeOptions", + "FooterSections", + "HeaderSections" + ], + "type": "object" + }, + "SectionBasedLayoutPaperCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperMargin": { + "$ref": "#/definitions/Spacing" + }, + "PaperOrientation": { + "$ref": "#/definitions/PaperOrientation" + }, + "PaperSize": { + "$ref": "#/definitions/PaperSize" + } + }, + "type": "object" + }, + "SectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormSectionLayoutConfiguration" + } + }, + "required": [ + "FreeFormLayout" + ], + "type": "object" + }, + "SectionPageBreakConfiguration": { + "additionalProperties": false, + "properties": { + "After": { + "$ref": "#/definitions/SectionAfterPageBreak" + } + }, + "type": "object" + }, + "SectionPageBreakStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "SectionStyle": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "string" + }, + "Padding": { + "$ref": "#/definitions/Spacing" + } + }, + "type": "object" + }, + "SelectAllValueOptions": { + "enum": [ + "ALL_VALUES" + ], + "type": "string" + }, + "SelectedFieldOptions": { + "enum": [ + "ALL_FIELDS" + ], + "type": "string" + }, + "SelectedSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "SheetVisualScopingConfigurations": { + "items": { + "$ref": "#/definitions/SheetVisualScopingConfiguration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SelectedTooltipType": { + "enum": [ + "BASIC", + "DETAILED" + ], + "type": "string" + }, + "SeriesItem": { + "additionalProperties": false, + "properties": { + "DataFieldSeriesItem": { + "$ref": "#/definitions/DataFieldSeriesItem" + }, + "FieldSeriesItem": { + "$ref": "#/definitions/FieldSeriesItem" + } + }, + "type": "object" + }, + "SetParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/DestinationParameterValueConfiguration" + } + }, + "required": [ + "DestinationParameterName", + "Value" + ], + "type": "object" + }, + "ShapeConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "required": [ + "BackgroundColor" + ], + "type": "object" + }, + "Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "type": "object" + }, + "SheetContentType": { + "enum": [ + "PAGINATED", + "INTERACTIVE" + ], + "type": "string" + }, + "SheetControlDateTimePickerType": { + "enum": [ + "SINGLE_VALUED", + "DATE_RANGE" + ], + "type": "string" + }, + "SheetControlInfoIconLabelOptions": { + "additionalProperties": false, + "properties": { + "InfoIconText": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetControlLayout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/SheetControlLayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "SheetControlLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + } + }, + "type": "object" + }, + "SheetControlListType": { + "enum": [ + "MULTI_SELECT", + "SINGLE_SELECT" + ], + "type": "string" + }, + "SheetControlSliderType": { + "enum": [ + "SINGLE_POINT", + "RANGE" + ], + "type": "string" + }, + "SheetControlsOption": { + "additionalProperties": false, + "properties": { + "VisibilityState": { + "$ref": "#/definitions/DashboardUIState" + } + }, + "type": "object" + }, + "SheetDefinition": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/SheetContentType" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "FilterControls": { + "items": { + "$ref": "#/definitions/FilterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Layouts": { + "items": { + "$ref": "#/definitions/Layout" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ParameterControls": { + "items": { + "$ref": "#/definitions/ParameterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SheetControlLayouts": { + "items": { + "$ref": "#/definitions/SheetControlLayout" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "TextBoxes": { + "items": { + "$ref": "#/definitions/SheetTextBox" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Title": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visuals": { + "items": { + "$ref": "#/definitions/Visual" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "SheetId" + ], + "type": "object" + }, + "SheetElementConfigurationOverrides": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetElementRenderingRule": { + "additionalProperties": false, + "properties": { + "ConfigurationOverrides": { + "$ref": "#/definitions/SheetElementConfigurationOverrides" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ConfigurationOverrides", + "Expression" + ], + "type": "object" + }, + "SheetLayoutElementMaximizationOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "SheetTextBox": { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + }, + "SheetTextBoxId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "SheetTextBoxId" + ], + "type": "object" + }, + "SheetVisualScopingConfiguration": { + "additionalProperties": false, + "properties": { + "Scope": { + "$ref": "#/definitions/FilterVisualScope" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "VisualIds": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Scope", + "SheetId" + ], + "type": "object" + }, + "ShortFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SimpleAttributeAggregationFunction": { + "enum": [ + "UNIQUE_VALUE" + ], + "type": "string" + }, + "SimpleClusterMarker": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "SimpleNumericalAggregationFunction": { + "enum": [ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ], + "type": "string" + }, + "SimpleTotalAggregationFunction": { + "enum": [ + "DEFAULT", + "SUM", + "AVERAGE", + "MIN", + "MAX", + "NONE" + ], + "type": "string" + }, + "SliderControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "SmallMultiplesAxisPlacement": { + "enum": [ + "OUTSIDE", + "INSIDE" + ], + "type": "string" + }, + "SmallMultiplesAxisProperties": { + "additionalProperties": false, + "properties": { + "Placement": { + "$ref": "#/definitions/SmallMultiplesAxisPlacement" + }, + "Scale": { + "$ref": "#/definitions/SmallMultiplesAxisScale" + } + }, + "type": "object" + }, + "SmallMultiplesAxisScale": { + "enum": [ + "SHARED", + "INDEPENDENT" + ], + "type": "string" + }, + "SmallMultiplesOptions": { + "additionalProperties": false, + "properties": { + "MaxVisibleColumns": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "MaxVisibleRows": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "PanelConfiguration": { + "$ref": "#/definitions/PanelConfiguration" + }, + "XAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + }, + "YAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + } + }, + "type": "object" + }, + "SortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "Spacing": { + "additionalProperties": false, + "properties": { + "Bottom": { + "type": "string" + }, + "Left": { + "type": "string" + }, + "Right": { + "type": "string" + }, + "Top": { + "type": "string" + } + }, + "type": "object" + }, + "SpecialValue": { + "enum": [ + "EMPTY", + "NULL", + "OTHER" + ], + "type": "string" + }, + "StringDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "StringFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "\\S", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "StringParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/StringDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/StringValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "StringValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "StyledCellType": { + "enum": [ + "TOTAL", + "METRIC_HEADER", + "VALUE" + ], + "type": "string" + }, + "SubtotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FieldLevel": { + "$ref": "#/definitions/PivotTableSubtotalLevel" + }, + "FieldLevelOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldSubtotalOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "StyleTargets": { + "items": { + "$ref": "#/definitions/TableStyleTarget" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "TableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableBorderOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/TableBorderStyle" + }, + "Thickness": { + "maximum": 4, + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TableBorderStyle": { + "enum": [ + "NONE", + "SOLID" + ], + "type": "string" + }, + "TableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableCellImageScalingConfiguration": { + "enum": [ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ], + "type": "string" + }, + "TableCellImageSizingConfiguration": { + "additionalProperties": false, + "properties": { + "TableCellImageScalingConfiguration": { + "$ref": "#/definitions/TableCellImageScalingConfiguration" + } + }, + "type": "object" + }, + "TableCellStyle": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Border": { + "$ref": "#/definitions/GlobalTableBorderOptions" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Height": { + "maximum": 500, + "minimum": 8, + "type": "number" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "TextWrap": { + "$ref": "#/definitions/TextWrap" + }, + "VerticalTextAlignment": { + "$ref": "#/definitions/VerticalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/TableConditionalFormattingOption" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/TableCellConditionalFormatting" + }, + "Row": { + "$ref": "#/definitions/TableRowConditionalFormatting" + } + }, + "type": "object" + }, + "TableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/TableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/TablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TableSortConfiguration" + }, + "TableInlineVisualizations": { + "items": { + "$ref": "#/definitions/TableInlineVisualization" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TableOptions": { + "$ref": "#/definitions/TableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/TotalOptions" + } + }, + "type": "object" + }, + "TableFieldCustomIconContent": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/TableFieldIconSetType" + } + }, + "type": "object" + }, + "TableFieldCustomTextContent": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "FontConfiguration" + ], + "type": "object" + }, + "TableFieldIconSetType": { + "enum": [ + "LINK" + ], + "type": "string" + }, + "TableFieldImageConfiguration": { + "additionalProperties": false, + "properties": { + "SizingOptions": { + "$ref": "#/definitions/TableCellImageSizingConfiguration" + } + }, + "type": "object" + }, + "TableFieldLinkConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/TableFieldLinkContentConfiguration" + }, + "Target": { + "$ref": "#/definitions/URLTargetConfiguration" + } + }, + "required": [ + "Content", + "Target" + ], + "type": "object" + }, + "TableFieldLinkContentConfiguration": { + "additionalProperties": false, + "properties": { + "CustomIconContent": { + "$ref": "#/definitions/TableFieldCustomIconContent" + }, + "CustomTextContent": { + "$ref": "#/definitions/TableFieldCustomTextContent" + } + }, + "type": "object" + }, + "TableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "URLStyling": { + "$ref": "#/definitions/TableFieldURLConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableFieldOptions": { + "additionalProperties": false, + "properties": { + "Order": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "PinnedFieldOptions": { + "$ref": "#/definitions/TablePinnedFieldOptions" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/TableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableFieldURLConfiguration": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/TableFieldImageConfiguration" + }, + "LinkConfiguration": { + "$ref": "#/definitions/TableFieldLinkConfiguration" + } + }, + "type": "object" + }, + "TableFieldWells": { + "additionalProperties": false, + "properties": { + "TableAggregatedFieldWells": { + "$ref": "#/definitions/TableAggregatedFieldWells" + }, + "TableUnaggregatedFieldWells": { + "$ref": "#/definitions/TableUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "TableInlineVisualization": { + "additionalProperties": false, + "properties": { + "DataBars": { + "$ref": "#/definitions/DataBarsOptions" + } + }, + "type": "object" + }, + "TableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "HeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Orientation": { + "$ref": "#/definitions/TableOrientation" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + } + }, + "type": "object" + }, + "TableOrientation": { + "enum": [ + "VERTICAL", + "HORIZONTAL" + ], + "type": "string" + }, + "TablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TablePinnedFieldOptions": { + "additionalProperties": false, + "properties": { + "PinnedLeftFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 201, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableRowConditionalFormatting": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TableSideBorderOptions": { + "additionalProperties": false, + "properties": { + "Bottom": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerHorizontal": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerVertical": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Left": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Right": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Top": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "TableSortConfiguration": { + "additionalProperties": false, + "properties": { + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + }, + "RowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableStyleTarget": { + "additionalProperties": false, + "properties": { + "CellType": { + "$ref": "#/definitions/StyledCellType" + } + }, + "required": [ + "CellType" + ], + "type": "object" + }, + "TableTotalsPlacement": { + "enum": [ + "START", + "END", + "AUTO" + ], + "type": "string" + }, + "TableTotalsScrollStatus": { + "enum": [ + "PINNED", + "SCROLLED" + ], + "type": "string" + }, + "TableUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/UnaggregatedField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/TableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetVisualOptions": { + "enum": [ + "ALL_VISUALS" + ], + "type": "string" + }, + "TextAreaControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TextControlPlaceholderOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TextFieldControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextWrap": { + "enum": [ + "NONE", + "WRAP" + ], + "type": "string" + }, + "ThousandSeparatorOptions": { + "additionalProperties": false, + "properties": { + "Symbol": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TimeBasedForecastProperties": { + "additionalProperties": false, + "properties": { + "LowerBoundary": { + "default": null, + "type": "number" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "UpperBoundary": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "TimeEqualityFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Value": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "Column", + "FilterId" + ], + "type": "object" + }, + "TimeGranularity": { + "enum": [ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ], + "type": "string" + }, + "TimeRangeDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "RangeMaximum": { + "format": "date-time", + "type": "string" + }, + "RangeMinimum": { + "format": "date-time", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "RangeMaximum", + "RangeMinimum", + "TimeGranularity" + ], + "type": "object" + }, + "TimeRangeFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "RangeMinimumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "TimeRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValue": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "TooltipItem": { + "additionalProperties": false, + "properties": { + "ColumnTooltipItem": { + "$ref": "#/definitions/ColumnTooltipItem" + }, + "FieldTooltipItem": { + "$ref": "#/definitions/FieldTooltipItem" + } + }, + "type": "object" + }, + "TooltipOptions": { + "additionalProperties": false, + "properties": { + "FieldBasedTooltip": { + "$ref": "#/definitions/FieldBasedTooltip" + }, + "SelectedTooltipType": { + "$ref": "#/definitions/SelectedTooltipType" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TooltipTitleType": { + "enum": [ + "NONE", + "PRIMARY_VALUE" + ], + "type": "string" + }, + "TopBottomComputationType": { + "enum": [ + "TOP", + "BOTTOM" + ], + "type": "string" + }, + "TopBottomFilter": { + "additionalProperties": false, + "properties": { + "AggregationSortConfigurations": { + "items": { + "$ref": "#/definitions/AggregationSortConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Limit": { + "default": null, + "type": "number" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AggregationSortConfigurations", + "Column", + "FilterId" + ], + "type": "object" + }, + "TopBottomMoversComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MoverSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Name": { + "type": "string" + }, + "SortOrder": { + "$ref": "#/definitions/TopBottomSortOrder" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomRankedComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResultSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomSortOrder": { + "enum": [ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ], + "type": "string" + }, + "TotalAggregationComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "TotalAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleTotalAggregationFunction": { + "$ref": "#/definitions/SimpleTotalAggregationFunction" + } + }, + "type": "object" + }, + "TotalAggregationOption": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TotalAggregationFunction": { + "$ref": "#/definitions/TotalAggregationFunction" + } + }, + "required": [ + "FieldId", + "TotalAggregationFunction" + ], + "type": "object" + }, + "TotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TreeMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Groups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Sizes": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TreeMapFieldWells" + }, + "GroupLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SizeLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TreeMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "TreeMapFieldWells": { + "additionalProperties": false, + "properties": { + "TreeMapAggregatedFieldWells": { + "$ref": "#/definitions/TreeMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "TreeMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "TreeMapGroupItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "TreeMapSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TreeMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "TrendArrowOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "URLTargetConfiguration": { + "enum": [ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ], + "type": "string" + }, + "UnaggregatedField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "UniqueValuesComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ValidationStrategy": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ValidationStrategyMode" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ValidationStrategyMode": { + "enum": [ + "STRICT", + "LENIENT" + ], + "type": "string" + }, + "ValueWhenUnsetOption": { + "enum": [ + "RECOMMENDED_VALUE", + "NULL" + ], + "type": "string" + }, + "VerticalTextAlignment": { + "enum": [ + "TOP", + "MIDDLE", + "BOTTOM", + "AUTO" + ], + "type": "string" + }, + "Visibility": { + "enum": [ + "HIDDEN", + "VISIBLE" + ], + "type": "string" + }, + "VisibleRangeOptions": { + "additionalProperties": false, + "properties": { + "PercentRange": { + "$ref": "#/definitions/PercentVisibleRange" + } + }, + "type": "object" + }, + "Visual": { + "additionalProperties": false, + "properties": { + "BarChartVisual": { + "$ref": "#/definitions/BarChartVisual" + }, + "BoxPlotVisual": { + "$ref": "#/definitions/BoxPlotVisual" + }, + "ComboChartVisual": { + "$ref": "#/definitions/ComboChartVisual" + }, + "CustomContentVisual": { + "$ref": "#/definitions/CustomContentVisual" + }, + "EmptyVisual": { + "$ref": "#/definitions/EmptyVisual" + }, + "FilledMapVisual": { + "$ref": "#/definitions/FilledMapVisual" + }, + "FunnelChartVisual": { + "$ref": "#/definitions/FunnelChartVisual" + }, + "GaugeChartVisual": { + "$ref": "#/definitions/GaugeChartVisual" + }, + "GeospatialMapVisual": { + "$ref": "#/definitions/GeospatialMapVisual" + }, + "HeatMapVisual": { + "$ref": "#/definitions/HeatMapVisual" + }, + "HistogramVisual": { + "$ref": "#/definitions/HistogramVisual" + }, + "InsightVisual": { + "$ref": "#/definitions/InsightVisual" + }, + "KPIVisual": { + "$ref": "#/definitions/KPIVisual" + }, + "LineChartVisual": { + "$ref": "#/definitions/LineChartVisual" + }, + "PieChartVisual": { + "$ref": "#/definitions/PieChartVisual" + }, + "PivotTableVisual": { + "$ref": "#/definitions/PivotTableVisual" + }, + "RadarChartVisual": { + "$ref": "#/definitions/RadarChartVisual" + }, + "SankeyDiagramVisual": { + "$ref": "#/definitions/SankeyDiagramVisual" + }, + "ScatterPlotVisual": { + "$ref": "#/definitions/ScatterPlotVisual" + }, + "TableVisual": { + "$ref": "#/definitions/TableVisual" + }, + "TreeMapVisual": { + "$ref": "#/definitions/TreeMapVisual" + }, + "WaterfallVisual": { + "$ref": "#/definitions/WaterfallVisual" + }, + "WordCloudVisual": { + "$ref": "#/definitions/WordCloudVisual" + } + }, + "type": "object" + }, + "VisualAxisSortOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "VisualCustomAction": { + "additionalProperties": false, + "properties": { + "ActionOperations": { + "items": { + "$ref": "#/definitions/VisualCustomActionOperation" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "CustomActionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "Trigger": { + "$ref": "#/definitions/VisualCustomActionTrigger" + } + }, + "required": [ + "ActionOperations", + "CustomActionId", + "Name", + "Trigger" + ], + "type": "object" + }, + "VisualCustomActionOperation": { + "additionalProperties": false, + "properties": { + "FilterOperation": { + "$ref": "#/definitions/CustomActionFilterOperation" + }, + "NavigationOperation": { + "$ref": "#/definitions/CustomActionNavigationOperation" + }, + "SetParametersOperation": { + "$ref": "#/definitions/CustomActionSetParametersOperation" + }, + "URLOperation": { + "$ref": "#/definitions/CustomActionURLOperation" + } + }, + "type": "object" + }, + "VisualCustomActionTrigger": { + "enum": [ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ], + "type": "string" + }, + "VisualMenuOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "VisualPalette": { + "additionalProperties": false, + "properties": { + "ChartColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "ColorMap": { + "items": { + "$ref": "#/definitions/DataPathColor" + }, + "maxItems": 5000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "VisualSubtitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/LongFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "VisualTitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/ShortFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "WaterfallChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Breakdowns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Categories": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallChartColorConfiguration": { + "additionalProperties": false, + "properties": { + "GroupColorConfiguration": { + "$ref": "#/definitions/WaterfallChartGroupColorConfiguration" + } + }, + "type": "object" + }, + "WaterfallChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorConfiguration": { + "$ref": "#/definitions/WaterfallChartColorConfiguration" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WaterfallChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/WaterfallChartSortConfiguration" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WaterfallChartOptions": { + "$ref": "#/definitions/WaterfallChartOptions" + } + }, + "type": "object" + }, + "WaterfallChartFieldWells": { + "additionalProperties": false, + "properties": { + "WaterfallChartAggregatedFieldWells": { + "$ref": "#/definitions/WaterfallChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "WaterfallChartGroupColorConfiguration": { + "additionalProperties": false, + "properties": { + "NegativeBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TotalBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartOptions": { + "additionalProperties": false, + "properties": { + "TotalBarLabel": { + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "BreakdownItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WaterfallChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WhatIfPointScenario": { + "additionalProperties": false, + "properties": { + "Date": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Date", + "Value" + ], + "type": "object" + }, + "WhatIfRangeScenario": { + "additionalProperties": false, + "properties": { + "EndDate": { + "format": "date-time", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "EndDate", + "StartDate", + "Value" + ], + "type": "object" + }, + "WidgetStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WordCloudAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WordCloudFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/WordCloudSortConfiguration" + }, + "WordCloudOptions": { + "$ref": "#/definitions/WordCloudOptions" + } + }, + "type": "object" + }, + "WordCloudCloudLayout": { + "enum": [ + "FLUID", + "NORMAL" + ], + "type": "string" + }, + "WordCloudFieldWells": { + "additionalProperties": false, + "properties": { + "WordCloudAggregatedFieldWells": { + "$ref": "#/definitions/WordCloudAggregatedFieldWells" + } + }, + "type": "object" + }, + "WordCloudOptions": { + "additionalProperties": false, + "properties": { + "CloudLayout": { + "$ref": "#/definitions/WordCloudCloudLayout" + }, + "MaximumStringLength": { + "maximum": 100, + "minimum": 1, + "type": "number" + }, + "WordCasing": { + "$ref": "#/definitions/WordCloudWordCasing" + }, + "WordOrientation": { + "$ref": "#/definitions/WordCloudWordOrientation" + }, + "WordPadding": { + "$ref": "#/definitions/WordCloudWordPadding" + }, + "WordScaling": { + "$ref": "#/definitions/WordCloudWordScaling" + } + }, + "type": "object" + }, + "WordCloudSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WordCloudChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WordCloudWordCasing": { + "enum": [ + "LOWER_CASE", + "EXISTING_CASE" + ], + "type": "string" + }, + "WordCloudWordOrientation": { + "enum": [ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ], + "type": "string" + }, + "WordCloudWordPadding": { + "enum": [ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "WordCloudWordScaling": { + "enum": [ + "EMPHASIZE", + "NORMAL" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DescribeDashboardPermissions", + "quicksight:CreateDashboard", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DeleteDashboard" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListDashboards" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DescribeDashboardPermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DescribeDashboardPermissions", + "quicksight:UpdateDashboard", + "quicksight:UpdateDashboardLinks", + "quicksight:UpdateDashboardPermissions", + "quicksight:UpdateDashboardPublishedVersion", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/DashboardId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DashboardId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "DashboardPublishOptions": { + "$ref": "#/definitions/DashboardPublishOptions" + }, + "Definition": { + "$ref": "#/definitions/DashboardVersionDefinition" + }, + "LastPublishedTime": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "LinkEntities": { + "items": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^arn:aws[\\w\\-]*:quicksight:[\\w\\-]+:\\d+:analysis/[\\w\\-]{1,512}$", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "LinkSharingConfiguration": { + "$ref": "#/definitions/LinkSharingConfiguration" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/DashboardSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "ThemeArn": { + "type": "string" + }, + "ValidationStrategy": { + "$ref": "#/definitions/ValidationStrategy" + }, + "Version": { + "$ref": "#/definitions/DashboardVersion" + }, + "VersionDescription": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/LastPublishedTime", + "/properties/LastUpdatedTime", + "/properties/Version" + ], + "required": [ + "AwsAccountId", + "DashboardId", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Dashboard", + "writeOnlyProperties": [ + "/properties/DashboardPublishOptions", + "/properties/Definition", + "/properties/LinkSharingConfiguration", + "/properties/Parameters", + "/properties/SourceEntity", + "/properties/ThemeArn", + "/properties/VersionDescription", + "/properties/ValidationStrategy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-template.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-template.json new file mode 100644 index 0000000000..accf32f97a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-quicksight-template.json @@ -0,0 +1,11239 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/TemplateId" + ], + "definitions": { + "AggregationFunction": { + "additionalProperties": false, + "properties": { + "AttributeAggregationFunction": { + "$ref": "#/definitions/AttributeAggregationFunction" + }, + "CategoricalAggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "DateAggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "NumericalAggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + } + }, + "type": "object" + }, + "AggregationSortConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SortDirection": { + "$ref": "#/definitions/SortDirection" + } + }, + "required": [ + "Column", + "SortDirection" + ], + "type": "object" + }, + "AllSheetsFilterScopeConfiguration": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AnalysisDefaults": { + "additionalProperties": false, + "properties": { + "DefaultNewSheetConfiguration": { + "$ref": "#/definitions/DefaultNewSheetConfiguration" + } + }, + "required": [ + "DefaultNewSheetConfiguration" + ], + "type": "object" + }, + "AnchorDateConfiguration": { + "additionalProperties": false, + "properties": { + "AnchorOption": { + "$ref": "#/definitions/AnchorOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "AnchorOption": { + "enum": [ + "NOW" + ], + "type": "string" + }, + "ArcAxisConfiguration": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/ArcAxisDisplayRange" + }, + "ReserveRange": { + "default": 0, + "type": "number" + } + }, + "type": "object" + }, + "ArcAxisDisplayRange": { + "additionalProperties": false, + "properties": { + "Max": { + "default": null, + "type": "number" + }, + "Min": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "ArcConfiguration": { + "additionalProperties": false, + "properties": { + "ArcAngle": { + "default": null, + "type": "number" + }, + "ArcThickness": { + "$ref": "#/definitions/ArcThicknessOptions" + } + }, + "type": "object" + }, + "ArcOptions": { + "additionalProperties": false, + "properties": { + "ArcThickness": { + "$ref": "#/definitions/ArcThickness" + } + }, + "type": "object" + }, + "ArcThickness": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ], + "type": "string" + }, + "ArcThicknessOptions": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "AssetOptions": { + "additionalProperties": false, + "properties": { + "Timezone": { + "type": "string" + }, + "WeekStart": { + "$ref": "#/definitions/DayOfTheWeek" + } + }, + "type": "object" + }, + "AttributeAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleAttributeAggregation": { + "$ref": "#/definitions/SimpleAttributeAggregationFunction" + }, + "ValueForMultipleValues": { + "type": "string" + } + }, + "type": "object" + }, + "AxisBinding": { + "enum": [ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ], + "type": "string" + }, + "AxisDataOptions": { + "additionalProperties": false, + "properties": { + "DateAxisOptions": { + "$ref": "#/definitions/DateAxisOptions" + }, + "NumericAxisOptions": { + "$ref": "#/definitions/NumericAxisOptions" + } + }, + "type": "object" + }, + "AxisDisplayDataDrivenRange": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AxisDisplayMinMaxRange": { + "additionalProperties": false, + "properties": { + "Maximum": { + "default": null, + "type": "number" + }, + "Minimum": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AxisOffset": { + "type": "string" + }, + "DataOptions": { + "$ref": "#/definitions/AxisDataOptions" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ScrollbarOptions": { + "$ref": "#/definitions/ScrollBarOptions" + }, + "TickLabelOptions": { + "$ref": "#/definitions/AxisTickLabelOptions" + } + }, + "type": "object" + }, + "AxisDisplayRange": { + "additionalProperties": false, + "properties": { + "DataDriven": { + "$ref": "#/definitions/AxisDisplayDataDrivenRange" + }, + "MinMax": { + "$ref": "#/definitions/AxisDisplayMinMaxRange" + } + }, + "type": "object" + }, + "AxisLabelOptions": { + "additionalProperties": false, + "properties": { + "ApplyTo": { + "$ref": "#/definitions/AxisLabelReferenceOptions" + }, + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "AxisLabelReferenceOptions": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "AxisLinearScale": { + "additionalProperties": false, + "properties": { + "StepCount": { + "default": null, + "type": "number" + }, + "StepSize": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisLogarithmicScale": { + "additionalProperties": false, + "properties": { + "Base": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisScale": { + "additionalProperties": false, + "properties": { + "Linear": { + "$ref": "#/definitions/AxisLinearScale" + }, + "Logarithmic": { + "$ref": "#/definitions/AxisLogarithmicScale" + } + }, + "type": "object" + }, + "AxisTickLabelOptions": { + "additionalProperties": false, + "properties": { + "LabelOptions": { + "$ref": "#/definitions/LabelOptions" + }, + "RotationAngle": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "BarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Orientation": { + "$ref": "#/definitions/BarChartOrientation" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/BarChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BarChartFieldWells": { + "additionalProperties": false, + "properties": { + "BarChartAggregatedFieldWells": { + "$ref": "#/definitions/BarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "BarChartOrientation": { + "enum": [ + "HORIZONTAL", + "VERTICAL" + ], + "type": "string" + }, + "BarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "BarsArrangement": { + "enum": [ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ], + "type": "string" + }, + "BaseMapStyleType": { + "enum": [ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ], + "type": "string" + }, + "BinCountOptions": { + "additionalProperties": false, + "properties": { + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BinWidthOptions": { + "additionalProperties": false, + "properties": { + "BinCountLimit": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BodySectionConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/BodySectionContent" + }, + "PageBreakConfiguration": { + "$ref": "#/definitions/SectionPageBreakConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Content", + "SectionId" + ], + "type": "object" + }, + "BodySectionContent": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + } + }, + "type": "object" + }, + "BoxPlotAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BoxPlotChartConfiguration": { + "additionalProperties": false, + "properties": { + "BoxPlotOptions": { + "$ref": "#/definitions/BoxPlotOptions" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BoxPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SortConfiguration": { + "$ref": "#/definitions/BoxPlotSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BoxPlotFieldWells": { + "additionalProperties": false, + "properties": { + "BoxPlotAggregatedFieldWells": { + "$ref": "#/definitions/BoxPlotAggregatedFieldWells" + } + }, + "type": "object" + }, + "BoxPlotFillStyle": { + "enum": [ + "SOLID", + "TRANSPARENT" + ], + "type": "string" + }, + "BoxPlotOptions": { + "additionalProperties": false, + "properties": { + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "StyleOptions": { + "$ref": "#/definitions/BoxPlotStyleOptions" + } + }, + "type": "object" + }, + "BoxPlotSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + } + }, + "type": "object" + }, + "BoxPlotStyleOptions": { + "additionalProperties": false, + "properties": { + "FillStyle": { + "$ref": "#/definitions/BoxPlotFillStyle" + } + }, + "type": "object" + }, + "BoxPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BoxPlotChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "CalculatedField": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 32000, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 127, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "Expression", + "Name" + ], + "type": "object" + }, + "CalculatedMeasureField": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression", + "FieldId" + ], + "type": "object" + }, + "CascadingControlConfiguration": { + "additionalProperties": false, + "properties": { + "SourceControls": { + "items": { + "$ref": "#/definitions/CascadingControlSource" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CascadingControlSource": { + "additionalProperties": false, + "properties": { + "ColumnToMatch": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceSheetControlId": { + "type": "string" + } + }, + "type": "object" + }, + "CategoricalAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT" + ], + "type": "string" + }, + "CategoricalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoricalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoryDrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "CategoryValues", + "Column" + ], + "type": "object" + }, + "CategoryFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "Column", + "Configuration", + "FilterId" + ], + "type": "object" + }, + "CategoryFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CustomFilterConfiguration": { + "$ref": "#/definitions/CustomFilterConfiguration" + }, + "CustomFilterListConfiguration": { + "$ref": "#/definitions/CustomFilterListConfiguration" + }, + "FilterListConfiguration": { + "$ref": "#/definitions/FilterListConfiguration" + } + }, + "type": "object" + }, + "CategoryFilterMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "type": "string" + }, + "CategoryFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "ChartAxisLabelOptions": { + "additionalProperties": false, + "properties": { + "AxisLabelOptions": { + "items": { + "$ref": "#/definitions/AxisLabelOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ClusterMarker": { + "additionalProperties": false, + "properties": { + "SimpleClusterMarker": { + "$ref": "#/definitions/SimpleClusterMarker" + } + }, + "type": "object" + }, + "ClusterMarkerConfiguration": { + "additionalProperties": false, + "properties": { + "ClusterMarker": { + "$ref": "#/definitions/ClusterMarker" + } + }, + "type": "object" + }, + "ColorFillType": { + "enum": [ + "DISCRETE", + "GRADIENT" + ], + "type": "string" + }, + "ColorScale": { + "additionalProperties": false, + "properties": { + "ColorFillType": { + "$ref": "#/definitions/ColorFillType" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DataColor" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "NullValueColor": { + "$ref": "#/definitions/DataColor" + } + }, + "required": [ + "ColorFillType", + "Colors" + ], + "type": "object" + }, + "ColorsConfiguration": { + "additionalProperties": false, + "properties": { + "CustomColors": { + "items": { + "$ref": "#/definitions/CustomColor" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ColorsConfiguration": { + "$ref": "#/definitions/ColorsConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + }, + "Role": { + "$ref": "#/definitions/ColumnRole" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ColumnGroupColumnSchema": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "ColumnGroupSchema": { + "additionalProperties": false, + "properties": { + "ColumnGroupColumnSchemaList": { + "items": { + "$ref": "#/definitions/ColumnGroupColumnSchema" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "ColumnHierarchy": { + "additionalProperties": false, + "properties": { + "DateTimeHierarchy": { + "$ref": "#/definitions/DateTimeHierarchy" + }, + "ExplicitHierarchy": { + "$ref": "#/definitions/ExplicitHierarchy" + }, + "PredefinedHierarchy": { + "$ref": "#/definitions/PredefinedHierarchy" + } + }, + "type": "object" + }, + "ColumnIdentifier": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ColumnName", + "DataSetIdentifier" + ], + "type": "object" + }, + "ColumnRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "GeographicRole": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "ColumnSort": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortBy": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "Direction", + "SortBy" + ], + "type": "object" + }, + "ColumnTooltipItem": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ComboChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "BarValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "LineValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ComboChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "LineDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/ComboChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "ComboChartFieldWells": { + "additionalProperties": false, + "properties": { + "ComboChartAggregatedFieldWells": { + "$ref": "#/definitions/ComboChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "ComboChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ComboChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ComparisonConfiguration": { + "additionalProperties": false, + "properties": { + "ComparisonFormat": { + "$ref": "#/definitions/ComparisonFormatConfiguration" + }, + "ComparisonMethod": { + "$ref": "#/definitions/ComparisonMethod" + } + }, + "type": "object" + }, + "ComparisonFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "ComparisonMethod": { + "enum": [ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ], + "type": "string" + }, + "Computation": { + "additionalProperties": false, + "properties": { + "Forecast": { + "$ref": "#/definitions/ForecastComputation" + }, + "GrowthRate": { + "$ref": "#/definitions/GrowthRateComputation" + }, + "MaximumMinimum": { + "$ref": "#/definitions/MaximumMinimumComputation" + }, + "MetricComparison": { + "$ref": "#/definitions/MetricComparisonComputation" + }, + "PeriodOverPeriod": { + "$ref": "#/definitions/PeriodOverPeriodComputation" + }, + "PeriodToDate": { + "$ref": "#/definitions/PeriodToDateComputation" + }, + "TopBottomMovers": { + "$ref": "#/definitions/TopBottomMoversComputation" + }, + "TopBottomRanked": { + "$ref": "#/definitions/TopBottomRankedComputation" + }, + "TotalAggregation": { + "$ref": "#/definitions/TotalAggregationComputation" + }, + "UniqueValues": { + "$ref": "#/definitions/UniqueValuesComputation" + } + }, + "type": "object" + }, + "ConditionalFormattingColor": { + "additionalProperties": false, + "properties": { + "Gradient": { + "$ref": "#/definitions/ConditionalFormattingGradientColor" + }, + "Solid": { + "$ref": "#/definitions/ConditionalFormattingSolidColor" + } + }, + "type": "object" + }, + "ConditionalFormattingCustomIconCondition": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DisplayConfiguration": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayConfiguration" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconOptions": { + "$ref": "#/definitions/ConditionalFormattingCustomIconOptions" + } + }, + "required": [ + "Expression", + "IconOptions" + ], + "type": "object" + }, + "ConditionalFormattingCustomIconOptions": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/Icon" + }, + "UnicodeIcon": { + "pattern": "^[^\\u0000-\\u00FF]$", + "type": "string" + } + }, + "type": "object" + }, + "ConditionalFormattingGradientColor": { + "additionalProperties": false, + "properties": { + "Color": { + "$ref": "#/definitions/GradientColor" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Color", + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIcon": { + "additionalProperties": false, + "properties": { + "CustomCondition": { + "$ref": "#/definitions/ConditionalFormattingCustomIconCondition" + }, + "IconSet": { + "$ref": "#/definitions/ConditionalFormattingIconSet" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayConfiguration": { + "additionalProperties": false, + "properties": { + "IconDisplayOption": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayOption" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayOption": { + "enum": [ + "ICON_ONLY" + ], + "type": "string" + }, + "ConditionalFormattingIconSet": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconSetType": { + "$ref": "#/definitions/ConditionalFormattingIconSetType" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIconSetType": { + "enum": [ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ], + "type": "string" + }, + "ConditionalFormattingSolidColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ContributionAnalysisDefault": { + "additionalProperties": false, + "properties": { + "ContributorDimensions": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "MeasureFieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ContributorDimensions", + "MeasureFieldId" + ], + "type": "object" + }, + "CrossDatasetTypes": { + "enum": [ + "ALL_DATASETS", + "SINGLE_DATASET" + ], + "type": "string" + }, + "CurrencyDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Symbol": { + "pattern": "^[A-Z]{3}$", + "type": "string" + } + }, + "type": "object" + }, + "CustomActionFilterOperation": { + "additionalProperties": false, + "properties": { + "SelectedFieldsConfiguration": { + "$ref": "#/definitions/FilterOperationSelectedFieldsConfiguration" + }, + "TargetVisualsConfiguration": { + "$ref": "#/definitions/FilterOperationTargetVisualsConfiguration" + } + }, + "required": [ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "type": "object" + }, + "CustomActionNavigationOperation": { + "additionalProperties": false, + "properties": { + "LocalNavigationConfiguration": { + "$ref": "#/definitions/LocalNavigationConfiguration" + } + }, + "type": "object" + }, + "CustomActionSetParametersOperation": { + "additionalProperties": false, + "properties": { + "ParameterValueConfigurations": { + "items": { + "$ref": "#/definitions/SetParameterValueConfiguration" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ParameterValueConfigurations" + ], + "type": "object" + }, + "CustomActionURLOperation": { + "additionalProperties": false, + "properties": { + "URLTarget": { + "$ref": "#/definitions/URLTargetConfiguration" + }, + "URLTemplate": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "URLTarget", + "URLTemplate" + ], + "type": "object" + }, + "CustomColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "SpecialValue": { + "$ref": "#/definitions/SpecialValue" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "CustomContentConfiguration": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/CustomContentType" + }, + "ContentUrl": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ImageScaling": { + "$ref": "#/definitions/CustomContentImageScalingConfiguration" + } + }, + "type": "object" + }, + "CustomContentImageScalingConfiguration": { + "enum": [ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ], + "type": "string" + }, + "CustomContentType": { + "enum": [ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ], + "type": "string" + }, + "CustomContentVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/CustomContentConfiguration" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "CustomFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValue": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomFilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomNarrativeOptions": { + "additionalProperties": false, + "properties": { + "Narrative": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Narrative" + ], + "type": "object" + }, + "CustomParameterValues": { + "additionalProperties": false, + "properties": { + "DateTimeValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "DecimalValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "IntegerValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "StringValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CustomValuesConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValues": { + "$ref": "#/definitions/CustomParameterValues" + }, + "IncludeNullValue": { + "type": "boolean" + } + }, + "required": [ + "CustomValues" + ], + "type": "object" + }, + "DataBarsOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "NegativeColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "DataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "DataFieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "DataLabelContent": { + "enum": [ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ], + "type": "string" + }, + "DataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DataLabelTypes": { + "items": { + "$ref": "#/definitions/DataLabelType" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelContent": { + "$ref": "#/definitions/DataLabelContent" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Overlap": { + "$ref": "#/definitions/DataLabelOverlap" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataLabelOverlap": { + "enum": [ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ], + "type": "string" + }, + "DataLabelPosition": { + "enum": [ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ], + "type": "string" + }, + "DataLabelType": { + "additionalProperties": false, + "properties": { + "DataPathLabelType": { + "$ref": "#/definitions/DataPathLabelType" + }, + "FieldLabelType": { + "$ref": "#/definitions/FieldLabelType" + }, + "MaximumLabelType": { + "$ref": "#/definitions/MaximumLabelType" + }, + "MinimumLabelType": { + "$ref": "#/definitions/MinimumLabelType" + }, + "RangeEndsLabelType": { + "$ref": "#/definitions/RangeEndsLabelType" + } + }, + "type": "object" + }, + "DataPathColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Element": { + "$ref": "#/definitions/DataPathValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Color", + "Element" + ], + "type": "object" + }, + "DataPathLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataPathSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortPaths": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Direction", + "SortPaths" + ], + "type": "object" + }, + "DataPathType": { + "additionalProperties": false, + "properties": { + "PivotTableDataPathType": { + "$ref": "#/definitions/PivotTableDataPathType" + } + }, + "type": "object" + }, + "DataPathValue": { + "additionalProperties": false, + "properties": { + "DataPathType": { + "$ref": "#/definitions/DataPathType" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DataSetConfiguration": { + "additionalProperties": false, + "properties": { + "ColumnGroupSchemaList": { + "items": { + "$ref": "#/definitions/ColumnGroupSchema" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "DataSetSchema": { + "$ref": "#/definitions/DataSetSchema" + }, + "Placeholder": { + "type": "string" + } + }, + "type": "object" + }, + "DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "pattern": "\\S", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "DataSetSchema": { + "additionalProperties": false, + "properties": { + "ColumnSchemaList": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ], + "type": "string" + }, + "DateAxisOptions": { + "additionalProperties": false, + "properties": { + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DateDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DateGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateTimeDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateTimeFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "DateTimeHierarchy": { + "additionalProperties": false, + "properties": { + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "HierarchyId" + ], + "type": "object" + }, + "DateTimeParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DateTimeDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DateTimeValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "DateTimePickerControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DateTimeValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "format": "date-time", + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DayOfTheWeek": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "type": "string" + }, + "DecimalDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DecimalParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DecimalDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DecimalValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "DecimalPlacesConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlaces": { + "maximum": 20, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "DecimalPlaces" + ], + "type": "object" + }, + "DecimalValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DefaultDateTimePickerControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "type": "object" + }, + "DefaultFilterControlConfiguration": { + "additionalProperties": false, + "properties": { + "ControlOptions": { + "$ref": "#/definitions/DefaultFilterControlOptions" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ControlOptions", + "Title" + ], + "type": "object" + }, + "DefaultFilterControlOptions": { + "additionalProperties": false, + "properties": { + "DefaultDateTimePickerOptions": { + "$ref": "#/definitions/DefaultDateTimePickerControlOptions" + }, + "DefaultDropdownOptions": { + "$ref": "#/definitions/DefaultFilterDropDownControlOptions" + }, + "DefaultListOptions": { + "$ref": "#/definitions/DefaultFilterListControlOptions" + }, + "DefaultRelativeDateTimeOptions": { + "$ref": "#/definitions/DefaultRelativeDateTimeControlOptions" + }, + "DefaultSliderOptions": { + "$ref": "#/definitions/DefaultSliderControlOptions" + }, + "DefaultTextAreaOptions": { + "$ref": "#/definitions/DefaultTextAreaControlOptions" + }, + "DefaultTextFieldOptions": { + "$ref": "#/definitions/DefaultTextFieldControlOptions" + } + }, + "type": "object" + }, + "DefaultFilterDropDownControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "type": "object" + }, + "DefaultFilterListControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "type": "object" + }, + "DefaultFreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultGridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultInteractiveLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeForm": { + "$ref": "#/definitions/DefaultFreeFormLayoutConfiguration" + }, + "Grid": { + "$ref": "#/definitions/DefaultGridLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultNewSheetConfiguration": { + "additionalProperties": false, + "properties": { + "InteractiveLayoutConfiguration": { + "$ref": "#/definitions/DefaultInteractiveLayoutConfiguration" + }, + "PaginatedLayoutConfiguration": { + "$ref": "#/definitions/DefaultPaginatedLayoutConfiguration" + }, + "SheetContentType": { + "$ref": "#/definitions/SheetContentType" + } + }, + "type": "object" + }, + "DefaultPaginatedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "SectionBased": { + "$ref": "#/definitions/DefaultSectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultRelativeDateTimeControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + } + }, + "type": "object" + }, + "DefaultSectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultSliderControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "StepSize" + ], + "type": "object" + }, + "DefaultTextAreaControlOptions": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + } + }, + "type": "object" + }, + "DefaultTextFieldControlOptions": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + } + }, + "type": "object" + }, + "DestinationParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValuesConfiguration": { + "$ref": "#/definitions/CustomValuesConfiguration" + }, + "SelectAllValueOptions": { + "$ref": "#/definitions/SelectAllValueOptions" + }, + "SourceColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceField": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SourceParameterName": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionField": { + "additionalProperties": false, + "properties": { + "CategoricalDimensionField": { + "$ref": "#/definitions/CategoricalDimensionField" + }, + "DateDimensionField": { + "$ref": "#/definitions/DateDimensionField" + }, + "NumericalDimensionField": { + "$ref": "#/definitions/NumericalDimensionField" + } + }, + "type": "object" + }, + "DonutCenterOptions": { + "additionalProperties": false, + "properties": { + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DonutOptions": { + "additionalProperties": false, + "properties": { + "ArcOptions": { + "$ref": "#/definitions/ArcOptions" + }, + "DonutCenterOptions": { + "$ref": "#/definitions/DonutCenterOptions" + } + }, + "type": "object" + }, + "DrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryDrillDownFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityDrillDownFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeDrillDownFilter" + } + }, + "type": "object" + }, + "DropDownControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DynamicDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValueColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "GroupNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "UserNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "DefaultValueColumn" + ], + "type": "object" + }, + "EmptyVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "Entity": { + "additionalProperties": false, + "properties": { + "Path": { + "pattern": "\\S", + "type": "string" + } + }, + "type": "object" + }, + "ExcludePeriodConfiguration": { + "additionalProperties": false, + "properties": { + "Amount": { + "default": null, + "type": "number" + }, + "Granularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "Amount", + "Granularity" + ], + "type": "object" + }, + "ExplicitHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 2, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "FieldBasedTooltip": { + "additionalProperties": false, + "properties": { + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, + "TooltipFields": { + "items": { + "$ref": "#/definitions/TooltipItem" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "TooltipTitleType": { + "$ref": "#/definitions/TooltipTitleType" + } + }, + "type": "object" + }, + "FieldLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "FieldSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Direction", + "FieldId" + ], + "type": "object" + }, + "FieldSortOptions": { + "additionalProperties": false, + "properties": { + "ColumnSort": { + "$ref": "#/definitions/ColumnSort" + }, + "FieldSort": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "FieldTooltipItem": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/FilledMapConditionalFormattingOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "ConditionalFormattingOptions" + ], + "type": "object" + }, + "FilledMapConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Shape": { + "$ref": "#/definitions/FilledMapShapeConditionalFormatting" + } + }, + "required": [ + "Shape" + ], + "type": "object" + }, + "FilledMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/FilledMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/FilledMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "FilledMapFieldWells": { + "additionalProperties": false, + "properties": { + "FilledMapAggregatedFieldWells": { + "$ref": "#/definitions/FilledMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "FilledMapShapeConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Format": { + "$ref": "#/definitions/ShapeConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FilledMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/FilledMapConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/NumericRangeFilter" + }, + "RelativeDatesFilter": { + "$ref": "#/definitions/RelativeDatesFilter" + }, + "TimeEqualityFilter": { + "$ref": "#/definitions/TimeEqualityFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeFilter" + }, + "TopBottomFilter": { + "$ref": "#/definitions/TopBottomFilter" + } + }, + "type": "object" + }, + "FilterControl": { + "additionalProperties": false, + "properties": { + "CrossSheet": { + "$ref": "#/definitions/FilterCrossSheetControl" + }, + "DateTimePicker": { + "$ref": "#/definitions/FilterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/FilterDropDownControl" + }, + "List": { + "$ref": "#/definitions/FilterListControl" + }, + "RelativeDateTime": { + "$ref": "#/definitions/FilterRelativeDateTimeControl" + }, + "Slider": { + "$ref": "#/definitions/FilterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/FilterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/FilterTextFieldControl" + } + }, + "type": "object" + }, + "FilterCrossSheetControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId" + ], + "type": "object" + }, + "FilterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterGroup": { + "additionalProperties": false, + "properties": { + "CrossDataset": { + "$ref": "#/definitions/CrossDatasetTypes" + }, + "FilterGroupId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "ScopeConfiguration": { + "$ref": "#/definitions/FilterScopeConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "CrossDataset", + "FilterGroupId", + "Filters", + "ScopeConfiguration" + ], + "type": "object" + }, + "FilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator" + ], + "type": "object" + }, + "FilterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterNullOption": { + "enum": [ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ], + "type": "string" + }, + "FilterOperationSelectedFieldsConfiguration": { + "additionalProperties": false, + "properties": { + "SelectedColumns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "$ref": "#/definitions/SelectedFieldOptions" + }, + "SelectedFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "FilterOperationTargetVisualsConfiguration": { + "additionalProperties": false, + "properties": { + "SameSheetTargetVisualConfiguration": { + "$ref": "#/definitions/SameSheetTargetVisualConfiguration" + } + }, + "type": "object" + }, + "FilterRelativeDateTimeControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "AllSheets": { + "$ref": "#/definitions/AllSheetsFilterScopeConfiguration" + }, + "SelectedSheets": { + "$ref": "#/definitions/SelectedSheetsFilterScopeConfiguration" + } + }, + "type": "object" + }, + "FilterSelectableValues": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "FilterControlId", + "MaximumValue", + "MinimumValue", + "SourceFilterId", + "StepSize", + "Title" + ], + "type": "object" + }, + "FilterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterVisualScope": { + "enum": [ + "ALL_VISUALS", + "SELECTED_VISUALS" + ], + "type": "string" + }, + "FontConfiguration": { + "additionalProperties": false, + "properties": { + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontDecoration": { + "$ref": "#/definitions/FontDecoration" + }, + "FontSize": { + "$ref": "#/definitions/FontSize" + }, + "FontStyle": { + "$ref": "#/definitions/FontStyle" + }, + "FontWeight": { + "$ref": "#/definitions/FontWeight" + } + }, + "type": "object" + }, + "FontDecoration": { + "enum": [ + "UNDERLINE", + "NONE" + ], + "type": "string" + }, + "FontSize": { + "additionalProperties": false, + "properties": { + "Relative": { + "$ref": "#/definitions/RelativeFontSize" + } + }, + "type": "object" + }, + "FontStyle": { + "enum": [ + "NORMAL", + "ITALIC" + ], + "type": "string" + }, + "FontWeight": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/FontWeightName" + } + }, + "type": "object" + }, + "FontWeightName": { + "enum": [ + "NORMAL", + "BOLD" + ], + "type": "string" + }, + "ForecastComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "CustomSeasonalityValue": { + "default": null, + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "LowerBoundary": { + "default": null, + "type": "number" + }, + "Name": { + "type": "string" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "$ref": "#/definitions/ForecastComputationSeasonality" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "UpperBoundary": { + "default": null, + "type": "number" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ForecastComputationSeasonality": { + "enum": [ + "AUTOMATIC", + "CUSTOM" + ], + "type": "string" + }, + "ForecastConfiguration": { + "additionalProperties": false, + "properties": { + "ForecastProperties": { + "$ref": "#/definitions/TimeBasedForecastProperties" + }, + "Scenario": { + "$ref": "#/definitions/ForecastScenario" + } + }, + "type": "object" + }, + "ForecastScenario": { + "additionalProperties": false, + "properties": { + "WhatIfPointScenario": { + "$ref": "#/definitions/WhatIfPointScenario" + }, + "WhatIfRangeScenario": { + "$ref": "#/definitions/WhatIfRangeScenario" + } + }, + "type": "object" + }, + "FormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "NumberFormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "StringFormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "type": "object" + }, + "FreeFormLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "FreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FreeFormLayoutElement": { + "additionalProperties": false, + "properties": { + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "BorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "Height": { + "type": "string" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "RenderingRules": { + "items": { + "$ref": "#/definitions/SheetElementRenderingRule" + }, + "maxItems": 10000, + "minItems": 0, + "type": "array" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + }, + "XAxisLocation": { + "type": "string" + }, + "YAxisLocation": { + "type": "string" + } + }, + "required": [ + "ElementId", + "ElementType", + "Height", + "Width", + "XAxisLocation", + "YAxisLocation" + ], + "type": "object" + }, + "FreeFormLayoutElementBackgroundStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutElementBorderStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "type": "string" + } + }, + "required": [ + "OptimizedViewPortWidth" + ], + "type": "object" + }, + "FreeFormSectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FunnelChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabelOptions": { + "$ref": "#/definitions/FunnelChartDataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/FunnelChartFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/FunnelChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "FunnelChartDataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureDataLabelStyle": { + "$ref": "#/definitions/FunnelChartMeasureDataLabelStyle" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FunnelChartFieldWells": { + "additionalProperties": false, + "properties": { + "FunnelChartAggregatedFieldWells": { + "$ref": "#/definitions/FunnelChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "FunnelChartMeasureDataLabelStyle": { + "enum": [ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ], + "type": "string" + }, + "FunnelChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FunnelChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GaugeChartArcConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/GaugeChartConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/GaugeChartArcConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/GaugeChartPrimaryValueConditionalFormatting" + } + }, + "type": "object" + }, + "GaugeChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/GaugeChartFieldWells" + }, + "GaugeChartOptions": { + "$ref": "#/definitions/GaugeChartOptions" + }, + "TooltipOptions": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "GaugeChartFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartOptions": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/ArcConfiguration" + }, + "ArcAxis": { + "$ref": "#/definitions/ArcAxisConfiguration" + }, + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "GaugeChartPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GaugeChartConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/GaugeChartConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialCoordinateBounds": { + "additionalProperties": false, + "properties": { + "East": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + }, + "North": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "South": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "West": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + } + }, + "required": [ + "East", + "North", + "South", + "West" + ], + "type": "object" + }, + "GeospatialHeatmapColorScale": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/GeospatialHeatmapDataColor" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialHeatmapConfiguration": { + "additionalProperties": false, + "properties": { + "HeatmapColor": { + "$ref": "#/definitions/GeospatialHeatmapColorScale" + } + }, + "type": "object" + }, + "GeospatialHeatmapDataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "GeospatialMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/GeospatialMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "PointStyleOptions": { + "$ref": "#/definitions/GeospatialPointStyleOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "GeospatialMapFieldWells": { + "additionalProperties": false, + "properties": { + "GeospatialMapAggregatedFieldWells": { + "$ref": "#/definitions/GeospatialMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "GeospatialMapStyleOptions": { + "additionalProperties": false, + "properties": { + "BaseMapStyle": { + "$ref": "#/definitions/BaseMapStyleType" + } + }, + "type": "object" + }, + "GeospatialMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GeospatialMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialPointStyleOptions": { + "additionalProperties": false, + "properties": { + "ClusterMarkerConfiguration": { + "$ref": "#/definitions/ClusterMarkerConfiguration" + }, + "HeatmapConfiguration": { + "$ref": "#/definitions/GeospatialHeatmapConfiguration" + }, + "SelectedPointStyle": { + "$ref": "#/definitions/GeospatialSelectedPointStyle" + } + }, + "type": "object" + }, + "GeospatialSelectedPointStyle": { + "enum": [ + "POINT", + "CLUSTER", + "HEATMAP" + ], + "type": "string" + }, + "GeospatialWindowOptions": { + "additionalProperties": false, + "properties": { + "Bounds": { + "$ref": "#/definitions/GeospatialCoordinateBounds" + }, + "MapZoomMode": { + "$ref": "#/definitions/MapZoomMode" + } + }, + "type": "object" + }, + "GlobalTableBorderOptions": { + "additionalProperties": false, + "properties": { + "SideSpecificBorder": { + "$ref": "#/definitions/TableSideBorderOptions" + }, + "UniformBorder": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "GradientColor": { + "additionalProperties": false, + "properties": { + "Stops": { + "items": { + "$ref": "#/definitions/GradientStop" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GradientStop": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + }, + "GradientOffset": { + "default": 0, + "type": "number" + } + }, + "required": [ + "GradientOffset" + ], + "type": "object" + }, + "GridLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "GridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/GridLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "GridLayoutElement": { + "additionalProperties": false, + "properties": { + "ColumnIndex": { + "maximum": 35, + "minimum": 0, + "type": "number" + }, + "ColumnSpan": { + "maximum": 36, + "minimum": 1, + "type": "number" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "RowIndex": { + "maximum": 9009, + "minimum": 0, + "type": "number" + }, + "RowSpan": { + "maximum": 21, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "ColumnSpan", + "ElementId", + "ElementType", + "RowSpan" + ], + "type": "object" + }, + "GridLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "type": "string" + }, + "ResizeOption": { + "$ref": "#/definitions/ResizeOption" + } + }, + "required": [ + "ResizeOption" + ], + "type": "object" + }, + "GrowthRateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodSize": { + "default": 0, + "maximum": 52, + "minimum": 2, + "type": "number" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "HeaderFooterSectionConfiguration": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Layout", + "SectionId" + ], + "type": "object" + }, + "HeatMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "ColumnLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HeatMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "RowLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/HeatMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "HeatMapFieldWells": { + "additionalProperties": false, + "properties": { + "HeatMapAggregatedFieldWells": { + "$ref": "#/definitions/HeatMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "HeatMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "HeatMapColumnItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapColumnSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "HeatMapRowItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapRowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HeatMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HistogramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HistogramBinOptions": { + "additionalProperties": false, + "properties": { + "BinCount": { + "$ref": "#/definitions/BinCountOptions" + }, + "BinWidth": { + "$ref": "#/definitions/BinWidthOptions" + }, + "SelectedBinType": { + "$ref": "#/definitions/HistogramBinType" + }, + "StartValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "HistogramBinType": { + "enum": [ + "BIN_COUNT", + "BIN_WIDTH" + ], + "type": "string" + }, + "HistogramConfiguration": { + "additionalProperties": false, + "properties": { + "BinOptions": { + "$ref": "#/definitions/HistogramBinOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HistogramFieldWells" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + } + }, + "type": "object" + }, + "HistogramFieldWells": { + "additionalProperties": false, + "properties": { + "HistogramAggregatedFieldWells": { + "$ref": "#/definitions/HistogramAggregatedFieldWells" + } + }, + "type": "object" + }, + "HistogramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HistogramConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HorizontalTextAlignment": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ], + "type": "string" + }, + "Icon": { + "enum": [ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ], + "type": "string" + }, + "InsightConfiguration": { + "additionalProperties": false, + "properties": { + "Computations": { + "items": { + "$ref": "#/definitions/Computation" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "CustomNarrative": { + "$ref": "#/definitions/CustomNarrativeOptions" + } + }, + "type": "object" + }, + "InsightVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "InsightConfiguration": { + "$ref": "#/definitions/InsightConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "IntegerDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "IntegerParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/IntegerDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/IntegerValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "IntegerValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "ItemsLimitConfiguration": { + "additionalProperties": false, + "properties": { + "ItemsLimit": { + "default": null, + "type": "number" + }, + "OtherCategories": { + "$ref": "#/definitions/OtherCategories" + } + }, + "type": "object" + }, + "KPIActualValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIComparisonValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/KPIConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "ActualValue": { + "$ref": "#/definitions/KPIActualValueConditionalFormatting" + }, + "ComparisonValue": { + "$ref": "#/definitions/KPIComparisonValueConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/KPIPrimaryValueConditionalFormatting" + }, + "ProgressBar": { + "$ref": "#/definitions/KPIProgressBarConditionalFormatting" + } + }, + "type": "object" + }, + "KPIConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/KPIFieldWells" + }, + "KPIOptions": { + "$ref": "#/definitions/KPIOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/KPISortConfiguration" + } + }, + "type": "object" + }, + "KPIFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrendGroups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIOptions": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "ProgressBar": { + "$ref": "#/definitions/ProgressBarOptions" + }, + "SecondaryValue": { + "$ref": "#/definitions/SecondaryValueOptions" + }, + "SecondaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Sparkline": { + "$ref": "#/definitions/KPISparklineOptions" + }, + "TrendArrows": { + "$ref": "#/definitions/TrendArrowOptions" + }, + "VisualLayoutOptions": { + "$ref": "#/definitions/KPIVisualLayoutOptions" + } + }, + "type": "object" + }, + "KPIPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIProgressBarConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPISortConfiguration": { + "additionalProperties": false, + "properties": { + "TrendGroupSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPISparklineOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Type": { + "$ref": "#/definitions/KPISparklineType" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPISparklineType": { + "enum": [ + "LINE", + "AREA" + ], + "type": "string" + }, + "KPIVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/KPIConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/KPIConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "KPIVisualLayoutOptions": { + "additionalProperties": false, + "properties": { + "StandardLayout": { + "$ref": "#/definitions/KPIVisualStandardLayout" + } + }, + "type": "object" + }, + "KPIVisualStandardLayout": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/KPIVisualStandardLayoutType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPIVisualStandardLayoutType": { + "enum": [ + "CLASSIC", + "VERTICAL" + ], + "type": "string" + }, + "LabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/LayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "LayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormLayoutConfiguration" + }, + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + }, + "SectionBasedLayout": { + "$ref": "#/definitions/SectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "LayoutElementType": { + "enum": [ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ], + "type": "string" + }, + "LegendOptions": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "string" + }, + "Position": { + "$ref": "#/definitions/LegendPosition" + }, + "Title": { + "$ref": "#/definitions/LabelOptions" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + } + }, + "type": "object" + }, + "LegendPosition": { + "enum": [ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ], + "type": "string" + }, + "LineChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartConfiguration": { + "additionalProperties": false, + "properties": { + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DefaultSeriesSettings": { + "$ref": "#/definitions/LineChartDefaultSeriesSettings" + }, + "FieldWells": { + "$ref": "#/definitions/LineChartFieldWells" + }, + "ForecastConfigurations": { + "items": { + "$ref": "#/definitions/ForecastConfiguration" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Series": { + "items": { + "$ref": "#/definitions/SeriesItem" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/LineChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "Type": { + "$ref": "#/definitions/LineChartType" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "LineChartDefaultSeriesSettings": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartFieldWells": { + "additionalProperties": false, + "properties": { + "LineChartAggregatedFieldWells": { + "$ref": "#/definitions/LineChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "LineChartLineStyle": { + "enum": [ + "SOLID", + "DOTTED", + "DASHED" + ], + "type": "string" + }, + "LineChartLineStyleSettings": { + "additionalProperties": false, + "properties": { + "LineInterpolation": { + "$ref": "#/definitions/LineInterpolation" + }, + "LineStyle": { + "$ref": "#/definitions/LineChartLineStyle" + }, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LineWidth": { + "type": "string" + } + }, + "type": "object" + }, + "LineChartMarkerShape": { + "enum": [ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ], + "type": "string" + }, + "LineChartMarkerStyleSettings": { + "additionalProperties": false, + "properties": { + "MarkerColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MarkerShape": { + "$ref": "#/definitions/LineChartMarkerShape" + }, + "MarkerSize": { + "type": "string" + }, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LineChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartType": { + "enum": [ + "LINE", + "AREA", + "STACKED_AREA" + ], + "type": "string" + }, + "LineChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/LineChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "LineInterpolation": { + "enum": [ + "LINEAR", + "SMOOTH", + "STEPPED" + ], + "type": "string" + }, + "LineSeriesAxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "MissingDataConfigurations": { + "items": { + "$ref": "#/definitions/MissingDataConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ListControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SearchOptions": { + "$ref": "#/definitions/ListControlSearchOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "ListControlSearchOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ListControlSelectAllOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LoadingAnimation": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LocalNavigationConfiguration": { + "additionalProperties": false, + "properties": { + "TargetSheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "TargetSheetId" + ], + "type": "object" + }, + "LongFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "MapZoomMode": { + "enum": [ + "AUTO", + "MANUAL" + ], + "type": "string" + }, + "MappedDataSetParameter": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DataSetParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "DataSetParameterName" + ], + "type": "object" + }, + "MaximumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MaximumMinimumComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/MaximumMinimumComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "MaximumMinimumComputationType": { + "enum": [ + "MAXIMUM", + "MINIMUM" + ], + "type": "string" + }, + "MeasureField": { + "additionalProperties": false, + "properties": { + "CalculatedMeasureField": { + "$ref": "#/definitions/CalculatedMeasureField" + }, + "CategoricalMeasureField": { + "$ref": "#/definitions/CategoricalMeasureField" + }, + "DateMeasureField": { + "$ref": "#/definitions/DateMeasureField" + }, + "NumericalMeasureField": { + "$ref": "#/definitions/NumericalMeasureField" + } + }, + "type": "object" + }, + "MetricComparisonComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "FromValue": { + "$ref": "#/definitions/MeasureField" + }, + "Name": { + "type": "string" + }, + "TargetValue": { + "$ref": "#/definitions/MeasureField" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "MinimumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MissingDataConfiguration": { + "additionalProperties": false, + "properties": { + "TreatmentOption": { + "$ref": "#/definitions/MissingDataTreatmentOption" + } + }, + "type": "object" + }, + "MissingDataTreatmentOption": { + "enum": [ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ], + "type": "string" + }, + "NegativeValueConfiguration": { + "additionalProperties": false, + "properties": { + "DisplayMode": { + "$ref": "#/definitions/NegativeValueDisplayMode" + } + }, + "required": [ + "DisplayMode" + ], + "type": "object" + }, + "NegativeValueDisplayMode": { + "enum": [ + "POSITIVE", + "NEGATIVE" + ], + "type": "string" + }, + "NullValueFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullString": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "NullString" + ], + "type": "object" + }, + "NumberDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "NumberFormatConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "NumericAxisOptions": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/AxisDisplayRange" + }, + "Scale": { + "$ref": "#/definitions/AxisScale" + } + }, + "type": "object" + }, + "NumericEqualityDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Column", + "Value" + ], + "type": "object" + }, + "NumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/NumericEqualityMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + }, + "Value": { + "default": null, + "type": "number" + } + }, + "required": [ + "Column", + "FilterId", + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "NumericEqualityMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL" + ], + "type": "string" + }, + "NumericFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "NumericFormatConfiguration": { + "additionalProperties": false, + "properties": { + "CurrencyDisplayFormatConfiguration": { + "$ref": "#/definitions/CurrencyDisplayFormatConfiguration" + }, + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "NumericRangeFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "RangeMinimum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "NumericRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StaticValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "NumericSeparatorConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalSeparator": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "ThousandsSeparator": { + "$ref": "#/definitions/ThousandSeparatorOptions" + } + }, + "type": "object" + }, + "NumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT", + "SPACE" + ], + "type": "string" + }, + "NumericalAggregationFunction": { + "additionalProperties": false, + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/PercentileAggregation" + }, + "SimpleNumericalAggregation": { + "$ref": "#/definitions/SimpleNumericalAggregationFunction" + } + }, + "type": "object" + }, + "NumericalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "NumericalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "OtherCategories": { + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "type": "string" + }, + "PaginationConfiguration": { + "additionalProperties": false, + "properties": { + "PageNumber": { + "minimum": 0, + "type": "number" + }, + "PageSize": { + "default": null, + "type": "number" + } + }, + "required": [ + "PageNumber", + "PageSize" + ], + "type": "object" + }, + "PanelBorderStyle": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "PanelConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BorderStyle": { + "$ref": "#/definitions/PanelBorderStyle" + }, + "BorderThickness": { + "type": "string" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GutterSpacing": { + "type": "string" + }, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Title": { + "$ref": "#/definitions/PanelTitleOptions" + } + }, + "type": "object" + }, + "PanelTitleOptions": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PaperOrientation": { + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "type": "string" + }, + "PaperSize": { + "enum": [ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ], + "type": "string" + }, + "ParameterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/ParameterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/ParameterDropDownControl" + }, + "List": { + "$ref": "#/definitions/ParameterListControl" + }, + "Slider": { + "$ref": "#/definitions/ParameterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/ParameterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/ParameterTextFieldControl" + } + }, + "type": "object" + }, + "ParameterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DateTimeParameterDeclaration": { + "$ref": "#/definitions/DateTimeParameterDeclaration" + }, + "DecimalParameterDeclaration": { + "$ref": "#/definitions/DecimalParameterDeclaration" + }, + "IntegerParameterDeclaration": { + "$ref": "#/definitions/IntegerParameterDeclaration" + }, + "StringParameterDeclaration": { + "$ref": "#/definitions/StringParameterDeclaration" + } + }, + "type": "object" + }, + "ParameterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterSelectableValues": { + "additionalProperties": false, + "properties": { + "LinkToDataSetColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ParameterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "ParameterControlId", + "SourceParameterName", + "StepSize", + "Title" + ], + "type": "object" + }, + "ParameterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterValueType": { + "enum": [ + "MULTI_VALUED", + "SINGLE_VALUED" + ], + "type": "string" + }, + "PercentVisibleRange": { + "additionalProperties": false, + "properties": { + "From": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "To": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PercentageDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PercentileAggregation": { + "additionalProperties": false, + "properties": { + "PercentileValue": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PeriodOverPeriodComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PeriodToDateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodTimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PieChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DonutOptions": { + "$ref": "#/definitions/DonutOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PieChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PieChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "PieChartFieldWells": { + "additionalProperties": false, + "properties": { + "PieChartAggregatedFieldWells": { + "$ref": "#/definitions/PieChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "PieChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PieChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotFieldSortOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SortBy": { + "$ref": "#/definitions/PivotTableSortBy" + } + }, + "required": [ + "FieldId", + "SortBy" + ], + "type": "object" + }, + "PivotTableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingOption" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/PivotTableCellConditionalFormatting" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScope": { + "additionalProperties": false, + "properties": { + "Role": { + "$ref": "#/definitions/PivotTableConditionalFormattingScopeRole" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScopeRole": { + "enum": [ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ], + "type": "string" + }, + "PivotTableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/PivotTableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PivotTableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/PivotTablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PivotTableSortConfiguration" + }, + "TableOptions": { + "$ref": "#/definitions/PivotTableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/PivotTableTotalOptions" + } + }, + "type": "object" + }, + "PivotTableDataPathOption": { + "additionalProperties": false, + "properties": { + "DataPathList": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Width": { + "type": "string" + } + }, + "required": [ + "DataPathList" + ], + "type": "object" + }, + "PivotTableDataPathType": { + "enum": [ + "HIERARCHY_ROWS_LAYOUT_COLUMN", + "MULTIPLE_ROW_METRICS_COLUMN", + "EMPTY_COLUMN_HEADER", + "COUNT_METRIC_COLUMN" + ], + "type": "string" + }, + "PivotTableFieldCollapseState": { + "enum": [ + "COLLAPSED", + "EXPANDED" + ], + "type": "string" + }, + "PivotTableFieldCollapseStateOption": { + "additionalProperties": false, + "properties": { + "State": { + "$ref": "#/definitions/PivotTableFieldCollapseState" + }, + "Target": { + "$ref": "#/definitions/PivotTableFieldCollapseStateTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "PivotTableFieldCollapseStateTarget": { + "additionalProperties": false, + "properties": { + "FieldDataPathValues": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "FieldId": { + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableFieldOptions": { + "additionalProperties": false, + "properties": { + "CollapseStateOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldCollapseStateOption" + }, + "type": "array" + }, + "DataPathOptions": { + "items": { + "$ref": "#/definitions/PivotTableDataPathOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableFieldSubtotalOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldWells": { + "additionalProperties": false, + "properties": { + "PivotTableAggregatedFieldWells": { + "$ref": "#/definitions/PivotTableAggregatedFieldWells" + } + }, + "type": "object" + }, + "PivotTableMetricPlacement": { + "enum": [ + "ROW", + "COLUMN" + ], + "type": "string" + }, + "PivotTableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ColumnHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DefaultCellWidth": { + "type": "string" + }, + "MetricPlacement": { + "$ref": "#/definitions/PivotTableMetricPlacement" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + }, + "RowFieldNamesStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowsLabelOptions": { + "$ref": "#/definitions/PivotTableRowsLabelOptions" + }, + "RowsLayout": { + "$ref": "#/definitions/PivotTableRowsLayout" + }, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLayout": { + "enum": [ + "TABULAR", + "HIERARCHY" + ], + "type": "string" + }, + "PivotTableSortBy": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnSort" + }, + "DataPath": { + "$ref": "#/definitions/DataPathSort" + }, + "Field": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "PivotTableSortConfiguration": { + "additionalProperties": false, + "properties": { + "FieldSortOptions": { + "items": { + "$ref": "#/definitions/PivotFieldSortOptions" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableSubtotalLevel": { + "enum": [ + "ALL", + "CUSTOM", + "LAST" + ], + "type": "string" + }, + "PivotTableTotalOptions": { + "additionalProperties": false, + "properties": { + "ColumnSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "ColumnTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + }, + "RowSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "RowTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + } + }, + "type": "object" + }, + "PivotTableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PivotTableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/PivotTableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotTotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "PredefinedHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "PrimaryValueDisplayType": { + "enum": [ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ], + "type": "string" + }, + "ProgressBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Color": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartAreaStyleSettings": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAxesRangeScale": { + "enum": [ + "AUTO", + "INDEPENDENT", + "SHARED" + ], + "type": "string" + }, + "RadarChartConfiguration": { + "additionalProperties": false, + "properties": { + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AlternateBandEvenColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AlternateBandOddColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AxesRangeScale": { + "$ref": "#/definitions/RadarChartAxesRangeScale" + }, + "BaseSeriesSettings": { + "$ref": "#/definitions/RadarChartSeriesSettings" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/RadarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Shape": { + "$ref": "#/definitions/RadarChartShape" + }, + "SortConfiguration": { + "$ref": "#/definitions/RadarChartSortConfiguration" + }, + "StartAngle": { + "maximum": 360, + "minimum": -360, + "type": "number" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "RadarChartFieldWells": { + "additionalProperties": false, + "properties": { + "RadarChartAggregatedFieldWells": { + "$ref": "#/definitions/RadarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "RadarChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "AreaStyleSettings": { + "$ref": "#/definitions/RadarChartAreaStyleSettings" + } + }, + "type": "object" + }, + "RadarChartShape": { + "enum": [ + "CIRCLE", + "POLYGON" + ], + "type": "string" + }, + "RadarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/RadarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "RangeEndsLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ReferenceLine": { + "additionalProperties": false, + "properties": { + "DataConfiguration": { + "$ref": "#/definitions/ReferenceLineDataConfiguration" + }, + "LabelConfiguration": { + "$ref": "#/definitions/ReferenceLineLabelConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "StyleConfiguration": { + "$ref": "#/definitions/ReferenceLineStyleConfiguration" + } + }, + "required": [ + "DataConfiguration" + ], + "type": "object" + }, + "ReferenceLineCustomLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "pattern": "\\S", + "type": "string" + } + }, + "required": [ + "CustomLabel" + ], + "type": "object" + }, + "ReferenceLineDataConfiguration": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "DynamicConfiguration": { + "$ref": "#/definitions/ReferenceLineDynamicDataConfiguration" + }, + "SeriesType": { + "$ref": "#/definitions/ReferenceLineSeriesType" + }, + "StaticConfiguration": { + "$ref": "#/definitions/ReferenceLineStaticDataConfiguration" + } + }, + "type": "object" + }, + "ReferenceLineDynamicDataConfiguration": { + "additionalProperties": false, + "properties": { + "Calculation": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "MeasureAggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + } + }, + "required": [ + "Calculation", + "Column" + ], + "type": "object" + }, + "ReferenceLineLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineCustomLabelConfiguration" + }, + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalPosition": { + "$ref": "#/definitions/ReferenceLineLabelHorizontalPosition" + }, + "ValueLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineValueLabelConfiguration" + }, + "VerticalPosition": { + "$ref": "#/definitions/ReferenceLineLabelVerticalPosition" + } + }, + "type": "object" + }, + "ReferenceLineLabelHorizontalPosition": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "ReferenceLineLabelVerticalPosition": { + "enum": [ + "ABOVE", + "BELOW" + ], + "type": "string" + }, + "ReferenceLinePatternType": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "ReferenceLineSeriesType": { + "enum": [ + "BAR", + "LINE" + ], + "type": "string" + }, + "ReferenceLineStaticDataConfiguration": { + "additionalProperties": false, + "properties": { + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "ReferenceLineStyleConfiguration": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Pattern": { + "$ref": "#/definitions/ReferenceLinePatternType" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + }, + "RelativePosition": { + "$ref": "#/definitions/ReferenceLineValueLabelRelativePosition" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelRelativePosition": { + "enum": [ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ], + "type": "string" + }, + "RelativeDateTimeControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "RelativeDateType": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ], + "type": "string" + }, + "RelativeDatesFilter": { + "additionalProperties": false, + "properties": { + "AnchorDateConfiguration": { + "$ref": "#/definitions/AnchorDateConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MinimumGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RelativeDateType": { + "$ref": "#/definitions/RelativeDateType" + }, + "RelativeDateValue": { + "default": null, + "type": "number" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AnchorDateConfiguration", + "Column", + "FilterId", + "NullOption", + "RelativeDateType", + "TimeGranularity" + ], + "type": "object" + }, + "RelativeFontSize": { + "enum": [ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "type": "string" + }, + "ResizeOption": { + "enum": [ + "FIXED", + "RESPONSIVE" + ], + "type": "string" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "RollingDateConfiguration": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "RowAlternateColorOptions": { + "additionalProperties": false, + "properties": { + "RowAlternateColors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "UsePrimaryBackgroundColor": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "type": "object" + }, + "SameSheetTargetVisualConfiguration": { + "additionalProperties": false, + "properties": { + "TargetVisualOptions": { + "$ref": "#/definitions/TargetVisualOptions" + }, + "TargetVisuals": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Destination": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Source": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Weight": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/SankeyDiagramFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/SankeyDiagramSortConfiguration" + } + }, + "type": "object" + }, + "SankeyDiagramFieldWells": { + "additionalProperties": false, + "properties": { + "SankeyDiagramAggregatedFieldWells": { + "$ref": "#/definitions/SankeyDiagramAggregatedFieldWells" + } + }, + "type": "object" + }, + "SankeyDiagramSortConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SourceItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "WeightSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/SankeyDiagramChartConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScatterPlotCategoricallyAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ScatterPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "YAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "ScatterPlotFieldWells": { + "additionalProperties": false, + "properties": { + "ScatterPlotCategoricallyAggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotCategoricallyAggregatedFieldWells" + }, + "ScatterPlotUnaggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "ScatterPlotUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ScatterPlotConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScrollBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "VisibleRange": { + "$ref": "#/definitions/VisibleRangeOptions" + } + }, + "type": "object" + }, + "SecondaryValueOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SectionAfterPageBreak": { + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/SectionPageBreakStatus" + } + }, + "type": "object" + }, + "SectionBasedLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperCanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutPaperCanvasSizeOptions" + } + }, + "type": "object" + }, + "SectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "BodySections": { + "items": { + "$ref": "#/definitions/BodySectionConfiguration" + }, + "maxItems": 28, + "minItems": 0, + "type": "array" + }, + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + }, + "FooterSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "HeaderSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "BodySections", + "CanvasSizeOptions", + "FooterSections", + "HeaderSections" + ], + "type": "object" + }, + "SectionBasedLayoutPaperCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperMargin": { + "$ref": "#/definitions/Spacing" + }, + "PaperOrientation": { + "$ref": "#/definitions/PaperOrientation" + }, + "PaperSize": { + "$ref": "#/definitions/PaperSize" + } + }, + "type": "object" + }, + "SectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormSectionLayoutConfiguration" + } + }, + "required": [ + "FreeFormLayout" + ], + "type": "object" + }, + "SectionPageBreakConfiguration": { + "additionalProperties": false, + "properties": { + "After": { + "$ref": "#/definitions/SectionAfterPageBreak" + } + }, + "type": "object" + }, + "SectionPageBreakStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "SectionStyle": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "string" + }, + "Padding": { + "$ref": "#/definitions/Spacing" + } + }, + "type": "object" + }, + "SelectAllValueOptions": { + "enum": [ + "ALL_VALUES" + ], + "type": "string" + }, + "SelectedFieldOptions": { + "enum": [ + "ALL_FIELDS" + ], + "type": "string" + }, + "SelectedSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "SheetVisualScopingConfigurations": { + "items": { + "$ref": "#/definitions/SheetVisualScopingConfiguration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SelectedTooltipType": { + "enum": [ + "BASIC", + "DETAILED" + ], + "type": "string" + }, + "SeriesItem": { + "additionalProperties": false, + "properties": { + "DataFieldSeriesItem": { + "$ref": "#/definitions/DataFieldSeriesItem" + }, + "FieldSeriesItem": { + "$ref": "#/definitions/FieldSeriesItem" + } + }, + "type": "object" + }, + "SetParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/DestinationParameterValueConfiguration" + } + }, + "required": [ + "DestinationParameterName", + "Value" + ], + "type": "object" + }, + "ShapeConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "required": [ + "BackgroundColor" + ], + "type": "object" + }, + "Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "type": "object" + }, + "SheetContentType": { + "enum": [ + "PAGINATED", + "INTERACTIVE" + ], + "type": "string" + }, + "SheetControlDateTimePickerType": { + "enum": [ + "SINGLE_VALUED", + "DATE_RANGE" + ], + "type": "string" + }, + "SheetControlInfoIconLabelOptions": { + "additionalProperties": false, + "properties": { + "InfoIconText": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetControlLayout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/SheetControlLayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "SheetControlLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + } + }, + "type": "object" + }, + "SheetControlListType": { + "enum": [ + "MULTI_SELECT", + "SINGLE_SELECT" + ], + "type": "string" + }, + "SheetControlSliderType": { + "enum": [ + "SINGLE_POINT", + "RANGE" + ], + "type": "string" + }, + "SheetDefinition": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/SheetContentType" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "FilterControls": { + "items": { + "$ref": "#/definitions/FilterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Layouts": { + "items": { + "$ref": "#/definitions/Layout" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ParameterControls": { + "items": { + "$ref": "#/definitions/ParameterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SheetControlLayouts": { + "items": { + "$ref": "#/definitions/SheetControlLayout" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "TextBoxes": { + "items": { + "$ref": "#/definitions/SheetTextBox" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Title": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visuals": { + "items": { + "$ref": "#/definitions/Visual" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "SheetId" + ], + "type": "object" + }, + "SheetElementConfigurationOverrides": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetElementRenderingRule": { + "additionalProperties": false, + "properties": { + "ConfigurationOverrides": { + "$ref": "#/definitions/SheetElementConfigurationOverrides" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ConfigurationOverrides", + "Expression" + ], + "type": "object" + }, + "SheetTextBox": { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + }, + "SheetTextBoxId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "SheetTextBoxId" + ], + "type": "object" + }, + "SheetVisualScopingConfiguration": { + "additionalProperties": false, + "properties": { + "Scope": { + "$ref": "#/definitions/FilterVisualScope" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "VisualIds": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Scope", + "SheetId" + ], + "type": "object" + }, + "ShortFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SimpleAttributeAggregationFunction": { + "enum": [ + "UNIQUE_VALUE" + ], + "type": "string" + }, + "SimpleClusterMarker": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "SimpleNumericalAggregationFunction": { + "enum": [ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ], + "type": "string" + }, + "SimpleTotalAggregationFunction": { + "enum": [ + "DEFAULT", + "SUM", + "AVERAGE", + "MIN", + "MAX", + "NONE" + ], + "type": "string" + }, + "SliderControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "SmallMultiplesAxisPlacement": { + "enum": [ + "OUTSIDE", + "INSIDE" + ], + "type": "string" + }, + "SmallMultiplesAxisProperties": { + "additionalProperties": false, + "properties": { + "Placement": { + "$ref": "#/definitions/SmallMultiplesAxisPlacement" + }, + "Scale": { + "$ref": "#/definitions/SmallMultiplesAxisScale" + } + }, + "type": "object" + }, + "SmallMultiplesAxisScale": { + "enum": [ + "SHARED", + "INDEPENDENT" + ], + "type": "string" + }, + "SmallMultiplesOptions": { + "additionalProperties": false, + "properties": { + "MaxVisibleColumns": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "MaxVisibleRows": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "PanelConfiguration": { + "$ref": "#/definitions/PanelConfiguration" + }, + "XAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + }, + "YAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + } + }, + "type": "object" + }, + "SortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "Spacing": { + "additionalProperties": false, + "properties": { + "Bottom": { + "type": "string" + }, + "Left": { + "type": "string" + }, + "Right": { + "type": "string" + }, + "Top": { + "type": "string" + } + }, + "type": "object" + }, + "SpecialValue": { + "enum": [ + "EMPTY", + "NULL", + "OTHER" + ], + "type": "string" + }, + "StringDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "StringFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "StringParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/StringDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/StringValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "StringValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "StyledCellType": { + "enum": [ + "TOTAL", + "METRIC_HEADER", + "VALUE" + ], + "type": "string" + }, + "SubtotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FieldLevel": { + "$ref": "#/definitions/PivotTableSubtotalLevel" + }, + "FieldLevelOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldSubtotalOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "StyleTargets": { + "items": { + "$ref": "#/definitions/TableStyleTarget" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "TableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableBorderOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/TableBorderStyle" + }, + "Thickness": { + "maximum": 4, + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TableBorderStyle": { + "enum": [ + "NONE", + "SOLID" + ], + "type": "string" + }, + "TableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableCellImageScalingConfiguration": { + "enum": [ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ], + "type": "string" + }, + "TableCellImageSizingConfiguration": { + "additionalProperties": false, + "properties": { + "TableCellImageScalingConfiguration": { + "$ref": "#/definitions/TableCellImageScalingConfiguration" + } + }, + "type": "object" + }, + "TableCellStyle": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Border": { + "$ref": "#/definitions/GlobalTableBorderOptions" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Height": { + "maximum": 500, + "minimum": 8, + "type": "number" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "TextWrap": { + "$ref": "#/definitions/TextWrap" + }, + "VerticalTextAlignment": { + "$ref": "#/definitions/VerticalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/TableConditionalFormattingOption" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/TableCellConditionalFormatting" + }, + "Row": { + "$ref": "#/definitions/TableRowConditionalFormatting" + } + }, + "type": "object" + }, + "TableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/TableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/TablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TableSortConfiguration" + }, + "TableInlineVisualizations": { + "items": { + "$ref": "#/definitions/TableInlineVisualization" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TableOptions": { + "$ref": "#/definitions/TableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/TotalOptions" + } + }, + "type": "object" + }, + "TableFieldCustomIconContent": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/TableFieldIconSetType" + } + }, + "type": "object" + }, + "TableFieldCustomTextContent": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "FontConfiguration" + ], + "type": "object" + }, + "TableFieldIconSetType": { + "enum": [ + "LINK" + ], + "type": "string" + }, + "TableFieldImageConfiguration": { + "additionalProperties": false, + "properties": { + "SizingOptions": { + "$ref": "#/definitions/TableCellImageSizingConfiguration" + } + }, + "type": "object" + }, + "TableFieldLinkConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/TableFieldLinkContentConfiguration" + }, + "Target": { + "$ref": "#/definitions/URLTargetConfiguration" + } + }, + "required": [ + "Content", + "Target" + ], + "type": "object" + }, + "TableFieldLinkContentConfiguration": { + "additionalProperties": false, + "properties": { + "CustomIconContent": { + "$ref": "#/definitions/TableFieldCustomIconContent" + }, + "CustomTextContent": { + "$ref": "#/definitions/TableFieldCustomTextContent" + } + }, + "type": "object" + }, + "TableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "URLStyling": { + "$ref": "#/definitions/TableFieldURLConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableFieldOptions": { + "additionalProperties": false, + "properties": { + "Order": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "PinnedFieldOptions": { + "$ref": "#/definitions/TablePinnedFieldOptions" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/TableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableFieldURLConfiguration": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/TableFieldImageConfiguration" + }, + "LinkConfiguration": { + "$ref": "#/definitions/TableFieldLinkConfiguration" + } + }, + "type": "object" + }, + "TableFieldWells": { + "additionalProperties": false, + "properties": { + "TableAggregatedFieldWells": { + "$ref": "#/definitions/TableAggregatedFieldWells" + }, + "TableUnaggregatedFieldWells": { + "$ref": "#/definitions/TableUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "TableInlineVisualization": { + "additionalProperties": false, + "properties": { + "DataBars": { + "$ref": "#/definitions/DataBarsOptions" + } + }, + "type": "object" + }, + "TableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "HeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Orientation": { + "$ref": "#/definitions/TableOrientation" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + } + }, + "type": "object" + }, + "TableOrientation": { + "enum": [ + "VERTICAL", + "HORIZONTAL" + ], + "type": "string" + }, + "TablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TablePinnedFieldOptions": { + "additionalProperties": false, + "properties": { + "PinnedLeftFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 201, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableRowConditionalFormatting": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TableSideBorderOptions": { + "additionalProperties": false, + "properties": { + "Bottom": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerHorizontal": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerVertical": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Left": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Right": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Top": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "TableSortConfiguration": { + "additionalProperties": false, + "properties": { + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + }, + "RowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableStyleTarget": { + "additionalProperties": false, + "properties": { + "CellType": { + "$ref": "#/definitions/StyledCellType" + } + }, + "required": [ + "CellType" + ], + "type": "object" + }, + "TableTotalsPlacement": { + "enum": [ + "START", + "END", + "AUTO" + ], + "type": "string" + }, + "TableTotalsScrollStatus": { + "enum": [ + "PINNED", + "SCROLLED" + ], + "type": "string" + }, + "TableUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/UnaggregatedField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/TableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetVisualOptions": { + "enum": [ + "ALL_VISUALS" + ], + "type": "string" + }, + "TemplateError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": "\\S", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/TemplateErrorType" + }, + "ViolatedEntities": { + "items": { + "$ref": "#/definitions/Entity" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TemplateErrorType": { + "enum": [ + "SOURCE_NOT_FOUND", + "DATA_SET_NOT_FOUND", + "INTERNAL_FAILURE", + "ACCESS_DENIED" + ], + "type": "string" + }, + "TemplateSourceAnalysis": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/DataSetReference" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "TemplateSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceAnalysis": { + "$ref": "#/definitions/TemplateSourceAnalysis" + }, + "SourceTemplate": { + "$ref": "#/definitions/TemplateSourceTemplate" + } + }, + "type": "object" + }, + "TemplateSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TemplateVersion": { + "additionalProperties": false, + "properties": { + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DataSetConfigurations": { + "items": { + "$ref": "#/definitions/DataSetConfiguration" + }, + "maxItems": 30, + "minItems": 0, + "type": "array" + }, + "Description": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/TemplateError" + }, + "minItems": 1, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/Sheet" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SourceEntityArn": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "ThemeArn": { + "type": "string" + }, + "VersionNumber": { + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TemplateVersionDefinition": { + "additionalProperties": false, + "properties": { + "AnalysisDefaults": { + "$ref": "#/definitions/AnalysisDefaults" + }, + "CalculatedFields": { + "items": { + "$ref": "#/definitions/CalculatedField" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "ColumnConfigurations": { + "items": { + "$ref": "#/definitions/ColumnConfiguration" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "DataSetConfigurations": { + "items": { + "$ref": "#/definitions/DataSetConfiguration" + }, + "maxItems": 30, + "minItems": 0, + "type": "array" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/FilterGroup" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AssetOptions" + }, + "ParameterDeclarations": { + "items": { + "$ref": "#/definitions/ParameterDeclaration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/SheetDefinition" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "DataSetConfigurations" + ], + "type": "object" + }, + "TextAreaControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TextControlPlaceholderOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TextFieldControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextWrap": { + "enum": [ + "NONE", + "WRAP" + ], + "type": "string" + }, + "ThousandSeparatorOptions": { + "additionalProperties": false, + "properties": { + "Symbol": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TimeBasedForecastProperties": { + "additionalProperties": false, + "properties": { + "LowerBoundary": { + "default": null, + "type": "number" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "UpperBoundary": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "TimeEqualityFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Value": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "Column", + "FilterId" + ], + "type": "object" + }, + "TimeGranularity": { + "enum": [ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ], + "type": "string" + }, + "TimeRangeDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "RangeMaximum": { + "format": "date-time", + "type": "string" + }, + "RangeMinimum": { + "format": "date-time", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "RangeMaximum", + "RangeMinimum", + "TimeGranularity" + ], + "type": "object" + }, + "TimeRangeFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "RangeMinimumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "TimeRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValue": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "TooltipItem": { + "additionalProperties": false, + "properties": { + "ColumnTooltipItem": { + "$ref": "#/definitions/ColumnTooltipItem" + }, + "FieldTooltipItem": { + "$ref": "#/definitions/FieldTooltipItem" + } + }, + "type": "object" + }, + "TooltipOptions": { + "additionalProperties": false, + "properties": { + "FieldBasedTooltip": { + "$ref": "#/definitions/FieldBasedTooltip" + }, + "SelectedTooltipType": { + "$ref": "#/definitions/SelectedTooltipType" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TooltipTitleType": { + "enum": [ + "NONE", + "PRIMARY_VALUE" + ], + "type": "string" + }, + "TopBottomComputationType": { + "enum": [ + "TOP", + "BOTTOM" + ], + "type": "string" + }, + "TopBottomFilter": { + "additionalProperties": false, + "properties": { + "AggregationSortConfigurations": { + "items": { + "$ref": "#/definitions/AggregationSortConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Limit": { + "default": null, + "type": "number" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AggregationSortConfigurations", + "Column", + "FilterId" + ], + "type": "object" + }, + "TopBottomMoversComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "MoverSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Name": { + "type": "string" + }, + "SortOrder": { + "$ref": "#/definitions/TopBottomSortOrder" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomRankedComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResultSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomSortOrder": { + "enum": [ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ], + "type": "string" + }, + "TotalAggregationComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "TotalAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleTotalAggregationFunction": { + "$ref": "#/definitions/SimpleTotalAggregationFunction" + } + }, + "type": "object" + }, + "TotalAggregationOption": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TotalAggregationFunction": { + "$ref": "#/definitions/TotalAggregationFunction" + } + }, + "required": [ + "FieldId", + "TotalAggregationFunction" + ], + "type": "object" + }, + "TotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TreeMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Groups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Sizes": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TreeMapFieldWells" + }, + "GroupLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SizeLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TreeMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "TreeMapFieldWells": { + "additionalProperties": false, + "properties": { + "TreeMapAggregatedFieldWells": { + "$ref": "#/definitions/TreeMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "TreeMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "TreeMapGroupItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "TreeMapSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TreeMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "TrendArrowOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "URLTargetConfiguration": { + "enum": [ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ], + "type": "string" + }, + "UnaggregatedField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "UniqueValuesComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ValidationStrategy": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ValidationStrategyMode" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ValidationStrategyMode": { + "enum": [ + "STRICT", + "LENIENT" + ], + "type": "string" + }, + "ValueWhenUnsetOption": { + "enum": [ + "RECOMMENDED_VALUE", + "NULL" + ], + "type": "string" + }, + "VerticalTextAlignment": { + "enum": [ + "TOP", + "MIDDLE", + "BOTTOM", + "AUTO" + ], + "type": "string" + }, + "Visibility": { + "enum": [ + "HIDDEN", + "VISIBLE" + ], + "type": "string" + }, + "VisibleRangeOptions": { + "additionalProperties": false, + "properties": { + "PercentRange": { + "$ref": "#/definitions/PercentVisibleRange" + } + }, + "type": "object" + }, + "Visual": { + "additionalProperties": false, + "properties": { + "BarChartVisual": { + "$ref": "#/definitions/BarChartVisual" + }, + "BoxPlotVisual": { + "$ref": "#/definitions/BoxPlotVisual" + }, + "ComboChartVisual": { + "$ref": "#/definitions/ComboChartVisual" + }, + "CustomContentVisual": { + "$ref": "#/definitions/CustomContentVisual" + }, + "EmptyVisual": { + "$ref": "#/definitions/EmptyVisual" + }, + "FilledMapVisual": { + "$ref": "#/definitions/FilledMapVisual" + }, + "FunnelChartVisual": { + "$ref": "#/definitions/FunnelChartVisual" + }, + "GaugeChartVisual": { + "$ref": "#/definitions/GaugeChartVisual" + }, + "GeospatialMapVisual": { + "$ref": "#/definitions/GeospatialMapVisual" + }, + "HeatMapVisual": { + "$ref": "#/definitions/HeatMapVisual" + }, + "HistogramVisual": { + "$ref": "#/definitions/HistogramVisual" + }, + "InsightVisual": { + "$ref": "#/definitions/InsightVisual" + }, + "KPIVisual": { + "$ref": "#/definitions/KPIVisual" + }, + "LineChartVisual": { + "$ref": "#/definitions/LineChartVisual" + }, + "PieChartVisual": { + "$ref": "#/definitions/PieChartVisual" + }, + "PivotTableVisual": { + "$ref": "#/definitions/PivotTableVisual" + }, + "RadarChartVisual": { + "$ref": "#/definitions/RadarChartVisual" + }, + "SankeyDiagramVisual": { + "$ref": "#/definitions/SankeyDiagramVisual" + }, + "ScatterPlotVisual": { + "$ref": "#/definitions/ScatterPlotVisual" + }, + "TableVisual": { + "$ref": "#/definitions/TableVisual" + }, + "TreeMapVisual": { + "$ref": "#/definitions/TreeMapVisual" + }, + "WaterfallVisual": { + "$ref": "#/definitions/WaterfallVisual" + }, + "WordCloudVisual": { + "$ref": "#/definitions/WordCloudVisual" + } + }, + "type": "object" + }, + "VisualCustomAction": { + "additionalProperties": false, + "properties": { + "ActionOperations": { + "items": { + "$ref": "#/definitions/VisualCustomActionOperation" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "CustomActionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "Trigger": { + "$ref": "#/definitions/VisualCustomActionTrigger" + } + }, + "required": [ + "ActionOperations", + "CustomActionId", + "Name", + "Trigger" + ], + "type": "object" + }, + "VisualCustomActionOperation": { + "additionalProperties": false, + "properties": { + "FilterOperation": { + "$ref": "#/definitions/CustomActionFilterOperation" + }, + "NavigationOperation": { + "$ref": "#/definitions/CustomActionNavigationOperation" + }, + "SetParametersOperation": { + "$ref": "#/definitions/CustomActionSetParametersOperation" + }, + "URLOperation": { + "$ref": "#/definitions/CustomActionURLOperation" + } + }, + "type": "object" + }, + "VisualCustomActionTrigger": { + "enum": [ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ], + "type": "string" + }, + "VisualPalette": { + "additionalProperties": false, + "properties": { + "ChartColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "ColorMap": { + "items": { + "$ref": "#/definitions/DataPathColor" + }, + "maxItems": 5000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "VisualSubtitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/LongFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "VisualTitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/ShortFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "WaterfallChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Breakdowns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Categories": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallChartColorConfiguration": { + "additionalProperties": false, + "properties": { + "GroupColorConfiguration": { + "$ref": "#/definitions/WaterfallChartGroupColorConfiguration" + } + }, + "type": "object" + }, + "WaterfallChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorConfiguration": { + "$ref": "#/definitions/WaterfallChartColorConfiguration" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WaterfallChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/WaterfallChartSortConfiguration" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WaterfallChartOptions": { + "$ref": "#/definitions/WaterfallChartOptions" + } + }, + "type": "object" + }, + "WaterfallChartFieldWells": { + "additionalProperties": false, + "properties": { + "WaterfallChartAggregatedFieldWells": { + "$ref": "#/definitions/WaterfallChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "WaterfallChartGroupColorConfiguration": { + "additionalProperties": false, + "properties": { + "NegativeBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TotalBarColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartOptions": { + "additionalProperties": false, + "properties": { + "TotalBarLabel": { + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "BreakdownItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WaterfallChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WhatIfPointScenario": { + "additionalProperties": false, + "properties": { + "Date": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Date", + "Value" + ], + "type": "object" + }, + "WhatIfRangeScenario": { + "additionalProperties": false, + "properties": { + "EndDate": { + "format": "date-time", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "EndDate", + "StartDate", + "Value" + ], + "type": "object" + }, + "WidgetStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WordCloudAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WordCloudFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/WordCloudSortConfiguration" + }, + "WordCloudOptions": { + "$ref": "#/definitions/WordCloudOptions" + } + }, + "type": "object" + }, + "WordCloudCloudLayout": { + "enum": [ + "FLUID", + "NORMAL" + ], + "type": "string" + }, + "WordCloudFieldWells": { + "additionalProperties": false, + "properties": { + "WordCloudAggregatedFieldWells": { + "$ref": "#/definitions/WordCloudAggregatedFieldWells" + } + }, + "type": "object" + }, + "WordCloudOptions": { + "additionalProperties": false, + "properties": { + "CloudLayout": { + "$ref": "#/definitions/WordCloudCloudLayout" + }, + "MaximumStringLength": { + "maximum": 100, + "minimum": 1, + "type": "number" + }, + "WordCasing": { + "$ref": "#/definitions/WordCloudWordCasing" + }, + "WordOrientation": { + "$ref": "#/definitions/WordCloudWordOrientation" + }, + "WordPadding": { + "$ref": "#/definitions/WordCloudWordPadding" + }, + "WordScaling": { + "$ref": "#/definitions/WordCloudWordScaling" + } + }, + "type": "object" + }, + "WordCloudSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WordCloudChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WordCloudWordCasing": { + "enum": [ + "LOWER_CASE", + "EXISTING_CASE" + ], + "type": "string" + }, + "WordCloudWordOrientation": { + "enum": [ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ], + "type": "string" + }, + "WordCloudWordPadding": { + "enum": [ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "WordCloudWordScaling": { + "enum": [ + "EMPHASIZE", + "NORMAL" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DescribeTemplatePermissions", + "quicksight:CreateTemplate", + "quicksight:DescribeAnalysis", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DeleteTemplate" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListTemplates" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DescribeTemplatePermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DescribeTemplatePermissions", + "quicksight:UpdateTemplate", + "quicksight:UpdateTemplatePermissions", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/TemplateId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/TemplateVersionDefinition" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/TemplateSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "TemplateId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ValidationStrategy": { + "$ref": "#/definitions/ValidationStrategy" + }, + "Version": { + "$ref": "#/definitions/TemplateVersion" + }, + "VersionDescription": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/LastUpdatedTime", + "/properties/Version" + ], + "required": [ + "AwsAccountId", + "TemplateId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Template", + "writeOnlyProperties": [ + "/properties/Definition", + "/properties/VersionDescription", + "/properties/SourceEntity", + "/properties/ValidationStrategy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 e195aac039..40f4082fd4 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -147,6 +147,7 @@ "AWS::Config::DeliveryChannel", "AWS::Config::OrganizationConfigRule", "AWS::Config::OrganizationConformancePack", + "AWS::Config::RemediationConfiguration", "AWS::Config::StoredQuery", "AWS::ControlTower::EnabledBaseline", "AWS::ControlTower::EnabledControl", @@ -640,7 +641,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -746,6 +746,7 @@ "aws-config-deliverychannel.json", "aws-config-organizationconfigrule.json", "aws-config-organizationconformancepack.json", + "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", "aws-controltower-enabledcontrol.json", @@ -784,7 +785,7 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -795,6 +796,7 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-networkperformancemetricsubscription.json", @@ -806,7 +808,6 @@ "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -834,14 +835,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -871,7 +869,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -900,6 +897,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -946,6 +944,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1010,7 +1009,6 @@ "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -1038,6 +1036,7 @@ "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", @@ -1091,7 +1090,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py new file mode 100644 index 0000000000..31396e6117 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/__init__.py @@ -0,0 +1,584 @@ +from __future__ import annotations + +# pylint: disable=too-many-lines +types: list[str] = [ + "AWS::ACMPCA::Certificate", + "AWS::ACMPCA::CertificateAuthority", + "AWS::ACMPCA::CertificateAuthorityActivation", + "AWS::ACMPCA::Permission", + "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::AccessAnalyzer::Analyzer", + "AWS::ApiGateway::Account", + "AWS::ApiGateway::ApiKey", + "AWS::ApiGateway::Authorizer", + "AWS::ApiGateway::BasePathMapping", + "AWS::ApiGateway::ClientCertificate", + "AWS::ApiGateway::Deployment", + "AWS::ApiGateway::DocumentationPart", + "AWS::ApiGateway::DocumentationVersion", + "AWS::ApiGateway::DomainName", + "AWS::ApiGateway::GatewayResponse", + "AWS::ApiGateway::Method", + "AWS::ApiGateway::Model", + "AWS::ApiGateway::RequestValidator", + "AWS::ApiGateway::Resource", + "AWS::ApiGateway::RestApi", + "AWS::ApiGateway::Stage", + "AWS::ApiGateway::UsagePlan", + "AWS::ApiGateway::UsagePlanKey", + "AWS::AppConfig::Application", + "AWS::AppConfig::ConfigurationProfile", + "AWS::AppConfig::Deployment", + "AWS::AppConfig::DeploymentStrategy", + "AWS::AppConfig::Environment", + "AWS::AppConfig::Extension", + "AWS::AppConfig::ExtensionAssociation", + "AWS::AppConfig::HostedConfigurationVersion", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::AutoScaling::LifecycleHook", + "AWS::AutoScaling::ScalingPolicy", + "AWS::AutoScaling::ScheduledAction", + "AWS::AutoScaling::WarmPool", + "AWS::Backup::BackupPlan", + "AWS::Backup::BackupSelection", + "AWS::Backup::BackupVault", + "AWS::Batch::ComputeEnvironment", + "AWS::Batch::JobDefinition", + "AWS::Batch::JobQueue", + "AWS::Batch::SchedulingPolicy", + "AWS::CDK::Metadata", + "AWS::CertificateManager::Certificate", + "AWS::CloudFormation::CustomResource", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::CloudFormation::HookTypeConfig", + "AWS::CloudFormation::HookVersion", + "AWS::CloudFormation::Macro", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::CloudFormation::ResourceVersion", + "AWS::CloudFormation::Stack", + "AWS::CloudFormation::WaitCondition", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::CloudFront::CachePolicy", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::CloudFront::Distribution", + "AWS::CloudFront::Function", + "AWS::CloudFront::KeyGroup", + "AWS::CloudFront::KeyValueStore", + "AWS::CloudFront::MonitoringSubscription", + "AWS::CloudFront::OriginAccessControl", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::CloudFront::PublicKey", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::CloudTrail::Trail", + "AWS::CloudWatch::Alarm", + "AWS::CloudWatch::AnomalyDetector", + "AWS::CloudWatch::CompositeAlarm", + "AWS::CloudWatch::InsightRule", + "AWS::CodeDeploy::Application", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::CodePipeline::CustomActionType", + "AWS::CodePipeline::Pipeline", + "AWS::Config::ConfigRule", + "AWS::Config::ConfigurationRecorder", + "AWS::Config::DeliveryChannel", + "AWS::DataPipeline::Pipeline", + "AWS::DataSync::Agent", + "AWS::DataSync::LocationAzureBlob", + "AWS::DataSync::LocationHDFS", + "AWS::DataSync::LocationNFS", + "AWS::DataSync::LocationObjectStorage", + "AWS::DataSync::LocationS3", + "AWS::DataSync::LocationSMB", + "AWS::DataSync::Task", + "AWS::DirectoryService::MicrosoftAD", + "AWS::DirectoryService::SimpleAD", + "AWS::DynamoDB::GlobalTable", + "AWS::DynamoDB::Table", + "AWS::EC2::CustomerGateway", + "AWS::EC2::DHCPOptions", + "AWS::EC2::EC2Fleet", + "AWS::EC2::EIP", + "AWS::EC2::EIPAssociation", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::EC2::FlowLog", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::EC2::Host", + "AWS::EC2::Instance", + "AWS::EC2::InternetGateway", + "AWS::EC2::KeyPair", + "AWS::EC2::LaunchTemplate", + "AWS::EC2::NatGateway", + "AWS::EC2::NetworkAcl", + "AWS::EC2::NetworkAclEntry", + "AWS::EC2::NetworkInterface", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::NetworkInterfacePermission", + "AWS::EC2::PlacementGroup", + "AWS::EC2::PrefixList", + "AWS::EC2::Route", + "AWS::EC2::RouteTable", + "AWS::EC2::SecurityGroup", + "AWS::EC2::SecurityGroupEgress", + "AWS::EC2::SecurityGroupIngress", + "AWS::EC2::SpotFleet", + "AWS::EC2::Subnet", + "AWS::EC2::SubnetCidrBlock", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::EC2::TransitGateway", + "AWS::EC2::TransitGatewayAttachment", + "AWS::EC2::TransitGatewayMulticastDomain", + "AWS::EC2::TransitGatewayMulticastDomainAssociation", + "AWS::EC2::TransitGatewayMulticastGroupMember", + "AWS::EC2::TransitGatewayMulticastGroupSource", + "AWS::EC2::TransitGatewayRoute", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::EC2::TransitGatewayRouteTableAssociation", + "AWS::EC2::TransitGatewayRouteTablePropagation", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::VPC", + "AWS::EC2::VPCCidrBlock", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::EC2::VPCEndpoint", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::EC2::VPCEndpointService", + "AWS::EC2::VPCEndpointServicePermissions", + "AWS::EC2::VPCGatewayAttachment", + "AWS::EC2::VPCPeeringConnection", + "AWS::EC2::VPNConnection", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::VPNGateway", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::EC2::Volume", + "AWS::EC2::VolumeAttachment", + "AWS::ECR::PullThroughCacheRule", + "AWS::ECR::RegistryPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::ECR::Repository", + "AWS::ECS::CapacityProvider", + "AWS::ECS::Cluster", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::ECS::PrimaryTaskSet", + "AWS::ECS::Service", + "AWS::ECS::TaskDefinition", + "AWS::ECS::TaskSet", + "AWS::EFS::FileSystem", + "AWS::EFS::MountTarget", + "AWS::EKS::AccessEntry", + "AWS::EKS::Addon", + "AWS::EKS::Cluster", + "AWS::EKS::IdentityProviderConfig", + "AWS::EKS::Nodegroup", + "AWS::EKS::PodIdentityAssociation", + "AWS::EMR::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::InstanceGroupConfig", + "AWS::EMR::SecurityConfiguration", + "AWS::EMR::Step", + "AWS::ElastiCache::CacheCluster", + "AWS::ElastiCache::ParameterGroup", + "AWS::ElastiCache::ReplicationGroup", + "AWS::ElastiCache::SecurityGroup", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::ElastiCache::SubnetGroup", + "AWS::ElastiCache::User", + "AWS::ElastiCache::UserGroup", + "AWS::ElasticBeanstalk::Application", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::ElasticBeanstalk::Environment", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::Elasticsearch::Domain", + "AWS::Events::EventBus", + "AWS::Events::Rule", + "AWS::GameLift::Alias", + "AWS::GameLift::Build", + "AWS::GameLift::Fleet", + "AWS::IAM::AccessKey", + "AWS::IAM::Group", + "AWS::IAM::GroupPolicy", + "AWS::IAM::InstanceProfile", + "AWS::IAM::ManagedPolicy", + "AWS::IAM::OIDCProvider", + "AWS::IAM::Policy", + "AWS::IAM::Role", + "AWS::IAM::RolePolicy", + "AWS::IAM::SAMLProvider", + "AWS::IAM::ServerCertificate", + "AWS::IAM::ServiceLinkedRole", + "AWS::IAM::User", + "AWS::IAM::UserPolicy", + "AWS::IAM::UserToGroupAddition", + "AWS::ImageBuilder::Component", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::ImageBuilder::Image", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ImageBuilder::ImageRecipe", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::ImageBuilder::Workflow", + "AWS::IoT::Certificate", + "AWS::IoT::Policy", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::IoT::Thing", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::IoT::TopicRule", + "AWS::KMS::Alias", + "AWS::KMS::Key", + "AWS::KMS::ReplicaKey", + "AWS::Kinesis::Stream", + "AWS::Kinesis::StreamConsumer", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::Lambda::Alias", + "AWS::Lambda::EventInvokeConfig", + "AWS::Lambda::EventSourceMapping", + "AWS::Lambda::Function", + "AWS::Lambda::LayerVersion", + "AWS::Lambda::LayerVersionPermission", + "AWS::Lambda::Permission", + "AWS::Lambda::Version", + "AWS::Logs::Destination", + "AWS::Logs::LogGroup", + "AWS::Logs::LogStream", + "AWS::Logs::MetricFilter", + "AWS::Logs::QueryDefinition", + "AWS::Logs::ResourcePolicy", + "AWS::Logs::SubscriptionFilter", + "AWS::Oam::Link", + "AWS::Oam::Sink", + "AWS::OpenSearchService::Domain", + "AWS::OpsWorks::App", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::OpsWorks::Instance", + "AWS::OpsWorks::Layer", + "AWS::OpsWorks::Stack", + "AWS::OpsWorks::UserProfile", + "AWS::OpsWorks::Volume", + "AWS::Organizations::Account", + "AWS::Organizations::Organization", + "AWS::Organizations::OrganizationalUnit", + "AWS::Organizations::Policy", + "AWS::Organizations::ResourcePolicy", + "AWS::RAM::Permission", + "AWS::RAM::ResourceShare", + "AWS::RDS::DBCluster", + "AWS::RDS::DBClusterParameterGroup", + "AWS::RDS::DBInstance", + "AWS::RDS::DBParameterGroup", + "AWS::RDS::DBSecurityGroup", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::RDS::DBSubnetGroup", + "AWS::RDS::EventSubscription", + "AWS::RDS::GlobalCluster", + "AWS::RDS::OptionGroup", + "AWS::Redshift::Cluster", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::Redshift::EndpointAccess", + "AWS::Redshift::EndpointAuthorization", + "AWS::Redshift::EventSubscription", + "AWS::Redshift::ScheduledAction", + "AWS::ResourceGroups::Group", + "AWS::Route53::HealthCheck", + "AWS::Route53::HostedZone", + "AWS::Route53::RecordSet", + "AWS::Route53::RecordSetGroup", + "AWS::S3::AccessPoint", + "AWS::S3::Bucket", + "AWS::S3::BucketPolicy", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::SDB::Domain", + "AWS::SNS::Subscription", + "AWS::SNS::Topic", + "AWS::SNS::TopicPolicy", + "AWS::SQS::Queue", + "AWS::SQS::QueueInlinePolicy", + "AWS::SQS::QueuePolicy", + "AWS::SSM::Association", + "AWS::SSM::Document", + "AWS::SSM::MaintenanceWindow", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::SSM::MaintenanceWindowTask", + "AWS::SSM::Parameter", + "AWS::SSM::PatchBaseline", + "AWS::SSM::ResourceDataSync", + "AWS::SecretsManager::ResourcePolicy", + "AWS::SecretsManager::RotationSchedule", + "AWS::SecretsManager::Secret", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::ServiceDiscovery::HttpNamespace", + "AWS::ServiceDiscovery::Instance", + "AWS::ServiceDiscovery::PrivateDnsNamespace", + "AWS::ServiceDiscovery::PublicDnsNamespace", + "AWS::ServiceDiscovery::Service", + "AWS::StepFunctions::Activity", + "AWS::StepFunctions::StateMachine", + "AWS::StepFunctions::StateMachineAlias", + "AWS::StepFunctions::StateMachineVersion", + "AWS::Synthetics::Canary", + "AWS::WAF::ByteMatchSet", + "AWS::WAF::IPSet", + "AWS::WAF::Rule", + "AWS::WAF::SizeConstraintSet", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::WAF::WebACL", + "AWS::WAF::XssMatchSet", + "AWS::WorkSpaces::Workspace", + "AWS::XRay::Group", + "AWS::XRay::ResourcePolicy", + "AWS::XRay::SamplingRule", + "Module", +] + +# pylint: disable=too-many-lines +cached: list[str] = [ + "Module", + "aws-accessanalyzer-analyzer.json", + "aws-acmpca-certificate.json", + "aws-acmpca-certificateauthority.json", + "aws-acmpca-certificateauthorityactivation.json", + "aws-acmpca-permission.json", + "aws-appconfig-application.json", + "aws-appconfig-configurationprofile.json", + "aws-appconfig-deployment.json", + "aws-appconfig-deploymentstrategy.json", + "aws-appconfig-environment.json", + "aws-appconfig-extension.json", + "aws-appconfig-extensionassociation.json", + "aws-appconfig-hostedconfigurationversion.json", + "aws-arczonalshift-autoshiftobservernotificationstatus.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-autoscaling-autoscalinggroup.json", + "aws-autoscaling-warmpool.json", + "aws-backup-backupplan.json", + "aws-backup-backupselection.json", + "aws-backup-backupvault.json", + "aws-batch-computeenvironment.json", + "aws-batch-jobqueue.json", + "aws-batch-schedulingpolicy.json", + "aws-certificatemanager-certificate.json", + "aws-cloudformation-customresource.json", + "aws-cloudformation-hookdefaultversion.json", + "aws-cloudformation-hooktypeconfig.json", + "aws-cloudformation-hookversion.json", + "aws-cloudformation-macro.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-cloudformation-resourceversion.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-cloudfront-cachepolicy.json", + "aws-cloudfront-cloudfrontoriginaccessidentity.json", + "aws-cloudfront-continuousdeploymentpolicy.json", + "aws-cloudfront-distribution.json", + "aws-cloudfront-function.json", + "aws-cloudfront-keygroup.json", + "aws-cloudfront-keyvaluestore.json", + "aws-cloudfront-monitoringsubscription.json", + "aws-cloudfront-originaccesscontrol.json", + "aws-cloudfront-originrequestpolicy.json", + "aws-cloudfront-publickey.json", + "aws-cloudfront-realtimelogconfig.json", + "aws-cloudfront-responseheaderspolicy.json", + "aws-cloudtrail-trail.json", + "aws-cloudwatch-alarm.json", + "aws-cloudwatch-anomalydetector.json", + "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-insightrule.json", + "aws-codedeploy-deploymentgroup.json", + "aws-config-configurationrecorder.json", + "aws-config-deliverychannel.json", + "aws-datasync-agent.json", + "aws-datasync-locationazureblob.json", + "aws-datasync-locationhdfs.json", + "aws-datasync-locationnfs.json", + "aws-datasync-locationobjectstorage.json", + "aws-datasync-locations3.json", + "aws-datasync-locationsmb.json", + "aws-datasync-task.json", + "aws-dynamodb-globaltable.json", + "aws-dynamodb-table.json", + "aws-ec2-dhcpoptions.json", + "aws-ec2-ec2fleet.json", + "aws-ec2-egressonlyinternetgateway.json", + "aws-ec2-eipassociation.json", + "aws-ec2-flowlog.json", + "aws-ec2-gatewayroutetableassociation.json", + "aws-ec2-keypair.json", + "aws-ec2-launchtemplate.json", + "aws-ec2-natgateway.json", + "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", + "aws-ec2-networkinterface.json", + "aws-ec2-networkinterfaceattachment.json", + "aws-ec2-prefixlist.json", + "aws-ec2-routetable.json", + "aws-ec2-spotfleet.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-ec2-transitgateway.json", + "aws-ec2-transitgatewayattachment.json", + "aws-ec2-transitgatewaymulticastdomain.json", + "aws-ec2-transitgatewaymulticastdomainassociation.json", + "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-ec2-transitgatewaymulticastgroupsource.json", + "aws-ec2-transitgatewayroute.json", + "aws-ec2-transitgatewayroutetable.json", + "aws-ec2-transitgatewayroutetableassociation.json", + "aws-ec2-transitgatewayroutetablepropagation.json", + "aws-ec2-transitgatewayvpcattachment.json", + "aws-ec2-vpcdhcpoptionsassociation.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-ec2-vpnconnectionroute.json", + "aws-ec2-vpngateway.json", + "aws-ecr-pullthroughcacherule.json", + "aws-ecr-registrypolicy.json", + "aws-ecr-replicationconfiguration.json", + "aws-ecs-capacityprovider.json", + "aws-ecs-cluster.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-ecs-primarytaskset.json", + "aws-ecs-taskdefinition.json", + "aws-ecs-taskset.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", + "aws-elasticache-cachecluster.json", + "aws-elasticache-replicationgroup.json", + "aws-elasticache-securitygroup.json", + "aws-elasticache-securitygroupingress.json", + "aws-elasticache-user.json", + "aws-elasticache-usergroup.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-elasticloadbalancingv2-listenerrule.json", + "aws-elasticsearch-domain.json", + "aws-emr-cluster.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-instancegroupconfig.json", + "aws-events-eventbus.json", + "aws-events-rule.json", + "aws-iam-group.json", + "aws-iam-grouppolicy.json", + "aws-iam-instanceprofile.json", + "aws-iam-managedpolicy.json", + "aws-iam-oidcprovider.json", + "aws-iam-policy.json", + "aws-iam-role.json", + "aws-iam-rolepolicy.json", + "aws-iam-samlprovider.json", + "aws-iam-servercertificate.json", + "aws-iam-servicelinkedrole.json", + "aws-iam-user.json", + "aws-iam-userpolicy.json", + "aws-iam-usertogroupaddition.json", + "aws-imagebuilder-component.json", + "aws-imagebuilder-containerrecipe.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-imagebuilder-image.json", + "aws-imagebuilder-imagepipeline.json", + "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", + "aws-kms-replicakey.json", + "aws-lambda-eventsourcemapping.json", + "aws-lambda-function.json", + "aws-lambda-layerversionpermission.json", + "aws-lambda-permission.json", + "aws-logs-destination.json", + "aws-logs-loggroup.json", + "aws-logs-logstream.json", + "aws-logs-metricfilter.json", + "aws-logs-querydefinition.json", + "aws-logs-resourcepolicy.json", + "aws-logs-subscriptionfilter.json", + "aws-oam-link.json", + "aws-oam-sink.json", + "aws-opsworks-app.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-opsworks-userprofile.json", + "aws-opsworks-volume.json", + "aws-organizations-account.json", + "aws-organizations-organization.json", + "aws-organizations-organizationalunit.json", + "aws-organizations-policy.json", + "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", + "aws-redshift-cluster.json", + "aws-redshift-clusterparametergroup.json", + "aws-redshift-clustersecuritygroup.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-redshift-clustersubnetgroup.json", + "aws-redshift-endpointaccess.json", + "aws-redshift-endpointauthorization.json", + "aws-redshift-eventsubscription.json", + "aws-redshift-scheduledaction.json", + "aws-resourcegroups-group.json", + "aws-route53-recordset.json", + "aws-route53-recordsetgroup.json", + "aws-s3-bucket.json", + "aws-s3-bucketpolicy.json", + "aws-s3objectlambda-accesspoint.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-sdb-domain.json", + "aws-secretsmanager-rotationschedule.json", + "aws-servicediscovery-httpnamespace.json", + "aws-servicediscovery-instance.json", + "aws-servicediscovery-privatednsnamespace.json", + "aws-servicediscovery-publicdnsnamespace.json", + "aws-servicediscovery-service.json", + "aws-sns-subscription.json", + "aws-sqs-queue.json", + "aws-sqs-queueinlinepolicy.json", + "aws-ssm-association.json", + "aws-ssm-document.json", + "aws-ssm-maintenancewindow.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-ssm-maintenancewindowtask.json", + "aws-ssm-parameter.json", + "aws-ssm-patchbaseline.json", + "aws-ssm-resourcedatasync.json", + "aws-stepfunctions-activity.json", + "aws-stepfunctions-statemachine.json", + "aws-stepfunctions-statemachinealias.json", + "aws-stepfunctions-statemachineversion.json", + "aws-synthetics-canary.json", + "aws-waf-bytematchset.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-workspaces-workspace.json", + "aws-xray-group.json", + "aws-xray-resourcepolicy.json", + "aws-xray-samplingrule.json", + "module.json", +] diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-account.json new file mode 100644 index 0000000000..e732339968 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-account.json @@ -0,0 +1,18 @@ +{ + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-apikey.json new file mode 100644 index 0000000000..7c24b00f38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-apikey.json @@ -0,0 +1,82 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..00c9ef18d2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-authorizer.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "COGNITO_USER_POOLS", + "REQUEST", + "TOKEN" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..666e165a19 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-basepathmapping.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-clientcertificate.json similarity index 85% rename from src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-internetgateway.json rename to src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-clientcertificate.json index 98879b66ff..b25e87f3ca 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-internetgateway.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-clientcertificate.json @@ -22,6 +22,9 @@ "/properties/Id" ], "properties": { + "Description": { + "type": "string" + }, "Id": { "type": "string" }, @@ -36,5 +39,5 @@ "readOnlyProperties": [ "/properties/Id" ], - "typeName": "AWS::EC2::InternetGateway" + "typeName": "AWS::ApiGateway::ClientCertificate" } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-deployment.json new file mode 100644 index 0000000000..b5914105d7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-deployment.json @@ -0,0 +1,219 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..bba1617735 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationpart.json @@ -0,0 +1,56 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..d804c67001 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-documentationversion.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-domainname.json new file mode 100644 index 0000000000..d7be1d9793 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-domainname.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..bbef4e34b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-gatewayresponse.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseType": { + "enum": [ + "ACCESS_DENIED", + "API_CONFIGURATION_ERROR", + "AUTHORIZER_CONFIGURATION_ERROR", + "AUTHORIZER_FAILURE", + "BAD_REQUEST_BODY", + "BAD_REQUEST_PARAMETERS", + "DEFAULT_4XX", + "DEFAULT_5XX", + "EXPIRED_TOKEN", + "INTEGRATION_FAILURE", + "INTEGRATION_TIMEOUT", + "INVALID_API_KEY", + "INVALID_SIGNATURE", + "MISSING_AUTHENTICATION_TOKEN", + "QUOTA_EXCEEDED", + "REQUEST_TOO_LARGE", + "RESOURCE_NOT_FOUND", + "THROTTLED", + "UNAUTHORIZED", + "UNSUPPORTED_MEDIA_TYPE", + "WAF_FILTERED" + ], + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-method.json new file mode 100644 index 0000000000..8ba3c83b57 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-method.json @@ -0,0 +1,207 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-model.json new file mode 100644 index 0000000000..9504a897a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-model.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..72238424ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-requestvalidator.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-resource.json new file mode 100644 index 0000000000..60bfa2b925 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-resource.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-restapi.json new file mode 100644 index 0000000000..d08152f085 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-restapi.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "AUTHORIZER", + "HEADER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-stage.json new file mode 100644 index 0000000000..3e0d7efcb3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "pattern": "^/.*$", + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..8f7200b105 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplan.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..832cdf2cd8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-apigateway-usageplankey.json @@ -0,0 +1,37 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} 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 new file mode 100644 index 0000000000..dfd1b1a11e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalabletarget.json @@ -0,0 +1,113 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/ScalableDimension", + "/properties/ServiceNamespace" + ], + "definitions": { + "ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "Timezone": { + "type": "string" + } + }, + "required": [ + "ScheduledActionName", + "Schedule" + ], + "type": "object" + }, + "SuspendedState": { + "additionalProperties": false, + "properties": { + "DynamicScalingInSuspended": { + "type": "boolean" + }, + "DynamicScalingOutSuspended": { + "type": "boolean" + }, + "ScheduledScalingSuspended": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "ResourceId": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScheduledActions": { + "items": { + "$ref": "#/definitions/ScheduledAction" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceNamespace": { + "type": "string" + }, + "SuspendedState": { + "$ref": "#/definitions/SuspendedState" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "ServiceNamespace", + "ScalableDimension", + "MinCapacity", + "RoleARN", + "MaxCapacity" + ], + "typeName": "AWS::ApplicationAutoScaling::ScalableTarget" +} 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 new file mode 100644 index 0000000000..78487c1780 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-applicationautoscaling-scalingpolicy.json @@ -0,0 +1,306 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/ScalableDimension", + "/properties/PolicyName", + "/properties/ServiceNamespace", + "/properties/ScalingTargetId" + ], + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/TargetTrackingMetricDataQuery" + }, + "type": "array", + "uniqueItems": true + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ALBRequestCountPerTarget", + "AppStreamAverageCapacityUtilization", + "CassandraReadCapacityUtilization", + "CassandraWriteCapacityUtilization", + "ComprehendInferenceUtilization", + "DynamoDBReadCapacityUtilization", + "DynamoDBWriteCapacityUtilization", + "EC2SpotFleetRequestAverageCPUUtilization", + "EC2SpotFleetRequestAverageNetworkIn", + "EC2SpotFleetRequestAverageNetworkOut", + "ECSServiceAverageCPUUtilization", + "ECSServiceAverageMemoryUtilization", + "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage", + "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", + "ElastiCachePrimaryEngineCPUUtilization", + "ElastiCacheReplicaEngineCPUUtilization", + "KafkaBrokerStorageUtilization", + "LambdaProvisionedConcurrencyUtilization", + "NeptuneReaderAverageCPUUtilization", + "RDSReaderAverageCPUUtilization", + "RDSReaderAverageDatabaseConnections", + "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution", + "SageMakerInferenceComponentInvocationsPerCopy", + "SageMakerVariantConcurrentRequestsPerModelHighResolution", + "SageMakerVariantInvocationsPerInstance", + "SageMakerVariantProvisionedConcurrencyUtilization", + "WorkSpacesAverageUserSessionsCapacityUtilization" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "integer" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TargetTrackingMetric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/TargetTrackingMetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "type": "object" + }, + "TargetTrackingMetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/TargetTrackingMetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "TargetTrackingMetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "TargetTrackingMetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/TargetTrackingMetric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "integer" + }, + "ScaleOutCooldown": { + "type": "integer" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "dependentRequired": { + "ResourceId": [ + "ScalableDimension", + "ServiceNamespace" + ] + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "enum": [ + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyType", + "PolicyName" + ], + "requiredXor": [ + "ScalingTargetId", + "ResourceId" + ], + "typeName": "AWS::ApplicationAutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-launchconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-launchconfiguration.json new file mode 100644 index 0000000000..33366dff06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-launchconfiguration.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RamDiskId", + "/properties/InstanceType", + "/properties/InstanceMonitoring", + "/properties/ImageId", + "/properties/BlockDeviceMappings", + "/properties/SpotPrice", + "/properties/ClassicLinkVPCId", + "/properties/InstanceId", + "/properties/KeyName", + "/properties/PlacementTenancy", + "/properties/LaunchConfigurationName", + "/properties/IamInstanceProfile", + "/properties/UserData", + "/properties/AssociatePublicIpAddress", + "/properties/KernelId", + "/properties/EbsOptimized", + "/properties/SecurityGroups", + "/properties/MetadataOptions", + "/properties/ClassicLinkVPCSecurityGroups" + ], + "definitions": { + "BlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], + "type": "string" + } + }, + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/BlockDevice" + }, + "NoDevice": { + "type": "boolean" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "integer" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "ClassicLinkVPCId": { + "type": "string" + }, + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ImageId": { + "format": "AWS::EC2::Image.Id", + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "MetadataOptions": { + "$ref": "#/definitions/MetadataOptions" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ImageId", + "InstanceType" + ], + "typeName": "AWS::AutoScaling::LaunchConfiguration" +} 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 new file mode 100644 index 0000000000..dcade48812 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-lifecyclehook.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName", + "/properties/LifecycleHookName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "enum": [ + "ABANDON", + "CONTINUE" + ], + "type": "string" + }, + "HeartbeatTimeout": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "enum": [ + "autoscaling:EC2_INSTANCE_LAUNCHING", + "autoscaling:EC2_INSTANCE_TERMINATING" + ], + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "LifecycleTransition", + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::LifecycleHook" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scalingpolicy.json new file mode 100644 index 0000000000..3ec51d0018 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scalingpolicy.json @@ -0,0 +1,403 @@ +{ + "additionalProperties": false, + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "enum": [ + "Average", + "Maximum", + "Minimum", + "SampleCount", + "Sum" + ], + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Statistic", + "Namespace" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ALBRequestCountPerTarget", + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "integer" + }, + "MetricSpecifications": { + "items": { + "$ref": "#/definitions/PredictiveScalingMetricSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "integer" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdjustmentType": { + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ], + "type": "string" + }, + "AutoScalingGroupName": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "MetricAggregationType": { + "enum": [ + "Average", + "Maximum", + "Minimum" + ], + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "PolicyType": { + "enum": [ + "PredictiveScaling", + "SimpleScaling", + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/PredictiveScalingConfiguration" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/TargetTrackingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scheduledaction.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scheduledaction.json new file mode 100644 index 0000000000..83365d23c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-autoscaling-scheduledaction.json @@ -0,0 +1,45 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DesiredCapacity": { + "type": "integer" + }, + "EndTime": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MaxSize": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::ScheduledAction" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..164b650a46 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-batch-jobdefinition.json @@ -0,0 +1,1091 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/JobDefinitionName", + "/properties/ContainerProperties", + "/properties/EcsProperties", + "/properties/EksProperties", + "/properties/NodeProperties", + "/properties/Parameters", + "/properties/PlatformCapabilities", + "/properties/PropagateTags", + "/properties/RetryStrategy", + "/properties/SchedulingPriority", + "/properties/Timeout", + "/properties/Type" + ], + "definitions": { + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MountPoint" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSAuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "EFSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/EFSAuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TaskContainerProperties" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "IpcMode": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PidMode": { + "type": "string" + }, + "PlatformVersion": { + "type": "string" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "TaskRoleArn": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainerEnvironmentVariable" + }, + "type": "array", + "uniqueItems": false + }, + "Image": { + "type": "string" + }, + "ImagePullPolicy": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Resources": { + "$ref": "#/definitions/EksContainerResourceRequirements" + }, + "SecurityContext": { + "$ref": "#/definitions/EksContainerSecurityContext" + }, + "VolumeMounts": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainerVolumeMount" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "EksContainerEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "EksContainerResourceRequirements": { + "additionalProperties": false, + "properties": { + "Limits": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Requests": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "Privileged": { + "type": "boolean" + }, + "ReadOnlyRootFilesystem": { + "type": "boolean" + }, + "RunAsGroup": { + "type": "integer" + }, + "RunAsNonRoot": { + "type": "boolean" + }, + "RunAsUser": { + "type": "integer" + } + }, + "type": "object" + }, + "EksContainerVolumeMount": { + "additionalProperties": false, + "properties": { + "MountPath": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "EksEmptyDir": { + "additionalProperties": false, + "properties": { + "Medium": { + "type": "string" + }, + "SizeLimit": { + "type": "string" + } + }, + "type": "object" + }, + "EksHostPath": { + "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "EksMetadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "EksPodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "InitContainers": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/EksMetadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/EksPodProperties" + } + }, + "type": "object" + }, + "EksSecret": { + "additionalProperties": false, + "properties": { + "Optional": { + "type": "boolean" + }, + "SecretName": { + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "EksVolume": { + "additionalProperties": false, + "properties": { + "EmptyDir": { + "$ref": "#/definitions/EksEmptyDir" + }, + "HostPath": { + "$ref": "#/definitions/EksHostPath" + }, + "Name": { + "type": "string" + }, + "Secret": { + "$ref": "#/definitions/EksSecret" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Environment": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ], + "type": "object" + }, + "EvaluateOnExit": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "OnExitCode": { + "type": "string" + }, + "OnReason": { + "type": "string" + }, + "OnStatusReason": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "Host": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "JobTimeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + }, + "type": "object" + }, + "NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "integer" + }, + "NodeRangeProperties": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "NumNodes", + "MainNode", + "NodeRangeProperties" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "required": [ + "CredentialsParameter" + ], + "type": "object" + }, + "ResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "integer" + }, + "EvaluateOnExit": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EvaluateOnExit" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "ContainerName", + "Condition" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MountPoint" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "ContainerPath", + "Size" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EFSVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/Host" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "Batch:RegisterJobDefinition", + "Batch:TagResource", + "Batch:DescribeJobDefinitions", + "Iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:DeregisterJobDefinition", + "Iam:PassRole" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "update": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:TagResource", + "Batch:UntagResource", + "Iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/JobDefinitionArn" + ], + "properties": { + "ContainerOrchestrationType": { + "type": "string" + }, + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "JobDefinitionArn": { + "type": "string" + }, + "JobDefinitionName": { + "maxLength": 128, + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "PlatformCapabilities": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "Revision": { + "type": "integer" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Status": { + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Timeout": { + "$ref": "#/definitions/JobTimeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ContainerOrchestrationType", + "/properties/JobDefinitionArn", + "/properties/Revision", + "/properties/Status" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "Batch:TagResource", + "Batch:UntagResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Batch::JobDefinition", + "writeOnlyProperties": [ + "/properties/ContainerProperties/InstanceType", + "/properties/NodeProperties/NodeRangeProperties/*/Container/FargatePlatformConfiguration/PlatformVersion", + "/properties/NodeProperties/NodeRangeProperties/*/Container/NetworkConfiguration/AssignPublicIp", + "/properties/NodeProperties/NodeRangeProperties/*/EcsProperties/TaskProperties/*/NetworkConfiguration/AssignPublicIp", + "/properties/NodeProperties/NodeRangeProperties/*/EcsProperties/TaskProperties/*/PlatformVersion", + "/properties/NodeProperties/NodeRangeProperties/*/EcsProperties/TaskProperties/*/EphemeralStorage", + "/properties/NodeProperties/NodeRangeProperties/*/EcsProperties/TaskProperties/*/RuntimePlatform" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-stack.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-stack.json new file mode 100644 index 0000000000..754f3edd70 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-stack.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "NotificationARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": [ + "string", + "number", + "integer", + "object", + "array", + "boolean" + ] + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateURL": { + "type": "string" + }, + "TimeoutInMinutes": { + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TemplateURL" + ], + "typeName": "AWS::CloudFormation::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..a95be9629a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-cloudformation-waitcondition.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": [ + "object" + ] + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-application.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-application.json new file mode 100644 index 0000000000..7279f823f1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-application.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/ComputePlatform" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "ComputePlatform": { + "enum": [ + "ECS", + "Lambda", + "Server" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::CodeDeploy::Application" +} 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 new file mode 100644 index 0000000000..4fed48ad0c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codedeploy-deploymentconfig.json @@ -0,0 +1,105 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentConfigName", + "/properties/MinimumHealthyHosts", + "/properties/ComputePlatform", + "/properties/TrafficRoutingConfig" + ], + "definitions": { + "MinimumHealthyHosts": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "FLEET_PERCENT", + "HOST_COUNT" + ], + "type": "string" + }, + "Value": { + "type": "integer" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "TimeBasedCanary": { + "additionalProperties": false, + "properties": { + "CanaryInterval": { + "type": "integer" + }, + "CanaryPercentage": { + "type": "integer" + } + }, + "required": [ + "CanaryPercentage", + "CanaryInterval" + ], + "type": "object" + }, + "TimeBasedLinear": { + "additionalProperties": false, + "properties": { + "LinearInterval": { + "type": "integer" + }, + "LinearPercentage": { + "type": "integer" + } + }, + "required": [ + "LinearInterval", + "LinearPercentage" + ], + "type": "object" + }, + "TrafficRoutingConfig": { + "additionalProperties": false, + "properties": { + "TimeBasedCanary": { + "$ref": "#/definitions/TimeBasedCanary" + }, + "TimeBasedLinear": { + "$ref": "#/definitions/TimeBasedLinear" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ComputePlatform": { + "type": "string" + }, + "DeploymentConfigName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MinimumHealthyHosts": { + "$ref": "#/definitions/MinimumHealthyHosts" + }, + "TrafficRoutingConfig": { + "$ref": "#/definitions/TrafficRoutingConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::CodeDeploy::DeploymentConfig" +} 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 new file mode 100644 index 0000000000..19c17f4d7e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-customactiontype.json @@ -0,0 +1,153 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/OutputArtifactDetails", + "/properties/Version", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "Boolean", + "Number", + "String" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "Version", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-pipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-pipeline.json new file mode 100644 index 0000000000..925fbfe118 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-codepipeline-pipeline.json @@ -0,0 +1,505 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ActionDeclaration": { + "additionalProperties": false, + "properties": { + "ActionTypeId": { + "$ref": "#/definitions/ActionTypeId" + }, + "Configuration": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "InputArtifacts": { + "items": { + "$ref": "#/definitions/InputArtifact" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/OutputArtifact" + }, + "type": "array", + "uniqueItems": true + }, + "Region": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "integer" + }, + "TimeoutInMinutes": { + "type": "integer" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "enum": [ + "Approval", + "Build", + "Deploy", + "Invoke", + "Source", + "Test" + ], + "type": "string" + }, + "Owner": { + "enum": [ + "AWS", + "Custom", + "ThirdParty" + ], + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Owner", + "Category", + "Version", + "Provider" + ], + "type": "object" + }, + "ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "enum": [ + "S3" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Location" + ], + "type": "object" + }, + "ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/ArtifactStore" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "enum": [ + "Schedule" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Name" + ], + "type": "object" + }, + "EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type", + "Id" + ], + "type": "object" + }, + "FailureConditions": { + "additionalProperties": false, + "properties": { + "Result": { + "type": "string" + } + }, + "required": [ + "Result" + ], + "type": "object" + }, + "GitBranchFilterCriteria": { + "additionalProperties": false, + "properties": { + "Excludes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Includes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "GitConfiguration": { + "additionalProperties": false, + "properties": { + "PullRequest": { + "items": { + "$ref": "#/definitions/GitPullRequestFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Push": { + "items": { + "$ref": "#/definitions/GitPushFilter" + }, + "type": "array", + "uniqueItems": true + }, + "SourceActionName": { + "type": "string" + } + }, + "required": [ + "SourceActionName" + ], + "type": "object" + }, + "GitFilePathFilterCriteria": { + "additionalProperties": false, + "properties": { + "Excludes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Includes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "GitPullRequestFilter": { + "additionalProperties": false, + "properties": { + "Branches": { + "$ref": "#/definitions/GitBranchFilterCriteria" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "FilePaths": { + "$ref": "#/definitions/GitFilePathFilterCriteria" + } + }, + "type": "object" + }, + "GitPushFilter": { + "additionalProperties": false, + "properties": { + "Branches": { + "$ref": "#/definitions/GitBranchFilterCriteria" + }, + "FilePaths": { + "$ref": "#/definitions/GitFilePathFilterCriteria" + }, + "Tags": { + "$ref": "#/definitions/GitTagFilterCriteria" + } + }, + "type": "object" + }, + "GitTagFilterCriteria": { + "additionalProperties": false, + "properties": { + "Excludes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Includes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "PipelineTriggerDeclaration": { + "additionalProperties": false, + "properties": { + "GitConfiguration": { + "$ref": "#/definitions/GitConfiguration" + }, + "ProviderType": { + "type": "string" + } + }, + "required": [ + "ProviderType" + ], + "type": "object" + }, + "StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/ActionDeclaration" + }, + "type": "array", + "uniqueItems": true + }, + "Blockers": { + "items": { + "$ref": "#/definitions/BlockerDeclaration" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "OnFailure": { + "$ref": "#/definitions/FailureConditions" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "StageName", + "Reason" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VariableDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/ArtifactStoreMap" + }, + "type": "array", + "uniqueItems": true + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/StageTransition" + }, + "type": "array", + "uniqueItems": true + }, + "ExecutionMode": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PipelineType": { + "type": "string" + }, + "RestartExecutionOnUpdate": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/StageDeclaration" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Triggers": { + "items": { + "$ref": "#/definitions/PipelineTriggerDeclaration" + }, + "type": "array", + "uniqueItems": true + }, + "Variables": { + "items": { + "$ref": "#/definitions/VariableDeclaration" + }, + "type": "array", + "uniqueItems": true + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Version" + ], + "required": [ + "Stages", + "RoleArn" + ], + "requiredXor": [ + "ArtifactStore", + "ArtifactStores" + ], + "typeName": "AWS::CodePipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-config-configrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-config-configrule.json new file mode 100644 index 0000000000..931cf0bd8e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-config-configrule.json @@ -0,0 +1,178 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigRuleName" + ], + "definitions": { + "CustomPolicyDetails": { + "additionalProperties": false, + "properties": { + "EnableDebugLogDelivery": { + "type": "boolean" + }, + "PolicyRuntime": { + "type": "string" + }, + "PolicyText": { + "type": "string" + } + }, + "type": "object" + }, + "EvaluationModeConfiguration": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "additionalProperties": false, + "properties": { + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "CustomPolicyDetails": { + "$ref": "#/definitions/CustomPolicyDetails" + }, + "Owner": { + "enum": [ + "AWS", + "CUSTOM_LAMBDA", + "CUSTOM_POLICY" + ], + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/SourceDetail" + }, + "type": "array", + "uniqueItems": true + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "enum": [ + "aws.config" + ], + "type": "string" + }, + "MaximumExecutionFrequency": { + "enum": [ + "One_Hour", + "Six_Hours", + "Three_Hours", + "Twelve_Hours", + "TwentyFour_Hours" + ], + "type": "string" + }, + "MessageType": { + "enum": [ + "ConfigurationItemChangeNotification", + "ConfigurationSnapshotDeliveryCompleted", + "OversizedConfigurationItemChangeNotification", + "ScheduledNotification" + ], + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/ConfigRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Compliance": { + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "ConfigRuleId": { + "type": "string" + }, + "ConfigRuleName": { + "type": "string" + }, + "Description": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "EvaluationModes": { + "items": { + "$ref": "#/definitions/EvaluationModeConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "InputParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Source": { + "$ref": "#/definitions/Source" + } + }, + "readOnlyProperties": [ + "/properties/ConfigRuleId", + "/properties/Compliance/Type", + "/properties/Arn" + ], + "required": [ + "Source" + ], + "typeName": "AWS::Config::ConfigRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..c6796b2ea1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-datapipeline-pipeline.json @@ -0,0 +1,172 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..16431658a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..9c6266658e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Large", + "Small" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-eip.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-eip.json new file mode 100644 index 0000000000..f2fa77d0c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-eip.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Domain", + "/properties/NetworkBorderGroup" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocationId": { + "type": "string" + }, + "Domain": { + "enum": [ + "standard", + "vpc" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkBorderGroup": { + "type": "string" + }, + "PublicIpv4Pool": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AllocationId" + ], + "typeName": "AWS::EC2::EIP" +} 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 new file mode 100644 index 0000000000..71dc619f5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-host.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "off", + "on" + ], + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} 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 new file mode 100644 index 0000000000..520cdf9b37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-instance.json @@ -0,0 +1,562 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ElasticGpuSpecifications", + "/properties/Ipv6Addresses", + "/properties/PlacementGroupName", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/CpuOptions", + "/properties/PrivateIpAddress", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/KeyName", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/LaunchTemplate", + "/properties/SecurityGroups", + "/properties/Ipv6AddressCount" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/NoDevice" + }, + "VirtualName": { + "pattern": "^ephemeral([0-9]|[1][0-9]|[2][0-3])$", + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "$ref": "#/definitions/CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": true + }, + "EnclaveOptions": { + "$ref": "#/definitions/EnclaveOptions" + }, + "HibernationOptions": { + "$ref": "#/definitions/HibernationOptions" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "dedicated", + "default", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "typeName": "AWS::EC2::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..786d580384 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "EIP-ASSOCIATE", + "INSTANCE-ATTACH" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-placementgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-placementgroup.json new file mode 100644 index 0000000000..65ddb972fc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-placementgroup.json @@ -0,0 +1,26 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Strategy" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Strategy": { + "enum": [ + "cluster", + "partition", + "spread" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EC2::PlacementGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-route.json new file mode 100644 index 0000000000..87f2f2a991 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-route.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RouteTableId", + "/properties/DestinationCidrBlock" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CarrierGatewayId": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "type": "string" + }, + "GatewayId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LocalGatewayId": { + "type": "string" + }, + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcEndpointId": { + "type": "string" + }, + "VpcPeeringConnectionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RouteTableId" + ], + "typeName": "AWS::EC2::Route" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroup.json similarity index 53% rename from src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-securitygroup.json rename to src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroup.json index 6713650d36..c0cc7dd8a3 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-securitygroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroup.json @@ -1,5 +1,4 @@ { - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", "additionalProperties": false, "createOnlyProperties": [ "/properties/GroupDescription", @@ -121,45 +120,6 @@ "VpcId" ] }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, "primaryIdentifier": [ "/properties/Id" ], @@ -182,7 +142,6 @@ "type": "string" }, "SecurityGroupEgress": { - "insertionOrder": false, "items": { "$ref": "#/definitions/Egress" }, @@ -190,7 +149,6 @@ "uniqueItems": false }, "SecurityGroupIngress": { - "insertionOrder": false, "items": { "$ref": "#/definitions/Ingress" }, @@ -198,7 +156,6 @@ "uniqueItems": false }, "Tags": { - "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, @@ -210,14 +167,6 @@ "type": "string" } }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, "readOnlyProperties": [ "/properties/Id", "/properties/GroupId" @@ -225,15 +174,5 @@ "required": [ "GroupDescription" ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] + "typeName": "AWS::EC2::SecurityGroup" } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupegress.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupegress.json new file mode 100644 index 0000000000..1fd751df0a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupegress.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/IpProtocol", + "/properties/DestinationSecurityGroupId", + "/properties/ToPort", + "/properties/CidrIp", + "/properties/FromPort", + "/properties/GroupId", + "/properties/CidrIpv6", + "/properties/DestinationPrefixListId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "FromPort": { + "minimum": -1, + "type": "integer" + }, + "GroupId": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "minimum": -1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "IpProtocol", + "GroupId" + ], + "typeName": "AWS::EC2::SecurityGroupEgress" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupingress.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupingress.json new file mode 100644 index 0000000000..a726c7c219 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-securitygroupingress.json @@ -0,0 +1,79 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GroupName", + "/properties/IpProtocol", + "/properties/SourceSecurityGroupId", + "/properties/SourcePrefixListId", + "/properties/ToPort", + "/properties/CidrIp", + "/properties/SourceSecurityGroupName", + "/properties/SourceSecurityGroupOwnerId", + "/properties/FromPort", + "/properties/GroupId", + "/properties/CidrIpv6" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "minimum": -1, + "type": "integer" + }, + "GroupId": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "SourceSecurityGroupName": { + "format": "AWS::EC2::SecurityGroup.GroupName", + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "minimum": -1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "IpProtocol" + ], + "requiredXor": [ + "CidrIp", + "CidrIpv6", + "SourcePrefixListId", + "SourceSecurityGroupId", + "SourceSecurityGroupName" + ], + "typeName": "AWS::EC2::SecurityGroupIngress" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetcidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetcidrblock.json new file mode 100644 index 0000000000..6c58c1df37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetcidrblock.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6CidrBlock", + "/properties/SubnetId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SubnetId", + "Ipv6CidrBlock" + ], + "typeName": "AWS::EC2::SubnetCidrBlock" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetnetworkaclassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetnetworkaclassociation.json new file mode 100644 index 0000000000..c2f822e26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-subnetnetworkaclassociation.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SubnetId", + "/properties/NetworkAclId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssociationId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AssociationId" + ], + "required": [ + "NetworkAclId", + "SubnetId" + ], + "typeName": "AWS::EC2::SubnetNetworkAclAssociation" +} 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 new file mode 100644 index 0000000000..11935248ba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volume.json @@ -0,0 +1,76 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone" + ], + "typeName": "AWS::EC2::Volume" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volumeattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volumeattachment.json new file mode 100644 index 0000000000..0c94c58ae3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-volumeattachment.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Device", + "/properties/InstanceId", + "/properties/VolumeId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Device": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VolumeId", + "InstanceId", + "Device" + ], + "typeName": "AWS::EC2::VolumeAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpc.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpc.json new file mode 100644 index 0000000000..a4c9bec27b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpc.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/CidrBlock" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependentRequired": { + "Ipv4IpamPoolId": [ + "Ipv4NetmaskLength" + ] + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CidrBlock": { + "type": "string" + }, + "CidrBlockAssociations": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DefaultNetworkAcl": { + "type": "string" + }, + "DefaultSecurityGroup": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstanceTenancy": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/CidrBlockAssociations", + "/properties/Id", + "/properties/DefaultSecurityGroup", + "/properties/DefaultNetworkAcl", + "/properties/Ipv6CidrBlocks" + ], + "requiredXor": [ + "CidrBlock", + "Ipv4IpamPoolId" + ], + "typeName": "AWS::EC2::VPC" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..c7487f7d53 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpccidrblock.json @@ -0,0 +1,56 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/Ipv4IpamPoolId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/Ipv6NetmaskLength", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/CidrBlock" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "typeName": "AWS::EC2::VPCCidrBlock" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpoint.json new file mode 100644 index 0000000000..cc6c13dfbc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpoint.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/ServiceName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "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 + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "ServiceName" + ], + "typeName": "AWS::EC2::VPCEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointconnectionnotification.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointconnectionnotification.json new file mode 100644 index 0000000000..57a58248a6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointconnectionnotification.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ServiceId", + "/properties/VPCEndpointId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ConnectionNotificationArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ServiceId": { + "type": "string" + }, + "VPCEndpointId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ConnectionEvents", + "ConnectionNotificationArn" + ], + "typeName": "AWS::EC2::VPCEndpointConnectionNotification" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservice.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservice.json new file mode 100644 index 0000000000..258df34198 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservice.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptanceRequired": { + "type": "boolean" + }, + "ContributorInsightsEnabled": { + "type": "boolean" + }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PayerResponsibility": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EC2::VPCEndpointService" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservicepermissions.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservicepermissions.json new file mode 100644 index 0000000000..2f94281073 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcendpointservicepermissions.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ServiceId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowedPrincipals": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "ServiceId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ServiceId" + ], + "typeName": "AWS::EC2::VPCEndpointServicePermissions" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcgatewayattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcgatewayattachment.json new file mode 100644 index 0000000000..dc57dedd53 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpcgatewayattachment.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "typeName": "AWS::EC2::VPCGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpngatewayroutepropagation.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpngatewayroutepropagation.json new file mode 100644 index 0000000000..b9bc741f91 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ec2-vpngatewayroutepropagation.json @@ -0,0 +1,52 @@ +{ + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "ec2:EnableVgwRoutePropagation", + "ec2:DescribeRouteTables" + ] + }, + "delete": { + "permissions": [ + "ec2:DisableVgwRoutePropagation", + "ec2:DescribeRouteTables" + ] + }, + "update": { + "permissions": [ + "ec2:EnableVgwRoutePropagation", + "ec2:DescribeRouteTables" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "RouteTableIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpnGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "taggable": false, + "typeName": "AWS::EC2::VPNGatewayRoutePropagation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} 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..c2e401dec9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-ecs-service.json @@ -0,0 +1,625 @@ +{ + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecs:CreateService", + "ecs:DescribeServices", + "iam:PassRole", + "ecs:TagResource" + ], + "timeoutInMinutes": 180 + }, + "delete": { + "permissions": [ + "ecs:DeleteService", + "ecs:DescribeServices" + ], + "timeoutInMinutes": 30 + }, + "list": { + "permissions": [ + "ecs:DescribeServices", + "ecs:ListClusters", + "ecs:ListServices" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeServices" + ] + }, + "update": { + "permissions": [ + "ecs:DescribeServices", + "ecs:ListTagsForResource", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:UpdateService" + ], + "timeoutInMinutes": 180 + } + }, + "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-efs-filesystem.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-efs-filesystem.json new file mode 100644 index 0000000000..5e4d859748 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-efs-filesystem.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/Encrypted", + "/properties/PerformanceMode" + ], + "definitions": { + "ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "TransitionToIA": { + "enum": [ + "AFTER_14_DAYS", + "AFTER_180_DAYS", + "AFTER_1_DAY", + "AFTER_270_DAYS", + "AFTER_30_DAYS", + "AFTER_365_DAYS", + "AFTER_60_DAYS", + "AFTER_7_DAYS", + "AFTER_90_DAYS" + ], + "type": "string" + } + }, + "required": [ + "TransitionToIA" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/ElasticFileSystemTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LifecyclePolicies": { + "items": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "type": "array", + "uniqueItems": true + }, + "PerformanceMode": { + "enum": [ + "generalPurpose", + "maxIO" + ], + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "enum": [ + "bursting", + "elastic", + "provisioned" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EFS::FileSystem" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-efs-mounttarget.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-efs-mounttarget.json new file mode 100644 index 0000000000..2f2400e628 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-efs-mounttarget.json @@ -0,0 +1,43 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FileSystemId", + "/properties/IpAddress", + "/properties/SubnetId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "FileSystemId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityGroups", + "FileSystemId", + "SubnetId" + ], + "typeName": "AWS::EFS::MountTarget" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-parametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-parametergroup.json new file mode 100644 index 0000000000..c524f26845 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-parametergroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheParameterGroupFamily" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheParameterGroupFamily": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Properties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "CacheParameterGroupFamily" + ], + "typeName": "AWS::ElastiCache::ParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-subnetgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-subnetgroup.json new file mode 100644 index 0000000000..09e0577865 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticache-subnetgroup.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::ElastiCache::SubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..62f6308bae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-application.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1ab162c052 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..0ed98c7d78 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..a4cd15803b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticbeanstalk-environment.json @@ -0,0 +1,127 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-targetgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-targetgroup.json new file mode 100644 index 0000000000..31eb6742a6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-elasticloadbalancingv2-targetgroup.json @@ -0,0 +1,234 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetType", + "/properties/ProtocolVersion", + "/properties/Port", + "/properties/Name", + "/properties/VpcId", + "/properties/Protocol", + "/properties/IpAddressType" + ], + "definitions": { + "Matcher": { + "additionalProperties": false, + "properties": { + "GrpcCode": { + "type": "string" + }, + "HttpCode": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetDescription": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "TargetGroupAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateTargetGroup", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:ModifyTargetGroupAttributes", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:AddTags" + ] + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DeleteTargetGroup", + "elasticloadbalancing:DescribeTargetGroups" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeTargetGroups" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetGroupAttributes", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:ModifyTargetGroup", + "elasticloadbalancing:ModifyTargetGroupAttributes", + "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:DeregisterTargets", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/TargetGroupArn" + ], + "properties": { + "HealthCheckEnabled": { + "type": "boolean" + }, + "HealthCheckIntervalSeconds": { + "maximum": 300, + "minimum": 5, + "type": "integer" + }, + "HealthCheckPath": { + "type": "string" + }, + "HealthCheckPort": { + "type": "string" + }, + "HealthCheckProtocol": { + "type": "string" + }, + "HealthCheckTimeoutSeconds": { + "type": "integer" + }, + "HealthyThresholdCount": { + "type": "integer" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArns": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Matcher": { + "$ref": "#/definitions/Matcher" + }, + "Name": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "Protocol": { + "type": "string" + }, + "ProtocolVersion": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetGroupArn": { + "type": "string" + }, + "TargetGroupAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetGroupAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupFullName": { + "type": "string" + }, + "TargetGroupName": { + "type": "string" + }, + "TargetType": { + "type": "string" + }, + "Targets": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TargetDescription" + }, + "type": "array", + "uniqueItems": true + }, + "UnhealthyThresholdCount": { + "maximum": 10, + "minimum": 2, + "type": "integer" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerArns", + "/properties/TargetGroupArn", + "/properties/TargetGroupName", + "/properties/TargetGroupFullName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "elasticloadbalancing:AddTags", + "elasticloadbalancing:DescribeTags", + "elasticloadbalancing:RemoveTags" + ], + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::TargetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-securityconfiguration.json new file mode 100644 index 0000000000..69af968123 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-securityconfiguration.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/SecurityConfiguration" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityConfiguration" + ], + "typeName": "AWS::EMR::SecurityConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-step.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-step.json new file mode 100644 index 0000000000..fef8bbd9a7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-emr-step.json @@ -0,0 +1,82 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/JobFlowId", + "/properties/HadoopJarStep", + "/properties/Name", + "/properties/ActionOnFailure" + ], + "definitions": { + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Id": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "JobFlowId", + "ActionOnFailure", + "HadoopJarStep", + "Name" + ], + "typeName": "AWS::EMR::Step" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-alias.json new file mode 100644 index 0000000000..c5a72a9671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-alias.json @@ -0,0 +1,48 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-build.json new file mode 100644 index 0000000000..fcdd28d89b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-build.json @@ -0,0 +1,56 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} 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 new file mode 100644 index 0000000000..f603fbeac1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-gamelift-fleet.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-accesskey.json new file mode 100644 index 0000000000..7aaaec51d4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iam-accesskey.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} 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 new file mode 100644 index 0000000000..28534637cc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-certificate.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateSigningRequest" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Status", + "CertificateSigningRequest" + ], + "typeName": "AWS::IoT::Certificate" +} 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 new file mode 100644 index 0000000000..a329acfc74 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policy.json @@ -0,0 +1,36 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyDocument", + "/properties/PolicyName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..4bb0a7c55d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-policyprincipalattachment.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thing.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thing.json new file mode 100644 index 0000000000..7c61fcf702 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thing.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThingName" + ], + "definitions": { + "AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AttributePayload" + }, + "Id": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::IoT::Thing" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thingprincipalattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thingprincipalattachment.json new file mode 100644 index 0000000000..e847399bfc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-thingprincipalattachment.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/ThingName" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ThingName", + "Principal" + ], + "typeName": "AWS::IoT::ThingPrincipalAttachment" +} 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 new file mode 100644 index 0000000000..2d202ebc9c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-iot-topicrule.json @@ -0,0 +1,617 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleName" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/FirehoseAction" + }, + "Http": { + "$ref": "#/definitions/HttpAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/IotAnalyticsAction" + }, + "IotEvents": { + "$ref": "#/definitions/IotEventsAction" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWiseAction" + }, + "Kinesis": { + "$ref": "#/definitions/KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/RepublishAction" + }, + "S3": { + "$ref": "#/definitions/S3Action" + }, + "Sns": { + "$ref": "#/definitions/SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/StepFunctionsAction" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value", + "Timestamp" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "StateReason", + "StateValue", + "RoleArn" + ], + "type": "object" + }, + "CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricValue", + "MetricNamespace", + "MetricUnit", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName", + "HashKeyField", + "HashKeyValue", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type", + "Endpoint", + "Index", + "Id", + "RoleArn" + ], + "type": "object" + }, + "FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "HttpAction": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/HttpAuthorization" + }, + "ConfirmationUrl": { + "type": "string" + }, + "Headers": { + "items": { + "$ref": "#/definitions/HttpActionHeader" + }, + "type": "array", + "uniqueItems": true + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpActionHeader": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "HttpAuthorization": { + "additionalProperties": false, + "properties": { + "Sigv4": { + "$ref": "#/definitions/SigV4Authorization" + } + }, + "type": "object" + }, + "IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "IotEventsAction": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "IotSiteWiseAction": { + "additionalProperties": false, + "properties": { + "PutAssetPropertyValueEntries": { + "items": { + "$ref": "#/definitions/PutAssetPropertyValueEntry" + }, + "type": "array", + "uniqueItems": true + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "PutAssetPropertyValueEntries", + "RoleArn" + ], + "type": "object" + }, + "KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "StreamName", + "RoleArn" + ], + "type": "object" + }, + "LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "PutAssetPropertyValueEntry": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValues": { + "items": { + "$ref": "#/definitions/AssetPropertyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "PropertyValues" + ], + "type": "object" + }, + "PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "RepublishAction": { + "additionalProperties": false, + "properties": { + "Qos": { + "type": "integer" + }, + "RoleArn": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "Topic", + "RoleArn" + ], + "type": "object" + }, + "S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "SigV4Authorization": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "SigningRegion": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "SigningRegion", + "RoleArn" + ], + "type": "object" + }, + "SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn", + "RoleArn" + ], + "type": "object" + }, + "SqsAction": { + "additionalProperties": false, + "properties": { + "QueueUrl": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "RoleArn", + "QueueUrl" + ], + "type": "object" + }, + "StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateMachineName": { + "type": "string" + } + }, + "required": [ + "StateMachineName", + "RoleArn" + ], + "type": "object" + }, + "TopicRulePayload": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { + "type": "string" + } + }, + "required": [ + "RuleDisabled", + "Actions", + "Sql" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "TopicRulePayload": { + "$ref": "#/definitions/TopicRulePayload" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "TopicRulePayload" + ], + "typeName": "AWS::IoT::TopicRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..37f96dfebc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-kinesis-streamconsumer.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConsumerName", + "/properties/StreamARN" + ], + "definitions": {}, + "handlers": { + "create": { + "permissions": [ + "kinesis:RegisterStreamConsumer", + "kinesis:DescribeStreamConsumer" + ] + }, + "delete": { + "permissions": [ + "kinesis:DeregisterStreamConsumer", + "kinesis:DescribeStreamConsumer" + ] + }, + "list": { + "permissions": [ + "kinesis:ListStreamConsumers" + ] + }, + "read": { + "permissions": [ + "kinesis:DescribeStreamConsumer" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConsumerARN" + ], + "properties": { + "ConsumerARN": { + "type": "string" + }, + "ConsumerCreationTimestamp": { + "type": "string" + }, + "ConsumerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "ConsumerStatus": { + "type": "string" + }, + "StreamARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws.*:kinesis:.*:\\d{12}:stream/\\S+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerARN", + "/properties/ConsumerStatus", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-alias.json similarity index 100% rename from src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-alias.json rename to src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-alias.json diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-eventinvokeconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-eventinvokeconfig.json new file mode 100644 index 0000000000..3fb157c505 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-eventinvokeconfig.json @@ -0,0 +1,127 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName", + "/properties/Qualifier" + ], + "definitions": { + "DestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "$ref": "#/definitions/OnFailure" + }, + "OnSuccess": { + "$ref": "#/definitions/OnSuccess" + } + }, + "type": "object" + }, + "OnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "maxLength": 350, + "minLength": 0, + "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "OnSuccess": { + "additionalProperties": false, + "properties": { + "Destination": { + "maxLength": 350, + "minLength": 0, + "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "lambda:PutFunctionEventInvokeConfig" + ] + }, + "delete": { + "permissions": [ + "lambda:DeleteFunctionEventInvokeConfig" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FunctionName": { + "$ref": "resource-schema.json#/properties/FunctionName" + } + }, + "required": [ + "FunctionName" + ] + }, + "permissions": [ + "lambda:ListFunctionEventInvokeConfigs" + ] + }, + "read": { + "permissions": [ + "lambda:GetFunctionEventInvokeConfig" + ] + }, + "update": { + "permissions": [ + "lambda:UpdateFunctionEventInvokeConfig" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionName", + "/properties/Qualifier" + ], + "properties": { + "DestinationConfig": { + "$ref": "#/definitions/DestinationConfig" + }, + "FunctionName": { + "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-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + }, + "MaximumEventAgeInSeconds": { + "maximum": 21600, + "minimum": 60, + "type": "integer" + }, + "MaximumRetryAttempts": { + "maximum": 2, + "minimum": 0, + "type": "integer" + }, + "Qualifier": { + "pattern": "^(|[a-zA-Z0-9$_-]{1,129})$", + "type": "string" + } + }, + "required": [ + "FunctionName", + "Qualifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Lambda::EventInvokeConfig" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-layerversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-layerversion.json new file mode 100644 index 0000000000..c807729638 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-layerversion.json @@ -0,0 +1,115 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CompatibleRuntimes", + "/properties/LicenseInfo", + "/properties/CompatibleArchitectures", + "/properties/LayerName", + "/properties/Description", + "/properties/Content" + ], + "definitions": { + "Content": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "lambda:PublishLayerVersion", + "s3:GetObject", + "s3:GetObjectVersion" + ] + }, + "delete": { + "permissions": [ + "lambda:GetLayerVersion", + "lambda:DeleteLayerVersion" + ] + }, + "list": { + "permissions": [ + "lambda:ListLayerVersions" + ] + }, + "read": { + "permissions": [ + "lambda:GetLayerVersion" + ] + } + }, + "primaryIdentifier": [ + "/properties/LayerVersionArn" + ], + "properties": { + "CompatibleArchitectures": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CompatibleRuntimes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Content": { + "$ref": "#/definitions/Content" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "maxLength": 140, + "minLength": 1, + "type": "string" + }, + "LayerVersionArn": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/LayerName": "$split(LayerName, \":\")[-1] $OR LayerName" + }, + "readOnlyProperties": [ + "/properties/LayerVersionArn" + ], + "required": [ + "Content" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lambda.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Lambda::LayerVersion", + "writeOnlyProperties": [ + "/properties/Content" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-version.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-version.json new file mode 100644 index 0000000000..5d7b080509 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-lambda-version.json @@ -0,0 +1,135 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName", + "/properties/Description", + "/properties/CodeSha256", + "/properties/ProvisionedConcurrencyConfig", + "/properties/RuntimePolicy" + ], + "definitions": { + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "RuntimePolicy": { + "additionalProperties": false, + "properties": { + "RuntimeVersionArn": { + "maxLength": 2048, + "minLength": 26, + "pattern": "^arn:(aws[a-zA-Z-]*):lambda:[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}::runtime:.+$", + "type": "string" + }, + "UpdateRuntimeOn": { + "type": "string" + } + }, + "required": [ + "UpdateRuntimeOn" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "lambda:PublishVersion", + "lambda:GetFunctionConfiguration", + "lambda:PutProvisionedConcurrencyConfig", + "lambda:GetProvisionedConcurrencyConfig", + "lambda:PutRuntimeManagementConfig", + "lambda:GetRuntimeManagementConfig" + ], + "timeoutInMinutes": 180 + }, + "delete": { + "permissions": [ + "lambda:GetFunctionConfiguration", + "lambda:DeleteFunction" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FunctionName": { + "maxLength": 140, + "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-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "FunctionName" + ] + }, + "permissions": [ + "lambda:ListVersionsByFunction" + ] + }, + "read": { + "permissions": [ + "lambda:GetFunctionConfiguration", + "lambda:GetProvisionedConcurrencyConfig", + "lambda:GetRuntimeManagementConfig" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionArn" + ], + "properties": { + "CodeSha256": { + "type": "string" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FunctionArn": { + "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-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + }, + "FunctionName": { + "maxLength": 140, + "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-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RuntimePolicy": { + "$ref": "#/definitions/RuntimePolicy" + }, + "Version": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/FunctionName": "$split(FunctionName, \":\")[-1] $OR FunctionName" + }, + "readOnlyProperties": [ + "/properties/Version", + "/properties/FunctionArn" + ], + "required": [ + "FunctionName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Lambda::Version" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-instance.json new file mode 100644 index 0000000000..2f7441b919 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-instance.json @@ -0,0 +1,246 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "pattern": "^ephemeral([0-9]|[1][0-9]|[2][0-3])$", + "type": "string" + } + }, + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "format": "AWS::EC2::Image.Id", + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-layer.json new file mode 100644 index 0000000000..9c1034b219 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-layer.json @@ -0,0 +1,265 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-stack.json new file mode 100644 index 0000000000..c091181181 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-opsworks-stack.json @@ -0,0 +1,234 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependentRequired": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-healthcheck.json new file mode 100644 index 0000000000..e45baa386f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-healthcheck.json @@ -0,0 +1,127 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig" + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-hostedzone.json new file mode 100644 index 0000000000..d54fb1df1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-s3-accesspoint.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-s3-accesspoint.json new file mode 100644 index 0000000000..ccfc32629b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-s3-accesspoint.json @@ -0,0 +1,147 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Bucket", + "/properties/BucketAccountId", + "/properties/VpcConfiguration" + ], + "definitions": { + "Arn": { + "type": "string" + }, + "PublicAccessBlockConfiguration": { + "properties": { + "BlockPublicAcls": { + "type": "boolean" + }, + "BlockPublicPolicy": { + "type": "boolean" + }, + "IgnorePublicAcls": { + "type": "boolean" + }, + "RestrictPublicBuckets": { + "type": "boolean" + } + }, + "type": "object" + }, + "VpcConfiguration": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "s3:CreateAccessPoint", + "s3:PutAccessPointPolicy", + "s3:PutAccessPointPublicAccessBlock" + ] + }, + "delete": { + "permissions": [ + "s3:DeleteAccessPointPolicy", + "s3:DeleteAccessPoint" + ] + }, + "list": { + "permissions": [ + "s3:ListAccessPoints" + ] + }, + "read": { + "permissions": [ + "s3:GetAccessPoint", + "s3:GetAccessPointPolicy" + ] + }, + "update": { + "permissions": [ + "s3:PutAccessPointPolicy", + "s3:PutAccessPointPublicAccessBlock", + "s3:DeleteAccessPointPolicy", + "s3:GetAccessPoint", + "s3:GetAccessPointPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Alias": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?$", + "type": "string" + }, + "Arn": { + "$ref": "#/definitions/Arn", + "examples": [ + "arn:aws:s3:us-west-2:123456789012:accesspoint/test" + ] + }, + "Bucket": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "BucketAccountId": { + "maxLength": 64, + "pattern": "^\\d{12}$", + "type": "string" + }, + "Name": { + "maxLength": 50, + "minLength": 3, + "pattern": "^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?$", + "type": "string" + }, + "NetworkOrigin": { + "enum": [ + "Internet", + "VPC" + ], + "type": "string" + }, + "Policy": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/PublicAccessBlockConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Alias", + "/properties/NetworkOrigin", + "/properties/Arn" + ], + "required": [ + "Bucket" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-s3", + "tagging": { + "taggable": false + }, + "typeName": "AWS::S3::AccessPoint" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-resourcepolicy.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SecretId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BlockPublicPolicy": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "ResourcePolicy": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "ResourcePolicy" + ], + "typeName": "AWS::SecretsManager::ResourcePolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secret.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secret.json new file mode 100644 index 0000000000..92ab3cf30b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secret.json @@ -0,0 +1,116 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "GenerateSecretString": { + "additionalProperties": false, + "properties": { + "ExcludeCharacters": { + "type": "string" + }, + "ExcludeLowercase": { + "type": "boolean" + }, + "ExcludeNumbers": { + "type": "boolean" + }, + "ExcludePunctuation": { + "type": "boolean" + }, + "ExcludeUppercase": { + "type": "boolean" + }, + "GenerateStringKey": { + "type": "string" + }, + "IncludeSpace": { + "type": "boolean" + }, + "PasswordLength": { + "type": "integer" + }, + "RequireEachIncludedType": { + "type": "boolean" + }, + "SecretStringTemplate": { + "type": "string" + } + }, + "type": "object" + }, + "ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GenerateSecretString": { + "$ref": "#/definitions/GenerateSecretString" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/ReplicaRegion" + }, + "type": "array", + "uniqueItems": false + }, + "SecretString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecretsManager::Secret" +} 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 new file mode 100644 index 0000000000..8b5501d290 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,29 @@ +{ + "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-sns-topic.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topic.json new file mode 100644 index 0000000000..c842ae6318 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topic.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FifoTopic", + "/properties/TopicName" + ], + "definitions": { + "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/Id" + ], + "properties": { + "ContentBasedDeduplication": { + "type": "boolean" + }, + "DisplayName": { + "type": "string" + }, + "FifoTopic": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "KmsMasterKeyId": { + "type": "string" + }, + "Subscription": { + "items": { + "$ref": "#/definitions/Subscription" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TopicName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SNS::Topic" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topicpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topicpolicy.json new file mode 100644 index 0000000000..545b0755da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sns-topicpolicy.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Topics": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Topics", + "PolicyDocument" + ], + "typeName": "AWS::SNS::TopicPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sqs-queuepolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sqs-queuepolicy.json new file mode 100644 index 0000000000..11e2be0523 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-sqs-queuepolicy.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + }, + "delete": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + }, + "update": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": [ + "object", + "string" + ] + }, + "Queues": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyDocument", + "Queues" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sqs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::SQS::QueuePolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-ipset.json new file mode 100644 index 0000000000..94373f418c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-ipset.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} 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 new file mode 100644 index 0000000000..fee0c5bbb0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-rule.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "ByteMatch", + "GeoMatch", + "IPMatch", + "RegexMatch", + "SizeConstraint", + "SqlInjectionMatch", + "XssMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..dc99c2496d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-sizeconstraintset.json @@ -0,0 +1,73 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-webacl.json new file mode 100644 index 0000000000..be54de03f4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-webacl.json @@ -0,0 +1,73 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..253758b36b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_5/aws-waf-xssmatchset.json @@ -0,0 +1,65 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} 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 9623d50793..7df90b9680 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -924,6 +924,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1132,7 +1133,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1414,6 +1414,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1488,7 +1489,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1524,7 +1524,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1575,6 +1574,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1684,6 +1684,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1718,6 +1719,7 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", + "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1781,6 +1783,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1821,7 +1824,6 @@ "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", "aws-opensearchserverless-vpcendpoint.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -1992,7 +1994,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2038,6 +2039,7 @@ "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2069,6 +2071,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json deleted file mode 100644 index b41c88be08..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KeyName" - ], - "definitions": { - "ApiKeyRestrictions": { - "additionalProperties": false, - "properties": { - "AllowActions": { - "insertionOrder": false, - "items": { - "maxLength": 200, - "minLength": 5, - "pattern": "^geo:\\w*\\*?$", - "type": "string" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - }, - "AllowReferers": { - "insertionOrder": false, - "items": { - "maxLength": 253, - "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "AllowResources": { - "insertionOrder": false, - "items": { - "maxLength": 1600, - "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "AllowActions", - "AllowResources" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteKey", - "geo:DescribeKey" - ] - }, - "list": { - "permissions": [ - "geo:ListKeys" - ] - }, - "read": { - "permissions": [ - "geo:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix", - "geo:UpdateKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "ExpireTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "ForceDelete": { - "type": "boolean" - }, - "ForceUpdate": { - "type": "boolean" - }, - "KeyArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "KeyName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "NoExpiry": { - "type": "boolean" - }, - "Restrictions": { - "$ref": "#/definitions/ApiKeyRestrictions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CreateTime", - "/properties/Arn", - "/properties/KeyArn", - "/properties/UpdateTime" - ], - "required": [ - "KeyName", - "Restrictions" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::APIKey", - "writeOnlyProperties": [ - "/properties/ForceUpdate", - "/properties/ForceDelete", - "/properties/NoExpiry" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 c3b6be5b4f..24dfaf7577 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -560,7 +560,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -670,7 +669,6 @@ "aws-dynamodb-table.json", "aws-ec2-capacityreservation.json", "aws-ec2-capacityreservationfleet.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -679,7 +677,7 @@ "aws-ec2-flowlog.json", "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -690,17 +688,18 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-placementgroup.json", "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", "aws-ec2-trafficmirrorfilterrule.json", @@ -724,13 +723,10 @@ "aws-ec2-vpcendpointservice.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -761,7 +757,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticsearch-domain.json", "aws-emr-cluster.json", @@ -785,6 +780,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -793,6 +789,7 @@ "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", @@ -824,6 +821,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -862,7 +860,6 @@ "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -931,7 +928,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 7484a185e3..1ab35bf8db 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -742,6 +742,7 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -789,7 +790,6 @@ "aws-backup-backupplan.json", "aws-backup-backupselection.json", "aws-backup-backupvault.json", - "aws-batch-computeenvironment.json", "aws-batch-jobdefinition.json", "aws-batch-jobqueue.json", "aws-batch-schedulingpolicy.json", @@ -902,6 +902,7 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfacepermission.json", "aws-ec2-placementgroup.json", @@ -981,6 +982,7 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", + "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1020,6 +1022,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1334,7 +1337,6 @@ "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", - "aws-synthetics-canary.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json deleted file mode 100644 index e7b7290e95..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "RequestTemplates": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "ResponseParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-computeenvironment.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-computeenvironment.json new file mode 100644 index 0000000000..16a69c623c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-computeenvironment.json @@ -0,0 +1,300 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ComputeEnvironmentName" + ] + ], + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ComputeResources/AllocationStrategy", + "/properties/ComputeResources/BidPercentage", + "/properties/ComputeResources/Ec2Configuration", + "/properties/ComputeResources/Ec2KeyPair", + "/properties/ComputeResources/ImageId", + "/properties/ComputeResources/InstanceRole", + "/properties/ComputeResources/InstanceTypes", + "/properties/ComputeResources/LaunchTemplate", + "/properties/ComputeResources/PlacementGroup", + "/properties/ComputeResources/SecurityGroupIds", + "/properties/ComputeResources/Subnets", + "/properties/ComputeResources/Tags", + "/properties/ComputeResources/Type" + ], + "createOnlyProperties": [ + "/properties/ComputeResources/SpotIamFleetRole", + "/properties/ComputeEnvironmentName", + "/properties/Tags", + "/properties/Type", + "/properties/EksConfiguration" + ], + "definitions": { + "ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "integer" + }, + "DesiredvCpus": { + "type": "integer" + }, + "Ec2Configuration": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ec2ConfigurationObject" + }, + "type": "array", + "uniqueItems": false + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "format": "AWS::EC2::Image.Id", + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "integer" + }, + "MinvCpus": { + "type": "integer" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UpdateToLatestImageVersion": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "Subnets", + "Type", + "MaxvCpus" + ], + "type": "object" + }, + "Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageKubernetesVersion": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "EksConfiguration": { + "additionalProperties": false, + "properties": { + "EksClusterArn": { + "default": false, + "type": "string" + }, + "KubernetesNamespace": { + "default": false, + "type": "string" + } + }, + "required": [ + "EksClusterArn", + "KubernetesNamespace" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "UpdatePolicy": { + "additionalProperties": false, + "properties": { + "JobExecutionTimeoutMinutes": { + "default": 30, + "type": "integer" + }, + "TerminateJobsOnUpdate": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "Batch:CreateComputeEnvironment", + "Batch:TagResource", + "Batch:DescribeComputeEnvironments", + "iam:CreateServiceLinkedRole", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + }, + "delete": { + "permissions": [ + "Batch:DeleteComputeEnvironment", + "Batch:DescribeComputeEnvironments", + "Batch:UpdateComputeEnvironment", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeComputeEnvironments" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeComputeEnvironments" + ] + }, + "update": { + "permissions": [ + "Batch:UpdateComputeEnvironment", + "Batch:DescribeComputeEnvironments", + "Batch:TagResource", + "Batch:UnTagResource", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + } + }, + "primaryIdentifier": [ + "/properties/ComputeEnvironmentArn" + ], + "properties": { + "ComputeEnvironmentArn": { + "type": "string" + }, + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/ComputeResources" + }, + "Context": { + "type": "string" + }, + "EksConfiguration": { + "$ref": "#/definitions/EksConfiguration" + }, + "ReplaceComputeEnvironment": { + "default": true, + "type": "boolean" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UnmanagedvCpus": { + "type": "integer" + }, + "UpdatePolicy": { + "$ref": "#/definitions/UpdatePolicy" + } + }, + "readOnlyProperties": [ + "/properties/ComputeEnvironmentArn" + ], + "required": [ + "Type" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Batch::ComputeEnvironment", + "writeOnlyProperties": [ + "/properties/ComputeResources/UpdateToLatestImageVersion", + "/properties/ReplaceComputeEnvironment", + "/properties/UpdatePolicy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json similarity index 90% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-synthetics-canary.json rename to src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json index 274392c7eb..0b1a6b8383 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-synthetics-canary.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-synthetics-canary.json @@ -50,6 +50,10 @@ "type": "string" }, "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, "type": "string" }, "S3Key": { @@ -147,6 +151,20 @@ "SecurityGroupIds": { "format": "AWS::EC2::SecurityGroup.Ids", "items": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/DefaultSecurityGroup", + "typeName": "AWS::EC2::VPC" + } + } + ], "format": "AWS::EC2::SecurityGroup.GroupId", "type": "string" }, @@ -154,12 +172,20 @@ }, "SubnetIds": { "items": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, "type": "string" }, "type": "array" }, "VpcId": { "format": "AWS::EC2::VPC.Id", + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, "type": "string" } }, 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 27c128eae6..5c09782eae 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -488,6 +488,8 @@ "AWS::Organizations::Account", "AWS::Organizations::Organization", "AWS::Organizations::OrganizationalUnit", + "AWS::Organizations::Policy", + "AWS::Organizations::ResourcePolicy", "AWS::Pipes::Pipe", "AWS::RAM::Permission", "AWS::RAM::ResourceShare", @@ -699,6 +701,7 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -847,7 +850,6 @@ "aws-ec2-host.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -858,17 +860,18 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfacepermission.json", "aws-ec2-placementgroup.json", "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -896,11 +899,9 @@ "aws-ec2-vpcendpointservice.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", @@ -934,7 +935,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -974,6 +974,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -986,6 +987,7 @@ "aws-glue-schemaversionmetadata.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", @@ -1096,7 +1098,6 @@ "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -1107,6 +1108,8 @@ "aws-organizations-account.json", "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", + "aws-organizations-policy.json", + "aws-organizations-resourcepolicy.json", "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", @@ -1121,6 +1124,7 @@ "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", @@ -1186,7 +1190,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1234,7 +1237,6 @@ "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", - "aws-synthetics-canary.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json deleted file mode 100644 index e7b7290e95..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "RequestTemplates": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "ResponseParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json similarity index 90% rename from src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json rename to src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json index 274392c7eb..0b1a6b8383 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-synthetics-canary.json @@ -50,6 +50,10 @@ "type": "string" }, "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, "type": "string" }, "S3Key": { @@ -147,6 +151,20 @@ "SecurityGroupIds": { "format": "AWS::EC2::SecurityGroup.Ids", "items": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/DefaultSecurityGroup", + "typeName": "AWS::EC2::VPC" + } + } + ], "format": "AWS::EC2::SecurityGroup.GroupId", "type": "string" }, @@ -154,12 +172,20 @@ }, "SubnetIds": { "items": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, "type": "string" }, "type": "array" }, "VpcId": { "format": "AWS::EC2::VPC.Id", + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, "type": "string" } }, 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 8936b2e7ac..ccc75eb26c 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -811,10 +811,19 @@ "AWS::MediaConvert::Preset", "AWS::MediaConvert::Queue", "AWS::MediaLive::Channel", + "AWS::MediaLive::ChannelPlacementGroup", + "AWS::MediaLive::CloudWatchAlarmTemplate", + "AWS::MediaLive::CloudWatchAlarmTemplateGroup", + "AWS::MediaLive::Cluster", + "AWS::MediaLive::EventBridgeRuleTemplate", + "AWS::MediaLive::EventBridgeRuleTemplateGroup", "AWS::MediaLive::Input", "AWS::MediaLive::InputSecurityGroup", "AWS::MediaLive::Multiplex", "AWS::MediaLive::Multiplexprogram", + "AWS::MediaLive::Network", + "AWS::MediaLive::SdiSource", + "AWS::MediaLive::SignalMap", "AWS::MediaPackage::Asset", "AWS::MediaPackage::Channel", "AWS::MediaPackage::OriginEndpoint", @@ -1069,6 +1078,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1251,7 +1261,6 @@ "aws-acmpca-certificateauthorityactivation.json", "aws-acmpca-permission.json", "aws-amazonmq-broker.json", - "aws-amazonmq-configuration.json", "aws-amazonmq-configurationassociation.json", "aws-amplify-app.json", "aws-amplify-branch.json", @@ -1284,7 +1293,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1366,24 +1374,18 @@ "aws-backup-backupvault.json", "aws-backup-framework.json", "aws-backup-reportplan.json", - "aws-backup-restoretestingplan.json", "aws-backup-restoretestingselection.json", "aws-backupgateway-hypervisor.json", - "aws-batch-computeenvironment.json", "aws-batch-jobdefinition.json", "aws-batch-jobqueue.json", "aws-batch-schedulingpolicy.json", "aws-bedrock-agent.json", "aws-bedrock-agentalias.json", "aws-bedrock-datasource.json", - "aws-bedrock-flow.json", - "aws-bedrock-flowalias.json", - "aws-bedrock-flowversion.json", "aws-bedrock-guardrail.json", "aws-bedrock-guardrailversion.json", "aws-bedrock-knowledgebase.json", "aws-bedrock-prompt.json", - "aws-bedrock-promptversion.json", "aws-budgets-budget.json", "aws-budgets-budgetsaction.json", "aws-cassandra-keyspace.json", @@ -1448,6 +1450,7 @@ "aws-codeartifact-domain.json", "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", + "aws-codebuild-fleet.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", "aws-codebuild-sourcecredential.json", @@ -1627,6 +1630,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscope.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-ec2-networkinsightsanalysis.json", @@ -1704,7 +1708,6 @@ "aws-eks-fargateprofile.json", "aws-eks-identityproviderconfig.json", "aws-eks-nodegroup.json", - "aws-eks-podidentityassociation.json", "aws-elasticache-cachecluster.json", "aws-elasticache-globalreplicationgroup.json", "aws-elasticache-replicationgroup.json", @@ -1722,6 +1725,7 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", + "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1987,6 +1991,7 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", + "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -2036,10 +2041,7 @@ "aws-mediapackage-originendpoint.json", "aws-mediapackage-packagingconfiguration.json", "aws-mediapackage-packaginggroup.json", - "aws-mediapackagev2-channel.json", - "aws-mediapackagev2-channelgroup.json", "aws-mediapackagev2-channelpolicy.json", - "aws-mediapackagev2-originendpoint.json", "aws-mediapackagev2-originendpointpolicy.json", "aws-mediastore-container.json", "aws-mediatailor-channel.json", @@ -2056,6 +2058,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -2156,6 +2159,8 @@ "aws-qldb-stream.json", "aws-quicksight-analysis.json", "aws-quicksight-dashboard.json", + "aws-quicksight-dataset.json", + "aws-quicksight-datasource.json", "aws-quicksight-refreshschedule.json", "aws-quicksight-template.json", "aws-quicksight-theme.json", @@ -2339,6 +2344,7 @@ "aws-ses-mailmanagerruleset.json", "aws-ses-mailmanagertrafficpolicy.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2371,6 +2377,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-amazonmq-configuration.json similarity index 50% rename from src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json rename to src/cfnlint/data/schemas/providers/eu_central_1/aws-amazonmq-configuration.json index f80020c4a8..034507bbcf 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-amazonmq-configuration.json @@ -1,21 +1,19 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/PublicKeyMaterial", + "/properties/AuthenticationStrategy", + "/properties/EngineType", + "/properties/EngineVersion", "/properties/Name" ], "definitions": { - "Tag": { + "TagsEntry": { "additionalProperties": false, "properties": { "Key": { - "maxLength": 128, - "minLength": 1, "type": "string" }, "Value": { - "maxLength": 256, - "minLength": 1, "type": "string" } }, @@ -29,82 +27,103 @@ "handlers": { "create": { "permissions": [ - "ivs:ImportPlaybackKeyPair", - "ivs:TagResource" + "mq:CreateConfiguration", + "mq:CreateTags", + "mq:UpdateConfiguration" ] }, "delete": { "permissions": [ - "ivs:DeletePlaybackKeyPair", - "ivs:UntagResource" + "mq:DescribeConfiguration" ] }, "list": { "permissions": [ - "ivs:ListPlaybackKeyPairs", - "ivs:ListTagsForResource" + "mq:ListConfigurations" ] }, "read": { "permissions": [ - "ivs:GetPlaybackKeyPair" + "mq:DescribeConfiguration", + "mq:ListTags" ] }, "update": { "permissions": [ - "ivs:GetPlaybackKeyPair", - "ivs:ListTagsForResource", - "ivs:UntagResource", - "ivs:TagResource" + "mq:UpdateConfiguration", + "mq:CreateTags", + "mq:DeleteTags" ] } }, "primaryIdentifier": [ - "/properties/Arn" + "/properties/Id" ], "properties": { "Arn": { - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$", "type": "string" }, - "Fingerprint": { + "AuthenticationStrategy": { "type": "string" }, - "Name": { - "maxLength": 128, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$", + "Data": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineType": { + "type": "string" + }, + "EngineVersion": { "type": "string" }, - "PublicKeyMaterial": { + "Id": { "type": "string" }, + "Name": { + "type": "string" + }, + "Revision": { + "type": "integer" + }, "Tags": { "insertionOrder": false, "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/TagsEntry" }, - "maxItems": 50, - "type": "array", - "uniqueItems": true + "type": "array" } }, + "propertyTransform": { + "/properties/AuthenticationStrategy": "$uppercase(AuthenticationStrategy)", + "/properties/EngineType": "$uppercase(EngineType)" + }, "readOnlyProperties": [ "/properties/Arn", - "/properties/Fingerprint" + "/properties/Id", + "/properties/Revision" + ], + "required": [ + "EngineType", + "Data", + "Name" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, + "permissions": [ + "mq:ListTags", + "mq:CreateTags", + "mq:DeleteTags" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, "taggable": true }, - "typeName": "AWS::IVS::PlaybackKeyPair", + "typeName": "AWS::AmazonMQ::Configuration", "writeOnlyProperties": [ - "/properties/PublicKeyMaterial" + "/properties/Data" ] } diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-backup-restoretestingplan.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-backup-restoretestingplan.json new file mode 100644 index 0000000000..e33941a4ad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-backup-restoretestingplan.json @@ -0,0 +1,180 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestoreTestingPlanName" + ], + "definitions": { + "RestoreTestingRecoveryPointSelection": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "$ref": "#/definitions/RestoreTestingRecoveryPointSelectionAlgorithm" + }, + "ExcludeVaults": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludeVaults": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "RecoveryPointTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/RestoreTestingRecoveryPointType" + }, + "type": "array" + }, + "SelectionWindowDays": { + "type": "integer" + } + }, + "required": [ + "Algorithm", + "RecoveryPointTypes", + "IncludeVaults" + ], + "type": "object" + }, + "RestoreTestingRecoveryPointSelectionAlgorithm": { + "enum": [ + "LATEST_WITHIN_WINDOW", + "RANDOM_WITHIN_WINDOW" + ], + "type": "string" + }, + "RestoreTestingRecoveryPointType": { + "enum": [ + "SNAPSHOT", + "CONTINUOUS" + ], + "type": "string" + }, + "RestoreTestingScheduleStatus": { + "enum": [ + "ACTIVE", + "SUSPENDED" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "backup:CreateRestoreTestingPlan", + "backup:UpdateRestoreTestingPlanScheduleStatus", + "backup:TagResource", + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + }, + "delete": { + "permissions": [ + "backup:DeleteRestoreTestingPlan", + "backup:GetRestoreTestingPlan" + ], + "timeoutInMinutes": 5 + }, + "list": { + "permissions": [ + "backup:ListRestoreTestingPlans" + ], + "timeoutInMinutes": 5 + }, + "read": { + "permissions": [ + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + }, + "update": { + "permissions": [ + "backup:UpdateRestoreTestingPlan", + "backup:UpdateRestoreTestingPlanScheduleStatus", + "backup:TagResource", + "backup:UntagResource", + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + } + }, + "primaryIdentifier": [ + "/properties/RestoreTestingPlanName" + ], + "properties": { + "RecoveryPointSelection": { + "$ref": "#/definitions/RestoreTestingRecoveryPointSelection" + }, + "RestoreTestingPlanArn": { + "type": "string" + }, + "RestoreTestingPlanName": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + }, + "ScheduleExpressionTimezone": { + "type": "string" + }, + "ScheduleStatus": { + "$ref": "#/definitions/RestoreTestingScheduleStatus" + }, + "StartWindowHours": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RestoreTestingPlanArn" + ], + "required": [ + "RecoveryPointSelection", + "ScheduleExpression", + "RestoreTestingPlanName" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Backup::RestoreTestingPlan" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-computeenvironment.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-computeenvironment.json new file mode 100644 index 0000000000..16a69c623c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-computeenvironment.json @@ -0,0 +1,300 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ComputeEnvironmentName" + ] + ], + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ComputeResources/AllocationStrategy", + "/properties/ComputeResources/BidPercentage", + "/properties/ComputeResources/Ec2Configuration", + "/properties/ComputeResources/Ec2KeyPair", + "/properties/ComputeResources/ImageId", + "/properties/ComputeResources/InstanceRole", + "/properties/ComputeResources/InstanceTypes", + "/properties/ComputeResources/LaunchTemplate", + "/properties/ComputeResources/PlacementGroup", + "/properties/ComputeResources/SecurityGroupIds", + "/properties/ComputeResources/Subnets", + "/properties/ComputeResources/Tags", + "/properties/ComputeResources/Type" + ], + "createOnlyProperties": [ + "/properties/ComputeResources/SpotIamFleetRole", + "/properties/ComputeEnvironmentName", + "/properties/Tags", + "/properties/Type", + "/properties/EksConfiguration" + ], + "definitions": { + "ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "integer" + }, + "DesiredvCpus": { + "type": "integer" + }, + "Ec2Configuration": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ec2ConfigurationObject" + }, + "type": "array", + "uniqueItems": false + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "format": "AWS::EC2::Image.Id", + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "integer" + }, + "MinvCpus": { + "type": "integer" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UpdateToLatestImageVersion": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "Subnets", + "Type", + "MaxvCpus" + ], + "type": "object" + }, + "Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageKubernetesVersion": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "EksConfiguration": { + "additionalProperties": false, + "properties": { + "EksClusterArn": { + "default": false, + "type": "string" + }, + "KubernetesNamespace": { + "default": false, + "type": "string" + } + }, + "required": [ + "EksClusterArn", + "KubernetesNamespace" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "UpdatePolicy": { + "additionalProperties": false, + "properties": { + "JobExecutionTimeoutMinutes": { + "default": 30, + "type": "integer" + }, + "TerminateJobsOnUpdate": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "Batch:CreateComputeEnvironment", + "Batch:TagResource", + "Batch:DescribeComputeEnvironments", + "iam:CreateServiceLinkedRole", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + }, + "delete": { + "permissions": [ + "Batch:DeleteComputeEnvironment", + "Batch:DescribeComputeEnvironments", + "Batch:UpdateComputeEnvironment", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeComputeEnvironments" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeComputeEnvironments" + ] + }, + "update": { + "permissions": [ + "Batch:UpdateComputeEnvironment", + "Batch:DescribeComputeEnvironments", + "Batch:TagResource", + "Batch:UnTagResource", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + } + }, + "primaryIdentifier": [ + "/properties/ComputeEnvironmentArn" + ], + "properties": { + "ComputeEnvironmentArn": { + "type": "string" + }, + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/ComputeResources" + }, + "Context": { + "type": "string" + }, + "EksConfiguration": { + "$ref": "#/definitions/EksConfiguration" + }, + "ReplaceComputeEnvironment": { + "default": true, + "type": "boolean" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UnmanagedvCpus": { + "type": "integer" + }, + "UpdatePolicy": { + "$ref": "#/definitions/UpdatePolicy" + } + }, + "readOnlyProperties": [ + "/properties/ComputeEnvironmentArn" + ], + "required": [ + "Type" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Batch::ComputeEnvironment", + "writeOnlyProperties": [ + "/properties/ComputeResources/UpdateToLatestImageVersion", + "/properties/ReplaceComputeEnvironment", + "/properties/UpdatePolicy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json new file mode 100644 index 0000000000..f4f72cb39c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json @@ -0,0 +1,1022 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "DefinitionSubstitutions": { + "additionalProperties": false, + "maxProperties": 500, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Storage", + "Retrieval", + "Iterator", + "Collector" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "FlowValidation": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + } + }, + "required": [ + "Message" + ], + "type": "object" + }, + "FlowValidations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FlowValidation" + }, + "type": "array" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionString": { + "maxLength": 512000, + "type": "string" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Validations": { + "$ref": "#/definitions/FlowValidations" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Validations" + ], + "required": [ + "ExecutionRoleArn", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Flow", + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json new file mode 100644 index 0000000000..e439cc9349 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "additionalProperties": false, + "properties": { + "FlowVersion": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowAliases" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "FlowArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Id": { + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "RoutingConfiguration": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::FlowAlias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json new file mode 100644 index 0000000000..7f2a3fcdc1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json @@ -0,0 +1,896 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Iterator", + "Collector", + "Storage", + "Retrieval" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowVersions" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "FlowArn": { + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "pattern": "^[0-9]{1,5}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "FlowArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::FlowVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json new file mode 100644 index 0000000000..7460656b1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json @@ -0,0 +1,296 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + }, + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "PromptArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "PromptId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "PromptArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Bedrock::PromptVersion" +} 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 deleted file mode 100644 index 4c870f71c0..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[a-zA-Z+-=._:/]+$", - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:CreateFleet", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:DeleteFleet" - ] - }, - "list": { - "permissions": [ - "codebuild:ListFleets" - ] - }, - "read": { - "permissions": [ - "codebuild:BatchGetFleets" - ] - }, - "update": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:UpdateFleet", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "minLength": 1, - "type": "string" - }, - "BaseCapacity": { - "minimum": 1, - "type": "integer" - }, - "ComputeType": { - "enum": [ - "BUILD_GENERAL1_SMALL", - "BUILD_GENERAL1_MEDIUM", - "BUILD_GENERAL1_LARGE", - "BUILD_GENERAL1_2XLARGE" - ], - "type": "string" - }, - "EnvironmentType": { - "enum": [ - "WINDOWS_SERVER_2019_CONTAINER", - "WINDOWS_SERVER_2022_CONTAINER", - "LINUX_CONTAINER", - "LINUX_GPU_CONTAINER", - "ARM_CONTAINER", - "MAC_ARM" - ], - "type": "string" - }, - "FleetServiceRole": { - "pattern": "^(?:arn:)[a-zA-Z+-=,._:/@]+$", - "type": "string" - }, - "FleetVpcConfig": { - "$ref": "#/definitions/VpcConfig" - }, - "ImageId": { - "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 2, - "type": "string" - }, - "OverflowBehavior": { - "enum": [ - "QUEUE", - "ON_DEMAND" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CodeBuild::Fleet" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-podidentityassociation.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-podidentityassociation.json new file mode 100644 index 0000000000..d5ba3adfc6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-podidentityassociation.json @@ -0,0 +1,134 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName", + "/properties/Namespace", + "/properties/ServiceAccount" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "eks:CreatePodIdentityAssociation", + "eks:DescribePodIdentityAssociation", + "eks:TagResource", + "iam:PassRole", + "iam:GetRole" + ] + }, + "delete": { + "permissions": [ + "eks:DeletePodIdentityAssociation", + "eks:DescribePodIdentityAssociation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ClusterName": { + "$ref": "resource-schema.json#/properties/ClusterName" + } + }, + "required": [ + "ClusterName" + ] + }, + "permissions": [ + "eks:ListPodIdentityAssociations" + ] + }, + "read": { + "permissions": [ + "eks:DescribePodIdentityAssociation" + ] + }, + "update": { + "permissions": [ + "eks:DescribePodIdentityAssociation", + "eks:UpdatePodIdentityAssociation", + "eks:TagResource", + "eks:UntagResource", + "iam:PassRole", + "iam:GetRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/AssociationArn" + ], + "properties": { + "AssociationArn": { + "type": "string" + }, + "AssociationId": { + "minLength": 1, + "type": "string" + }, + "ClusterName": { + "minLength": 1, + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ServiceAccount": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/AssociationArn", + "/properties/AssociationId" + ], + "replacementStrategy": "create_then_delete", + "required": [ + "ClusterName", + "RoleArn", + "Namespace", + "ServiceAccount" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "eks:TagResource", + "sqs:UntagResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EKS::PodIdentityAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json deleted file mode 100644 index b41c88be08..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KeyName" - ], - "definitions": { - "ApiKeyRestrictions": { - "additionalProperties": false, - "properties": { - "AllowActions": { - "insertionOrder": false, - "items": { - "maxLength": 200, - "minLength": 5, - "pattern": "^geo:\\w*\\*?$", - "type": "string" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - }, - "AllowReferers": { - "insertionOrder": false, - "items": { - "maxLength": 253, - "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "AllowResources": { - "insertionOrder": false, - "items": { - "maxLength": 1600, - "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "AllowActions", - "AllowResources" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteKey", - "geo:DescribeKey" - ] - }, - "list": { - "permissions": [ - "geo:ListKeys" - ] - }, - "read": { - "permissions": [ - "geo:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix", - "geo:UpdateKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "ExpireTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "ForceDelete": { - "type": "boolean" - }, - "ForceUpdate": { - "type": "boolean" - }, - "KeyArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "KeyName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "NoExpiry": { - "type": "boolean" - }, - "Restrictions": { - "$ref": "#/definitions/ApiKeyRestrictions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CreateTime", - "/properties/Arn", - "/properties/KeyArn", - "/properties/UpdateTime" - ], - "required": [ - "KeyName", - "Restrictions" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::APIKey", - "writeOnlyProperties": [ - "/properties/ForceUpdate", - "/properties/ForceDelete", - "/properties/NoExpiry" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-channelplacementgroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-channelplacementgroup.json new file mode 100644 index 0000000000..7612b76e19 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-channelplacementgroup.json @@ -0,0 +1,135 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterId" + ], + "definitions": { + "ChannelPlacementGroupState": { + "enum": [ + "UNASSIGNED", + "ASSIGNING", + "ASSIGNED", + "DELETING", + "DELETED", + "UNASSIGNING" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateChannelPlacementGroup", + "medialive:DescribeChannelPlacementGroup", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteChannelPlacementGroup", + "medialive:DescribeChannelPlacementGroup" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ClusterId": { + "$ref": "resource-schema.json#/properties/ClusterId" + } + }, + "required": [ + "ClusterId" + ] + }, + "permissions": [ + "medialive:ListChannelPlacementGroups" + ] + }, + "read": { + "permissions": [ + "medialive:DescribeChannelPlacementGroup" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateChannelPlacementGroup", + "medialive:DescribeChannelPlacementGroup", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/ClusterId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Channels": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Nodes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "State": { + "$ref": "#/definitions/ChannelPlacementGroupState" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tags" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Channels", + "/properties/Id", + "/properties/State" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-medialive.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::MediaLive::ChannelPlacementGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplate.json new file mode 100644 index 0000000000..070f36f714 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplate.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags" + ], + "definitions": { + "CloudWatchAlarmTemplateComparisonOperator": { + "enum": [ + "GreaterThanOrEqualToThreshold", + "GreaterThanThreshold", + "LessThanThreshold", + "LessThanOrEqualToThreshold" + ], + "type": "string" + }, + "CloudWatchAlarmTemplateStatistic": { + "enum": [ + "SampleCount", + "Average", + "Sum", + "Minimum", + "Maximum" + ], + "type": "string" + }, + "CloudWatchAlarmTemplateTargetResourceType": { + "enum": [ + "CLOUDFRONT_DISTRIBUTION", + "MEDIALIVE_MULTIPLEX", + "MEDIALIVE_CHANNEL", + "MEDIALIVE_INPUT_DEVICE", + "MEDIAPACKAGE_CHANNEL", + "MEDIAPACKAGE_ORIGIN_ENDPOINT", + "MEDIACONNECT_FLOW", + "S3_BUCKET" + ], + "type": "string" + }, + "CloudWatchAlarmTemplateTreatMissingData": { + "enum": [ + "notBreaching", + "breaching", + "ignore", + "missing" + ], + "type": "string" + }, + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateCloudWatchAlarmTemplate", + "medialive:GetCloudWatchAlarmTemplate", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteCloudWatchAlarmTemplate" + ] + }, + "list": { + "permissions": [ + "medialive:ListCloudWatchAlarmTemplates" + ] + }, + "read": { + "permissions": [ + "medialive:GetCloudWatchAlarmTemplate" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateCloudWatchAlarmTemplate", + "medialive:GetCloudWatchAlarmTemplate", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Identifier" + ], + "properties": { + "Arn": { + "pattern": "^arn:.+:medialive:.+:cloudwatch-alarm-template:.+$", + "type": "string" + }, + "ComparisonOperator": { + "$ref": "#/definitions/CloudWatchAlarmTemplateComparisonOperator" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "DatapointsToAlarm": { + "default": 0, + "minimum": 1, + "type": "number" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "EvaluationPeriods": { + "default": 0, + "minimum": 1, + "type": "number" + }, + "GroupId": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "GroupIdentifier": { + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Id": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "Identifier": { + "type": "string" + }, + "MetricName": { + "maxLength": 64, + "minLength": 0, + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 255, + "minLength": 1, + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Period": { + "default": 0, + "maximum": 86400, + "minimum": 10, + "type": "number" + }, + "Statistic": { + "$ref": "#/definitions/CloudWatchAlarmTemplateStatistic" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + }, + "TargetResourceType": { + "$ref": "#/definitions/CloudWatchAlarmTemplateTargetResourceType" + }, + "Threshold": { + "default": 0, + "type": "number" + }, + "TreatMissingData": { + "$ref": "#/definitions/CloudWatchAlarmTemplateTreatMissingData" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/GroupId", + "/properties/Identifier", + "/properties/ModifiedAt" + ], + "required": [ + "ComparisonOperator", + "EvaluationPeriods", + "GroupIdentifier", + "MetricName", + "Name", + "Period", + "Statistic", + "TargetResourceType", + "Threshold", + "TreatMissingData" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::CloudWatchAlarmTemplate", + "writeOnlyProperties": [ + "/properties/GroupIdentifier" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplategroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplategroup.json new file mode 100644 index 0000000000..20260aed5e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cloudwatchalarmtemplategroup.json @@ -0,0 +1,112 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Tags" + ], + "definitions": { + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateCloudWatchAlarmTemplateGroup", + "medialive:GetCloudWatchAlarmTemplateGroup", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteCloudWatchAlarmTemplateGroup" + ] + }, + "list": { + "permissions": [ + "medialive:ListCloudWatchAlarmTemplateGroups" + ] + }, + "read": { + "permissions": [ + "medialive:GetCloudWatchAlarmTemplateGroup" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateCloudWatchAlarmTemplateGroup", + "medialive:GetCloudWatchAlarmTemplateGroup", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Identifier" + ], + "properties": { + "Arn": { + "pattern": "^arn:.+:medialive:.+:cloudwatch-alarm-template-group:.+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Id": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "Identifier": { + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 255, + "minLength": 1, + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Identifier", + "/properties/ModifiedAt" + ], + "required": [ + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::CloudWatchAlarmTemplateGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cluster.json new file mode 100644 index 0000000000..ec4f88e475 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-cluster.json @@ -0,0 +1,178 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterType", + "/properties/InstanceRoleArn" + ], + "definitions": { + "ClusterNetworkSettings": { + "additionalProperties": false, + "properties": { + "DefaultRoute": { + "type": "string" + }, + "InterfaceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InterfaceMapping" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClusterState": { + "enum": [ + "CREATING", + "CREATE_FAILED", + "ACTIVE", + "DELETING", + "DELETED" + ], + "type": "string" + }, + "ClusterType": { + "enum": [ + "ON_PREMISES", + "OUTPOSTS_RACK", + "OUTPOSTS_SERVER", + "EC2" + ], + "type": "string" + }, + "InterfaceMapping": { + "additionalProperties": false, + "properties": { + "LogicalInterfaceName": { + "type": "string" + }, + "NetworkId": { + "type": "string" + } + }, + "type": "object" + }, + "InterfaceNetworkMapping": { + "additionalProperties": false, + "properties": { + "LogicalInterfaceName": { + "type": "string" + }, + "NetworkId": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateCluster", + "medialive:DescribeCluster", + "medialive:CreateTags", + "ecs:CreateCluster", + "ecs:RegisterTaskDefinition", + "ecs:TagResource", + "ecs:CreateService", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteCluster", + "medialive:DescribeCluster" + ] + }, + "list": { + "permissions": [ + "medialive:ListClusters" + ] + }, + "read": { + "permissions": [ + "medialive:DescribeCluster" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateCluster", + "medialive:DescribeCluster", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "^arn:.+:medialive:.+:cluster:.+$", + "type": "string" + }, + "ChannelIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterType": { + "$ref": "#/definitions/ClusterType" + }, + "Id": { + "type": "string" + }, + "InstanceRoleArn": { + "pattern": "^arn:.+:iam:.+:role/.+$", + "type": "string" + }, + "Name": { + "type": "string" + }, + "NetworkSettings": { + "$ref": "#/definitions/ClusterNetworkSettings" + }, + "State": { + "$ref": "#/definitions/ClusterState" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tags" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ChannelIds", + "/properties/Id", + "/properties/State" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplate.json new file mode 100644 index 0000000000..749ae3e718 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplate.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags" + ], + "definitions": { + "EventBridgeRuleTemplateEventType": { + "enum": [ + "MEDIALIVE_MULTIPLEX_ALERT", + "MEDIALIVE_MULTIPLEX_STATE_CHANGE", + "MEDIALIVE_CHANNEL_ALERT", + "MEDIALIVE_CHANNEL_INPUT_CHANGE", + "MEDIALIVE_CHANNEL_STATE_CHANGE", + "MEDIAPACKAGE_INPUT_NOTIFICATION", + "MEDIAPACKAGE_KEY_PROVIDER_NOTIFICATION", + "MEDIAPACKAGE_HARVEST_JOB_NOTIFICATION", + "SIGNAL_MAP_ACTIVE_ALARM", + "MEDIACONNECT_ALERT", + "MEDIACONNECT_SOURCE_HEALTH", + "MEDIACONNECT_OUTPUT_HEALTH", + "MEDIACONNECT_FLOW_STATUS_CHANGE" + ], + "type": "string" + }, + "EventBridgeRuleTemplateTarget": { + "additionalProperties": false, + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn.+$", + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateEventBridgeRuleTemplate", + "medialive:GetEventBridgeRuleTemplate", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteEventBridgeRuleTemplate" + ] + }, + "list": { + "permissions": [ + "medialive:ListEventBridgeRuleTemplates" + ] + }, + "read": { + "permissions": [ + "medialive:GetEventBridgeRuleTemplate" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateEventBridgeRuleTemplate", + "medialive:GetEventBridgeRuleTemplate", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Identifier" + ], + "properties": { + "Arn": { + "pattern": "^arn:.+:medialive:.+:eventbridge-rule-template:.+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "EventTargets": { + "items": { + "$ref": "#/definitions/EventBridgeRuleTemplateTarget" + }, + "type": "array" + }, + "EventType": { + "$ref": "#/definitions/EventBridgeRuleTemplateEventType" + }, + "GroupId": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "GroupIdentifier": { + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Id": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "Identifier": { + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 255, + "minLength": 1, + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/GroupId", + "/properties/Id", + "/properties/Identifier", + "/properties/ModifiedAt" + ], + "required": [ + "EventType", + "GroupIdentifier", + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::EventBridgeRuleTemplate", + "writeOnlyProperties": [ + "/properties/GroupIdentifier" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplategroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplategroup.json new file mode 100644 index 0000000000..f947d401ca --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-eventbridgeruletemplategroup.json @@ -0,0 +1,112 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Tags" + ], + "definitions": { + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateEventBridgeRuleTemplateGroup", + "medialive:GetEventBridgeRuleTemplateGroup", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteEventBridgeRuleTemplateGroup" + ] + }, + "list": { + "permissions": [ + "medialive:ListEventBridgeRuleTemplateGroups" + ] + }, + "read": { + "permissions": [ + "medialive:GetEventBridgeRuleTemplateGroup" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateEventBridgeRuleTemplateGroup", + "medialive:GetEventBridgeRuleTemplateGroup", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Identifier" + ], + "properties": { + "Arn": { + "pattern": "^arn:.+:medialive:.+:eventbridge-rule-template-group:.+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Id": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "Identifier": { + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 255, + "minLength": 1, + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Identifier", + "/properties/ModifiedAt" + ], + "required": [ + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::EventBridgeRuleTemplateGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-network.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-network.json new file mode 100644 index 0000000000..b8c3eb712b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-network.json @@ -0,0 +1,151 @@ +{ + "additionalProperties": false, + "definitions": { + "IpPool": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkState": { + "enum": [ + "CREATING", + "CREATE_FAILED", + "ACTIVE", + "DELETING", + "IDLE", + "IN_USE", + "UPDATING", + "DELETED", + "DELETE_FAILED" + ], + "type": "string" + }, + "Route": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Gateway": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateNetwork", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteNetwork", + "medialive:DescribeNetwork" + ] + }, + "list": { + "permissions": [ + "medialive:ListNetworks" + ] + }, + "read": { + "permissions": [ + "medialive:DescribeNetwork" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateNetwork", + "medialive:CreateTags", + "medialive:DeleteTags", + "medialive:DescribeNetwork" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AssociatedClusterIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "IpPools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpPool" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Routes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Route" + }, + "type": "array" + }, + "State": { + "$ref": "#/definitions/NetworkState" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tags" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/State", + "/properties/AssociatedClusterIds" + ], + "required": [ + "Name", + "IpPools" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::Network" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-sdisource.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-sdisource.json new file mode 100644 index 0000000000..345c4eb1cd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-sdisource.json @@ -0,0 +1,130 @@ +{ + "additionalProperties": false, + "definitions": { + "SdiSourceMode": { + "enum": [ + "QUADRANT", + "INTERLEAVE" + ], + "type": "string" + }, + "SdiSourceState": { + "enum": [ + "IDLE", + "IN_USE", + "DELETED" + ], + "type": "string" + }, + "SdiSourceType": { + "enum": [ + "SINGLE", + "QUAD" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateSdiSource", + "medialive:CreateTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteSdiSource", + "medialive:DescribeSdiSource" + ] + }, + "list": { + "permissions": [ + "medialive:ListSdiSources" + ] + }, + "read": { + "permissions": [ + "medialive:DescribeSdiSource" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateSdiSource", + "medialive:DescribeSdiSource", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Inputs": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "Mode": { + "$ref": "#/definitions/SdiSourceMode" + }, + "Name": { + "type": "string" + }, + "State": { + "$ref": "#/definitions/SdiSourceState" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tags" + }, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/SdiSourceType" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/State", + "/properties/Arn", + "/properties/Inputs" + ], + "required": [ + "Name", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::SdiSource" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-signalmap.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-signalmap.json new file mode 100644 index 0000000000..21622c3d4e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-signalmap.json @@ -0,0 +1,400 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags" + ], + "definitions": { + "FailedMediaResourceMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "$ref": "#/definitions/MediaResource" + } + }, + "type": "object" + }, + "MediaResource": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/MediaResourceNeighbor" + }, + "type": "array" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/MediaResourceNeighbor" + }, + "type": "array" + } + }, + "type": "object" + }, + "MediaResourceMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "$ref": "#/definitions/MediaResource" + } + }, + "type": "object" + }, + "MediaResourceNeighbor": { + "additionalProperties": false, + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn.+$", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "MonitorDeployment": { + "additionalProperties": false, + "properties": { + "DetailsUri": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ErrorMessage": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/SignalMapMonitorDeploymentStatus" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "SignalMapMonitorDeploymentStatus": { + "enum": [ + "NOT_DEPLOYED", + "DRY_RUN_DEPLOYMENT_COMPLETE", + "DRY_RUN_DEPLOYMENT_FAILED", + "DRY_RUN_DEPLOYMENT_IN_PROGRESS", + "DEPLOYMENT_COMPLETE", + "DEPLOYMENT_FAILED", + "DEPLOYMENT_IN_PROGRESS", + "DELETE_COMPLETE", + "DELETE_FAILED", + "DELETE_IN_PROGRESS" + ], + "type": "string" + }, + "SignalMapStatus": { + "enum": [ + "CREATE_IN_PROGRESS", + "CREATE_COMPLETE", + "CREATE_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_COMPLETE", + "UPDATE_REVERTED", + "UPDATE_FAILED", + "READY", + "NOT_READY" + ], + "type": "string" + }, + "SuccessfulMonitorDeployment": { + "additionalProperties": false, + "properties": { + "DetailsUri": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/SignalMapMonitorDeploymentStatus" + } + }, + "required": [ + "DetailsUri", + "Status" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + }, + "Unit": { + "additionalProperties": false, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "medialive:CreateSignalMap", + "medialive:GetSignalMap", + "medialive:CreateTags", + "medialive:DescribeChannel", + "medialive:DescribeInput", + "medialive:DescribeInputDevice", + "medialive:DescribeInputSecurityGroup", + "medialive:DescribeMultiplex", + "medialive:DescribeMultiplexProgram", + "medialive:ListChannels", + "medialive:ListInputDevices", + "medialive:ListInputSecurityGroups", + "medialive:ListInputs", + "medialive:ListMultiplexPrograms", + "medialive:ListMultiplexes", + "medialive:ListOfferings", + "medialive:ListReservations", + "medialive:ListTagsForResource", + "cloudfront:ListDistributions", + "cloudfront:GetDistribution", + "ec2:DescribeNetworkInterfaces", + "mediaconnect:ListEntitlements", + "mediaconnect:ListFlows", + "mediaconnect:ListOfferings", + "mediaconnect:ListReservations", + "mediaconnect:DescribeFlow", + "mediapackage:ListChannels", + "mediapackage:ListOriginEndpoints", + "mediapackage:DescribeChannel", + "mediapackage:DescribeOriginEndpoint", + "mediapackagev2:ListChannelGroups", + "mediapackagev2:ListChannels", + "mediapackagev2:ListOriginEndpoints", + "mediapackagev2:GetChannelGroup", + "mediapackagev2:GetChannel", + "mediapackagev2:GetOriginEndpoint", + "tag:GetResources" + ] + }, + "delete": { + "permissions": [ + "medialive:GetSignalMap", + "medialive:DeleteSignalMap" + ] + }, + "list": { + "permissions": [ + "medialive:ListSignalMaps" + ] + }, + "read": { + "permissions": [ + "medialive:GetSignalMap", + "tag:GetResources" + ] + }, + "update": { + "permissions": [ + "medialive:StartUpdateSignalMap", + "medialive:GetSignalMap", + "medialive:CreateTags", + "medialive:DeleteTags", + "medialive:DescribeChannel", + "medialive:DescribeInput", + "medialive:DescribeInputDevice", + "medialive:DescribeInputSecurityGroup", + "medialive:DescribeMultiplex", + "medialive:DescribeMultiplexProgram", + "medialive:ListChannels", + "medialive:ListInputDevices", + "medialive:ListInputSecurityGroups", + "medialive:ListInputs", + "medialive:ListMultiplexPrograms", + "medialive:ListMultiplexes", + "medialive:ListOfferings", + "medialive:ListReservations", + "medialive:ListTagsForResource", + "cloudfront:ListDistributions", + "cloudfront:GetDistribution", + "ec2:DescribeNetworkInterfaces", + "mediaconnect:ListEntitlements", + "mediaconnect:ListFlows", + "mediaconnect:ListOfferings", + "mediaconnect:ListReservations", + "mediaconnect:DescribeFlow", + "mediapackage:ListChannels", + "mediapackage:ListOriginEndpoints", + "mediapackage:DescribeChannel", + "mediapackage:DescribeOriginEndpoint", + "mediapackagev2:ListChannelGroups", + "mediapackagev2:ListChannels", + "mediapackagev2:ListOriginEndpoints", + "mediapackagev2:GetChannelGroup", + "mediapackagev2:GetChannel", + "mediapackagev2:GetOriginEndpoint", + "tag:GetResources" + ] + } + }, + "primaryIdentifier": [ + "/properties/Identifier" + ], + "properties": { + "Arn": { + "pattern": "^arn:.+:medialive:.+:signal-map:.+$", + "type": "string" + }, + "CloudWatchAlarmTemplateGroupIdentifiers": { + "items": { + "pattern": "^[^\\s]+$", + "type": "string" + }, + "type": "array" + }, + "CloudWatchAlarmTemplateGroupIds": { + "items": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "type": "array" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "DiscoveryEntryPointArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ErrorMessage": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "EventBridgeRuleTemplateGroupIdentifiers": { + "items": { + "pattern": "^[^\\s]+$", + "type": "string" + }, + "type": "array" + }, + "EventBridgeRuleTemplateGroupIds": { + "items": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "type": "array" + }, + "FailedMediaResourceMap": { + "$ref": "#/definitions/FailedMediaResourceMap" + }, + "ForceRediscovery": { + "default": false, + "type": "boolean" + }, + "Id": { + "maxLength": 11, + "minLength": 7, + "pattern": "^(aws-)?[0-9]{7}$", + "type": "string" + }, + "Identifier": { + "type": "string" + }, + "LastDiscoveredAt": { + "format": "date-time", + "type": "string" + }, + "LastSuccessfulMonitorDeployment": { + "$ref": "#/definitions/SuccessfulMonitorDeployment" + }, + "MediaResourceMap": { + "$ref": "#/definitions/MediaResourceMap" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "MonitorChangesPendingDeployment": { + "default": false, + "type": "boolean" + }, + "MonitorDeployment": { + "$ref": "#/definitions/MonitorDeployment" + }, + "Name": { + "maxLength": 255, + "minLength": 1, + "pattern": "^[^\\s]+$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/SignalMapStatus" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CloudWatchAlarmTemplateGroupIds", + "/properties/CreatedAt", + "/properties/ErrorMessage", + "/properties/EventBridgeRuleTemplateGroupIds", + "/properties/FailedMediaResourceMap", + "/properties/Id", + "/properties/Identifier", + "/properties/LastDiscoveredAt", + "/properties/LastSuccessfulMonitorDeployment", + "/properties/MediaResourceMap", + "/properties/ModifiedAt", + "/properties/MonitorChangesPendingDeployment", + "/properties/MonitorDeployment", + "/properties/Status" + ], + "required": [ + "DiscoveryEntryPointArn", + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaLive::SignalMap", + "writeOnlyProperties": [ + "/properties/CloudWatchAlarmTemplateGroupIdentifiers", + "/properties/EventBridgeRuleTemplateGroupIdentifiers", + "/properties/ForceRediscovery" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channel.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channel.json new file mode 100644 index 0000000000..70e46bd14f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channel.json @@ -0,0 +1,169 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/InputType" + ], + "definitions": { + "IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "InputType": { + "enum": [ + "HLS", + "CMAF" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateChannel" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetChannel", + "mediapackagev2:DeleteChannel" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelGroupName": { + "$ref": "resource-schema.json#/properties/ChannelGroupName" + } + }, + "required": [ + "ChannelGroupName" + ] + }, + "permissions": [ + "mediapackagev2:ListChannels" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetChannel" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateChannel" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ChannelName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "IngestEndpointUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IngestEndpoints": { + "items": { + "$ref": "#/definitions/IngestEndpoint" + }, + "type": "array" + }, + "InputType": { + "$ref": "#/definitions/InputType" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/IngestEndpoints", + "/properties/IngestEndpointUrls", + "/properties/ModifiedAt" + ], + "required": [ + "ChannelGroupName", + "ChannelName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channelgroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channelgroup.json new file mode 100644 index 0000000000..840ae997a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-channelgroup.json @@ -0,0 +1,117 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateChannelGroup" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetChannelGroup", + "mediapackagev2:DeleteChannelGroup" + ] + }, + "list": { + "permissions": [ + "mediapackagev2:ListChannelGroups" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetChannelGroup" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateChannelGroup" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "EgressDomain": { + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/EgressDomain", + "/properties/ModifiedAt" + ], + "required": [ + "ChannelGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::ChannelGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-originendpoint.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-originendpoint.json new file mode 100644 index 0000000000..ccb9268366 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackagev2-originendpoint.json @@ -0,0 +1,658 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/OriginEndpointName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/OriginEndpointName" + ], + "definitions": { + "AdMarkerDash": { + "enum": [ + "BINARY", + "XML" + ], + "type": "string" + }, + "AdMarkerHls": { + "enum": [ + "DATERANGE" + ], + "type": "string" + }, + "CmafEncryptionMethod": { + "enum": [ + "CENC", + "CBCS" + ], + "type": "string" + }, + "ContainerType": { + "enum": [ + "TS", + "CMAF" + ], + "type": "string" + }, + "DashDrmSignaling": { + "enum": [ + "INDIVIDUAL", + "REFERENCED" + ], + "type": "string" + }, + "DashManifestConfiguration": { + "additionalProperties": false, + "properties": { + "DrmSignaling": { + "$ref": "#/definitions/DashDrmSignaling" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "MinBufferTimeSeconds": { + "type": "integer" + }, + "MinUpdatePeriodSeconds": { + "type": "integer" + }, + "PeriodTriggers": { + "items": { + "$ref": "#/definitions/DashPeriodTrigger" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ScteDash": { + "$ref": "#/definitions/ScteDash" + }, + "SegmentTemplateFormat": { + "$ref": "#/definitions/DashSegmentTemplateFormat" + }, + "SuggestedPresentationDelaySeconds": { + "type": "integer" + }, + "UtcTiming": { + "$ref": "#/definitions/DashUtcTiming" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "DashPeriodTrigger": { + "enum": [ + "AVAILS", + "DRM_KEY_ROTATION", + "SOURCE_CHANGES", + "SOURCE_DISRUPTIONS", + "NONE" + ], + "type": "string" + }, + "DashSegmentTemplateFormat": { + "enum": [ + "NUMBER_WITH_TIMELINE" + ], + "type": "string" + }, + "DashUtcTiming": { + "additionalProperties": false, + "properties": { + "TimingMode": { + "$ref": "#/definitions/DashUtcTimingMode" + }, + "TimingSource": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "DashUtcTimingMode": { + "enum": [ + "HTTP_HEAD", + "HTTP_ISO", + "HTTP_XSDATE", + "UTC_DIRECT" + ], + "type": "string" + }, + "DrmSystem": { + "enum": [ + "CLEAR_KEY_AES_128", + "FAIRPLAY", + "PLAYREADY", + "WIDEVINE", + "IRDETO" + ], + "type": "string" + }, + "Encryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "maxLength": 32, + "minLength": 32, + "pattern": "^[0-9a-fA-F]+$", + "type": "string" + }, + "EncryptionMethod": { + "$ref": "#/definitions/EncryptionMethod" + }, + "KeyRotationIntervalSeconds": { + "maximum": 31536000, + "minimum": 300, + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "EncryptionMethod", + "SpekeKeyProvider" + ], + "type": "object" + }, + "EncryptionContractConfiguration": { + "additionalProperties": false, + "properties": { + "PresetSpeke20Audio": { + "$ref": "#/definitions/PresetSpeke20Audio" + }, + "PresetSpeke20Video": { + "$ref": "#/definitions/PresetSpeke20Video" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "EncryptionMethod": { + "additionalProperties": false, + "properties": { + "CmafEncryptionMethod": { + "$ref": "#/definitions/CmafEncryptionMethod" + }, + "TsEncryptionMethod": { + "$ref": "#/definitions/TsEncryptionMethod" + } + }, + "type": "object" + }, + "EndpointErrorCondition": { + "enum": [ + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT" + ], + "type": "string" + }, + "FilterConfiguration": { + "additionalProperties": false, + "properties": { + "End": { + "format": "date-time", + "type": "string" + }, + "ManifestFilter": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Start": { + "format": "date-time", + "type": "string" + }, + "TimeDelaySeconds": { + "maximum": 1209600, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "ForceEndpointErrorConfiguration": { + "additionalProperties": false, + "properties": { + "EndpointErrorConditions": { + "items": { + "$ref": "#/definitions/EndpointErrorCondition" + }, + "type": "array" + } + }, + "type": "object" + }, + "HlsManifestConfiguration": { + "additionalProperties": false, + "properties": { + "ChildManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "ScteHls": { + "$ref": "#/definitions/ScteHls" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "LowLatencyHlsManifestConfiguration": { + "additionalProperties": false, + "properties": { + "ChildManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "ScteHls": { + "$ref": "#/definitions/ScteHls" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "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" + }, + "Scte": { + "additionalProperties": false, + "properties": { + "ScteFilter": { + "items": { + "$ref": "#/definitions/ScteFilter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScteDash": { + "additionalProperties": false, + "properties": { + "AdMarkerDash": { + "$ref": "#/definitions/AdMarkerDash" + } + }, + "type": "object" + }, + "ScteFilter": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY", + "PROGRAM" + ], + "type": "string" + }, + "ScteHls": { + "additionalProperties": false, + "properties": { + "AdMarkerHls": { + "$ref": "#/definitions/AdMarkerHls" + } + }, + "type": "object" + }, + "Segment": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/Encryption" + }, + "IncludeIframeOnlyStreams": { + "type": "boolean" + }, + "Scte": { + "$ref": "#/definitions/Scte" + }, + "SegmentDurationSeconds": { + "maximum": 30, + "minimum": 1, + "type": "integer" + }, + "SegmentName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "TsIncludeDvbSubtitles": { + "type": "boolean" + }, + "TsUseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "DrmSystems": { + "items": { + "$ref": "#/definitions/DrmSystem" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/EncryptionContractConfiguration" + }, + "ResourceId": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[0-9a-zA-Z_-]+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DrmSystems", + "EncryptionContractConfiguration", + "ResourceId", + "RoleArn", + "Url" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TsEncryptionMethod": { + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateOriginEndpoint", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetOriginEndpoint", + "mediapackagev2:DeleteOriginEndpoint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelGroupName": { + "$ref": "resource-schema.json#/properties/ChannelGroupName" + }, + "ChannelName": { + "$ref": "resource-schema.json#/properties/ChannelName" + } + }, + "required": [ + "ChannelGroupName", + "ChannelName" + ] + }, + "permissions": [ + "mediapackagev2:ListOriginEndpoints" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetOriginEndpoint" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateOriginEndpoint", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ChannelName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ContainerType": { + "$ref": "#/definitions/ContainerType" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "DashManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DashManifests": { + "items": { + "$ref": "#/definitions/DashManifestConfiguration" + }, + "type": "array" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ForceEndpointErrorConfiguration": { + "$ref": "#/definitions/ForceEndpointErrorConfiguration" + }, + "HlsManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/HlsManifestConfiguration" + }, + "type": "array" + }, + "LowLatencyHlsManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LowLatencyHlsManifests": { + "items": { + "$ref": "#/definitions/LowLatencyHlsManifestConfiguration" + }, + "type": "array" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "OriginEndpointName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Segment": { + "$ref": "#/definitions/Segment" + }, + "StartoverWindowSeconds": { + "maximum": 1209600, + "minimum": 60, + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/DashManifestUrls", + "/properties/HlsManifestUrls", + "/properties/LowLatencyHlsManifestUrls", + "/properties/ModifiedAt", + "/properties/LowLatencyHlsManifests/*/Url", + "/properties/HlsManifests/*/Url" + ], + "required": [ + "ChannelGroupName", + "ChannelName", + "OriginEndpointName", + "ContainerType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::OriginEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-msk-replicator.json deleted file mode 100644 index 19aeafdd58..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-msk-replicator.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "ReplicationTopicNameConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationTopicNameConfigurationType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationTopicNameConfigurationType": { - "enum": [ - "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS", - "IDENTICAL" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicNameConfiguration": { - "$ref": "#/definitions/ReplicationTopicNameConfiguration" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "permissions": [ - "kafka:UntagResource", - "kafka:ListTagsForResource", - "kafka:TagResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 db0c20ddc8..c19411f2e9 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -50,6 +50,13 @@ "AWS::AppConfig::Extension", "AWS::AppConfig::ExtensionAssociation", "AWS::AppConfig::HostedConfigurationVersion", + "AWS::AppMesh::GatewayRoute", + "AWS::AppMesh::Mesh", + "AWS::AppMesh::Route", + "AWS::AppMesh::VirtualGateway", + "AWS::AppMesh::VirtualNode", + "AWS::AppMesh::VirtualRouter", + "AWS::AppMesh::VirtualService", "AWS::AppSync::ApiCache", "AWS::AppSync::ApiKey", "AWS::AppSync::DataSource", @@ -149,6 +156,7 @@ "AWS::Config::DeliveryChannel", "AWS::Config::OrganizationConfigRule", "AWS::Config::OrganizationConformancePack", + "AWS::Config::RemediationConfiguration", "AWS::Config::StoredQuery", "AWS::ControlTower::EnabledBaseline", "AWS::ControlTower::EnabledControl", @@ -641,7 +649,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -659,6 +666,13 @@ "aws-applicationautoscaling-scalingpolicy.json", "aws-applicationinsights-application.json", "aws-applicationsignals-servicelevelobjective.json", + "aws-appmesh-gatewayroute.json", + "aws-appmesh-mesh.json", + "aws-appmesh-route.json", + "aws-appmesh-virtualgateway.json", + "aws-appmesh-virtualnode.json", + "aws-appmesh-virtualrouter.json", + "aws-appmesh-virtualservice.json", "aws-appsync-apicache.json", "aws-appsync-apikey.json", "aws-appsync-datasource.json", @@ -752,6 +766,7 @@ "aws-config-deliverychannel.json", "aws-config-organizationconfigrule.json", "aws-config-organizationconformancepack.json", + "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", "aws-controltower-enabledcontrol.json", @@ -780,7 +795,6 @@ "aws-ec2-clientvpnendpoint.json", "aws-ec2-clientvpnroute.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -790,7 +804,7 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -801,6 +815,7 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-networkperformancemetricsubscription.json", @@ -808,11 +823,11 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -840,14 +855,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -878,7 +890,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -915,6 +926,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -923,6 +935,7 @@ "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", @@ -961,7 +974,9 @@ "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", + "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1002,7 +1017,6 @@ "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -1039,6 +1053,7 @@ "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", @@ -1094,7 +1109,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json deleted file mode 100644 index c42acee4f5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AliasName" - ], - "handlers": { - "create": { - "permissions": [ - "kms:CreateAlias" - ] - }, - "delete": { - "permissions": [ - "kms:DeleteAlias" - ] - }, - "list": { - "permissions": [ - "kms:ListAliases" - ] - }, - "read": { - "permissions": [ - "kms:ListAliases" - ] - }, - "update": { - "permissions": [ - "kms:UpdateAlias" - ] - } - }, - "primaryIdentifier": [ - "/properties/AliasName" - ], - "properties": { - "AliasName": { - "maxLength": 256, - "minLength": 1, - "pattern": "^(alias/)[a-zA-Z0-9:/_-]+$", - "type": "string" - }, - "TargetKeyId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "taggable": false, - "typeName": "AWS::KMS::Alias" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 1354eeef7a..0fc753c1fd 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -796,6 +796,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -820,6 +823,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1009,7 +1013,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1277,7 +1280,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -1312,14 +1314,12 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1355,7 +1355,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1401,6 +1400,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1498,6 +1498,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1528,6 +1529,7 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", + "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1595,6 +1597,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1733,7 +1736,6 @@ "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-dataqualityjobdefinition.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -1756,7 +1758,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -1764,7 +1765,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1807,6 +1807,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", @@ -1838,6 +1841,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json deleted file mode 100644 index b41c88be08..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KeyName" - ], - "definitions": { - "ApiKeyRestrictions": { - "additionalProperties": false, - "properties": { - "AllowActions": { - "insertionOrder": false, - "items": { - "maxLength": 200, - "minLength": 5, - "pattern": "^geo:\\w*\\*?$", - "type": "string" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - }, - "AllowReferers": { - "insertionOrder": false, - "items": { - "maxLength": 253, - "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "AllowResources": { - "insertionOrder": false, - "items": { - "maxLength": 1600, - "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "AllowActions", - "AllowResources" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteKey", - "geo:DescribeKey" - ] - }, - "list": { - "permissions": [ - "geo:ListKeys" - ] - }, - "read": { - "permissions": [ - "geo:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix", - "geo:UpdateKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "ExpireTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "ForceDelete": { - "type": "boolean" - }, - "ForceUpdate": { - "type": "boolean" - }, - "KeyArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "KeyName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "NoExpiry": { - "type": "boolean" - }, - "Restrictions": { - "$ref": "#/definitions/ApiKeyRestrictions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CreateTime", - "/properties/Arn", - "/properties/KeyArn", - "/properties/UpdateTime" - ], - "required": [ - "KeyName", - "Restrictions" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::APIKey", - "writeOnlyProperties": [ - "/properties/ForceUpdate", - "/properties/ForceDelete", - "/properties/NoExpiry" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 dd9efb7d30..e4ba863e6b 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -643,6 +643,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -832,7 +835,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1020,7 +1022,6 @@ "aws-ec2-clientvpnendpoint.json", "aws-ec2-clientvpnroute.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -1032,7 +1033,7 @@ "aws-ec2-host.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1047,6 +1048,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscope.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-ec2-networkinsightsanalysis.json", @@ -1063,7 +1065,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -1097,14 +1098,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1140,7 +1138,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1179,6 +1176,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1235,6 +1233,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1296,7 +1295,6 @@ "aws-networkmanager-vpcattachment.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -1333,6 +1331,7 @@ "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", @@ -1415,7 +1414,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", @@ -1447,6 +1445,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 2120ebdd18..b7d94b89e8 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -50,6 +50,13 @@ "AWS::AppConfig::Extension", "AWS::AppConfig::ExtensionAssociation", "AWS::AppConfig::HostedConfigurationVersion", + "AWS::AppMesh::GatewayRoute", + "AWS::AppMesh::Mesh", + "AWS::AppMesh::Route", + "AWS::AppMesh::VirtualGateway", + "AWS::AppMesh::VirtualNode", + "AWS::AppMesh::VirtualRouter", + "AWS::AppMesh::VirtualService", "AWS::AppSync::ApiCache", "AWS::AppSync::ApiKey", "AWS::AppSync::DataSource", @@ -149,6 +156,7 @@ "AWS::Config::DeliveryChannel", "AWS::Config::OrganizationConfigRule", "AWS::Config::OrganizationConformancePack", + "AWS::Config::RemediationConfiguration", "AWS::Config::StoredQuery", "AWS::ControlTower::EnabledBaseline", "AWS::ControlTower::EnabledControl", @@ -430,6 +438,11 @@ "AWS::MSK::Configuration", "AWS::MSK::VpcConnection", "AWS::MWAA::Environment", + "AWS::Neptune::DBCluster", + "AWS::Neptune::DBClusterParameterGroup", + "AWS::Neptune::DBParameterGroup", + "AWS::Neptune::DBSubnetGroup", + "AWS::Neptune::EventSubscription", "AWS::NetworkFirewall::Firewall", "AWS::NetworkFirewall::FirewallPolicy", "AWS::NetworkFirewall::LoggingConfiguration", @@ -648,7 +661,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -666,6 +678,13 @@ "aws-applicationautoscaling-scalingpolicy.json", "aws-applicationinsights-application.json", "aws-applicationsignals-servicelevelobjective.json", + "aws-appmesh-gatewayroute.json", + "aws-appmesh-mesh.json", + "aws-appmesh-route.json", + "aws-appmesh-virtualgateway.json", + "aws-appmesh-virtualnode.json", + "aws-appmesh-virtualrouter.json", + "aws-appmesh-virtualservice.json", "aws-appsync-apicache.json", "aws-appsync-apikey.json", "aws-appsync-datasource.json", @@ -760,6 +779,7 @@ "aws-config-deliverychannel.json", "aws-config-organizationconfigrule.json", "aws-config-organizationconformancepack.json", + "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", "aws-controltower-enabledcontrol.json", @@ -799,6 +819,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -809,6 +830,7 @@ "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-networkperformancemetricsubscription.json", @@ -821,7 +843,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -850,14 +871,12 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -888,7 +907,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -927,6 +945,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -973,6 +992,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1008,6 +1028,9 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", + "aws-neptune-dbcluster.json", + "aws-neptune-dbsubnetgroup.json", + "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", "aws-networkfirewall-firewallpolicy.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1094,7 +1117,6 @@ "aws-s3objectlambda-accesspointpolicy.json", "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", - "aws-sagemaker-domain.json", "aws-sagemaker-featuregroup.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", @@ -1106,14 +1128,12 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", "aws-sdb-domain.json", "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbclusterparametergroup.json new file mode 100644 index 0000000000..196677fbf0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbclusterparametergroup.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Family", + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "Parameters", + "Family" + ], + "typeName": "AWS::Neptune::DBClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbparametergroup.json new file mode 100644 index 0000000000..40b22b45e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-neptune-dbparametergroup.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Family", + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "Parameters", + "Family" + ], + "typeName": "AWS::Neptune::DBParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 b79281f618..f228dcda48 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -1051,6 +1051,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1262,7 +1263,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1351,14 +1351,10 @@ "aws-bedrock-agent.json", "aws-bedrock-agentalias.json", "aws-bedrock-datasource.json", - "aws-bedrock-flow.json", - "aws-bedrock-flowalias.json", - "aws-bedrock-flowversion.json", "aws-bedrock-guardrail.json", "aws-bedrock-guardrailversion.json", "aws-bedrock-knowledgebase.json", "aws-bedrock-prompt.json", - "aws-bedrock-promptversion.json", "aws-budgets-budget.json", "aws-budgets-budgetsaction.json", "aws-cassandra-keyspace.json", @@ -1423,6 +1419,7 @@ "aws-codeartifact-domain.json", "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", + "aws-codebuild-fleet.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", "aws-codebuild-sourcecredential.json", @@ -1560,6 +1557,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1634,7 +1632,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1670,7 +1667,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1742,6 +1738,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1914,6 +1911,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -2022,6 +2020,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -2258,7 +2257,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2343,6 +2341,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flow.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flow.json new file mode 100644 index 0000000000..f4f72cb39c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flow.json @@ -0,0 +1,1022 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "DefinitionSubstitutions": { + "additionalProperties": false, + "maxProperties": 500, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Storage", + "Retrieval", + "Iterator", + "Collector" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "FlowValidation": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + } + }, + "required": [ + "Message" + ], + "type": "object" + }, + "FlowValidations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FlowValidation" + }, + "type": "array" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionString": { + "maxLength": 512000, + "type": "string" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Validations": { + "$ref": "#/definitions/FlowValidations" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Validations" + ], + "required": [ + "ExecutionRoleArn", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Flow", + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowalias.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowalias.json new file mode 100644 index 0000000000..e439cc9349 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowalias.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "additionalProperties": false, + "properties": { + "FlowVersion": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowAliases" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "FlowArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Id": { + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "RoutingConfiguration": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::FlowAlias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowversion.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowversion.json new file mode 100644 index 0000000000..7f2a3fcdc1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-flowversion.json @@ -0,0 +1,896 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Iterator", + "Collector", + "Storage", + "Retrieval" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowVersions" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "FlowArn": { + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "pattern": "^[0-9]{1,5}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "FlowArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::FlowVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-promptversion.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-promptversion.json new file mode 100644 index 0000000000..7460656b1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-promptversion.json @@ -0,0 +1,296 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + }, + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "PromptArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "PromptId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "PromptArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Bedrock::PromptVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-codebuild-fleet.json deleted file mode 100644 index 4c870f71c0..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-codebuild-fleet.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[a-zA-Z+-=._:/]+$", - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:CreateFleet", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:DeleteFleet" - ] - }, - "list": { - "permissions": [ - "codebuild:ListFleets" - ] - }, - "read": { - "permissions": [ - "codebuild:BatchGetFleets" - ] - }, - "update": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:UpdateFleet", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "minLength": 1, - "type": "string" - }, - "BaseCapacity": { - "minimum": 1, - "type": "integer" - }, - "ComputeType": { - "enum": [ - "BUILD_GENERAL1_SMALL", - "BUILD_GENERAL1_MEDIUM", - "BUILD_GENERAL1_LARGE", - "BUILD_GENERAL1_2XLARGE" - ], - "type": "string" - }, - "EnvironmentType": { - "enum": [ - "WINDOWS_SERVER_2019_CONTAINER", - "WINDOWS_SERVER_2022_CONTAINER", - "LINUX_CONTAINER", - "LINUX_GPU_CONTAINER", - "ARM_CONTAINER", - "MAC_ARM" - ], - "type": "string" - }, - "FleetServiceRole": { - "pattern": "^(?:arn:)[a-zA-Z+-=,._:/@]+$", - "type": "string" - }, - "FleetVpcConfig": { - "$ref": "#/definitions/VpcConfig" - }, - "ImageId": { - "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 2, - "type": "string" - }, - "OverflowBehavior": { - "enum": [ - "QUEUE", - "ON_DEMAND" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CodeBuild::Fleet" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-msk-replicator.json deleted file mode 100644 index 19aeafdd58..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-msk-replicator.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "ReplicationTopicNameConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationTopicNameConfigurationType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationTopicNameConfigurationType": { - "enum": [ - "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS", - "IDENTICAL" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicNameConfiguration": { - "$ref": "#/definitions/ReplicationTopicNameConfiguration" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "permissions": [ - "kafka:UntagResource", - "kafka:ListTagsForResource", - "kafka:TagResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 284c2336ad..2074657327 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py @@ -971,6 +971,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1178,7 +1179,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1484,6 +1484,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1558,7 +1559,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1594,7 +1594,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1649,6 +1648,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1778,6 +1778,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1812,6 +1813,7 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", + "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1873,6 +1875,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1910,7 +1913,9 @@ "aws-oam-link.json", "aws-oam-sink.json", "aws-omics-annotationstore.json", + "aws-omics-referencestore.json", "aws-omics-rungroup.json", + "aws-omics-sequencestore.json", "aws-omics-variantstore.json", "aws-omics-workflow.json", "aws-opensearchserverless-accesspolicy.json", @@ -2052,7 +2057,6 @@ "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-dataqualityjobdefinition.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -2075,7 +2079,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2084,7 +2087,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2129,6 +2131,7 @@ "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2159,6 +2162,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json deleted file mode 100644 index b41c88be08..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KeyName" - ], - "definitions": { - "ApiKeyRestrictions": { - "additionalProperties": false, - "properties": { - "AllowActions": { - "insertionOrder": false, - "items": { - "maxLength": 200, - "minLength": 5, - "pattern": "^geo:\\w*\\*?$", - "type": "string" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - }, - "AllowReferers": { - "insertionOrder": false, - "items": { - "maxLength": 253, - "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "AllowResources": { - "insertionOrder": false, - "items": { - "maxLength": 1600, - "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "AllowActions", - "AllowResources" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteKey", - "geo:DescribeKey" - ] - }, - "list": { - "permissions": [ - "geo:ListKeys" - ] - }, - "read": { - "permissions": [ - "geo:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix", - "geo:UpdateKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "ExpireTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "ForceDelete": { - "type": "boolean" - }, - "ForceUpdate": { - "type": "boolean" - }, - "KeyArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "KeyName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "NoExpiry": { - "type": "boolean" - }, - "Restrictions": { - "$ref": "#/definitions/ApiKeyRestrictions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CreateTime", - "/properties/Arn", - "/properties/KeyArn", - "/properties/UpdateTime" - ], - "required": [ - "KeyName", - "Restrictions" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::APIKey", - "writeOnlyProperties": [ - "/properties/ForceUpdate", - "/properties/ForceDelete", - "/properties/NoExpiry" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-referencestore.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-referencestore.json deleted file mode 100644 index 927b6a1928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-referencestore.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Description", - "/properties/Name", - "/properties/SseConfig", - "/properties/Tags" - ], - "definitions": { - "EncryptionType": { - "enum": [ - "KMS" - ], - "type": "string" - }, - "SseConfig": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:([^:\n]*):([^:\n]*):([^:\n]*):([0-9]{12}):([^:\n]*)", - "type": "string" - }, - "Type": { - "$ref": "#/definitions/EncryptionType" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "patternProperties": { - ".+": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "omics:CreateReferenceStore", - "omics:TagResource", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "omics:DeleteReferenceStore" - ] - }, - "list": { - "permissions": [ - "omics:ListReferenceStores" - ] - }, - "read": { - "permissions": [ - "omics:GetReferenceStore", - "omics:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReferenceStoreId" - ], - "properties": { - "Arn": { - "maxLength": 127, - "minLength": 1, - "pattern": "^arn:.+$", - "type": "string" - }, - "CreationTime": { - "format": "date-time", - "type": "string" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "Name": { - "maxLength": 127, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "ReferenceStoreId": { - "maxLength": 36, - "minLength": 10, - "pattern": "^[0-9]+$", - "type": "string" - }, - "SseConfig": { - "$ref": "#/definitions/SseConfig" - }, - "Tags": { - "$ref": "#/definitions/TagMap" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CreationTime", - "/properties/ReferenceStoreId" - ], - "required": [ - "Name" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagUpdatable": false, - "taggable": true - }, - "typeName": "AWS::Omics::ReferenceStore", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-sequencestore.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-sequencestore.json deleted file mode 100644 index bff8d1664a..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-omics-sequencestore.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Description", - "/properties/Name", - "/properties/FallbackLocation", - "/properties/SseConfig", - "/properties/Tags" - ], - "definitions": { - "EncryptionType": { - "enum": [ - "KMS" - ], - "type": "string" - }, - "SseConfig": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:([^:\n]*):([^:\n]*):([^:\n]*):([0-9]{12}):([^:\n]*)", - "type": "string" - }, - "Type": { - "$ref": "#/definitions/EncryptionType" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "patternProperties": { - ".+": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "omics:CreateSequenceStore", - "omics:TagResource", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "omics:DeleteSequenceStore" - ] - }, - "list": { - "permissions": [ - "omics:ListSequenceStores" - ] - }, - "read": { - "permissions": [ - "omics:GetSequenceStore", - "omics:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SequenceStoreId" - ], - "properties": { - "Arn": { - "maxLength": 127, - "minLength": 1, - "pattern": "^arn:.+$", - "type": "string" - }, - "CreationTime": { - "format": "date-time", - "type": "string" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "FallbackLocation": { - "minLength": 1, - "pattern": "^s3:\\/\\/([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])\\/?((.{1,1024})\\/)?$", - "type": "string" - }, - "Name": { - "maxLength": 127, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "SequenceStoreId": { - "maxLength": 36, - "minLength": 10, - "pattern": "^[0-9]+$", - "type": "string" - }, - "SseConfig": { - "$ref": "#/definitions/SseConfig" - }, - "Tags": { - "$ref": "#/definitions/TagMap" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CreationTime", - "/properties/SequenceStoreId" - ], - "required": [ - "Name" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagUpdatable": false, - "taggable": true - }, - "typeName": "AWS::Omics::SequenceStore", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} 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 5603ad557b..38c7cad24c 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -777,6 +777,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -801,6 +804,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -990,7 +994,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1232,7 +1235,7 @@ "aws-ec2-host.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1303,7 +1306,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1339,7 +1341,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1379,6 +1380,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1470,6 +1472,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1553,6 +1556,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1586,7 +1590,6 @@ "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", "aws-opensearchserverless-vpcendpoint.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -1607,8 +1610,6 @@ "aws-pipes-pipe.json", "aws-quicksight-analysis.json", "aws-quicksight-dashboard.json", - "aws-quicksight-dataset.json", - "aws-quicksight-datasource.json", "aws-quicksight-refreshschedule.json", "aws-quicksight-template.json", "aws-quicksight-theme.json", @@ -1626,6 +1627,7 @@ "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", @@ -1693,7 +1695,6 @@ "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-dataqualityjobdefinition.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -1715,7 +1716,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -1724,7 +1724,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1769,6 +1768,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", @@ -1799,6 +1801,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-database.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-dataset.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-quicksight-dataset.json similarity index 99% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-dataset.json rename to src/cfnlint/data/schemas/providers/eu_west_3/aws-quicksight-dataset.json index ff03632b87..08d74fbc57 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-dataset.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-quicksight-dataset.json @@ -19,7 +19,7 @@ "type": "string" }, "Expression": { - "maxLength": 250000, + "maxLength": 4096, "minLength": 1, "type": "string" } @@ -197,6 +197,9 @@ "$ref": "#/definitions/RefreshConfiguration" } }, + "required": [ + "RefreshConfiguration" + ], "type": "object" }, "DataSetUsageConfiguration": { diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-datasource.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-quicksight-datasource.json similarity index 99% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-datasource.json rename to src/cfnlint/data/schemas/providers/eu_west_3/aws-quicksight-datasource.json index 3274ce6f43..e7c03f2ae2 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-datasource.json +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-quicksight-datasource.json @@ -297,9 +297,7 @@ "MONGO", "MONGO_ATLAS", "DOCUMENTDB", - "APPFLOW", - "IMPALA", - "GLUE" + "APPFLOW" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 8c70e0f505..1f071aa669 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py @@ -547,6 +547,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -675,7 +678,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -822,7 +824,6 @@ "aws-ec2-clientvpnendpoint.json", "aws-ec2-clientvpnroute.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-ec2-customergateway.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ec2fleet.json", "aws-ec2-egressonlyinternetgateway.json", @@ -832,7 +833,7 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -847,16 +848,17 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-placementgroup.json", "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", - "aws-ec2-subnet.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -887,14 +889,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -925,7 +924,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", "aws-elasticsearch-domain.json", @@ -952,6 +950,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -993,6 +992,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1052,7 +1052,6 @@ "aws-omics-sequencestore.json", "aws-omics-variantstore.json", "aws-omics-workflow.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-userprofile.json", @@ -1075,6 +1074,7 @@ "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", @@ -1126,7 +1126,6 @@ "aws-s3outposts-endpoint.json", "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", - "aws-sagemaker-domain.json", "aws-sagemaker-featuregroup.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", @@ -1138,12 +1137,10 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sdb-domain.json", "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", @@ -1175,6 +1172,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-customergateway.json new file mode 100644 index 0000000000..522f3d2997 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-customergateway.json @@ -0,0 +1,119 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateArn", + "/properties/BgpAsn", + "/properties/BgpAsnExtended", + "/properties/Type", + "/properties/IpAddress", + "/properties/DeviceName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteCustomerGateway", + "ec2:DescribeCustomerGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCustomerGateways" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeCustomerGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/CustomerGatewayId" + ], + "properties": { + "BgpAsn": { + "default": 65000, + "type": "integer" + }, + "BgpAsnExtended": { + "maximum": 4294967294, + "minimum": 2147483648, + "multipleOf": 1, + "type": "number" + }, + "CertificateArn": { + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "type": "string" + }, + "CustomerGatewayId": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CustomerGatewayId" + ], + "required": [ + "IpAddress", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 1083ef190f..f2cc782f5c 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py @@ -140,6 +140,7 @@ "AWS::Config::DeliveryChannel", "AWS::Config::OrganizationConfigRule", "AWS::Config::OrganizationConformancePack", + "AWS::Config::RemediationConfiguration", "AWS::Config::StoredQuery", "AWS::ControlTower::EnabledBaseline", "AWS::ControlTower::EnabledControl", @@ -640,7 +641,6 @@ "AWS::StepFunctions::StateMachineAlias", "AWS::StepFunctions::StateMachineVersion", "AWS::Synthetics::Canary", - "AWS::Synthetics::Group", "AWS::Transfer::Agreement", "AWS::Transfer::Certificate", "AWS::Transfer::Connector", @@ -683,7 +683,6 @@ "aws-amazonmq-broker.json", "aws-amazonmq-configuration.json", "aws-apigateway-vpclink.json", - "aws-apigatewayv2-integration.json", "aws-appconfig-application.json", "aws-appconfig-configurationprofile.json", "aws-appconfig-deployment.json", @@ -790,6 +789,7 @@ "aws-config-deliverychannel.json", "aws-config-organizationconfigrule.json", "aws-config-organizationconformancepack.json", + "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", "aws-controltower-enabledcontrol.json", @@ -834,6 +834,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -848,6 +849,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfaceattachment.json", "aws-ec2-networkperformancemetricsubscription.json", @@ -890,14 +892,12 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -929,7 +929,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1039,7 +1038,9 @@ "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisfirehose-deliverystream.json", + "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1126,6 +1127,7 @@ "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", @@ -1176,7 +1178,6 @@ "aws-s3objectlambda-accesspointpolicy.json", "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", - "aws-sagemaker-domain.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", "aws-sagemaker-inferencecomponent.json", @@ -1187,14 +1188,12 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", "aws-sdb-domain.json", "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json deleted file mode 100644 index c42acee4f5..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AliasName" - ], - "handlers": { - "create": { - "permissions": [ - "kms:CreateAlias" - ] - }, - "delete": { - "permissions": [ - "kms:DeleteAlias" - ] - }, - "list": { - "permissions": [ - "kms:ListAliases" - ] - }, - "read": { - "permissions": [ - "kms:ListAliases" - ] - }, - "update": { - "permissions": [ - "kms:UpdateAlias" - ] - } - }, - "primaryIdentifier": [ - "/properties/AliasName" - ], - "properties": { - "AliasName": { - "maxLength": 256, - "minLength": 1, - "pattern": "^(alias/)[a-zA-Z0-9:/_-]+$", - "type": "string" - }, - "TargetKeyId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "taggable": false, - "typeName": "AWS::KMS::Alias" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 97e6476a91..57b22edb37 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -647,6 +647,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -831,7 +834,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1021,7 +1023,7 @@ "aws-ec2-host.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", - "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1036,6 +1038,7 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscope.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-ec2-networkinsightsanalysis.json", @@ -1053,7 +1056,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -1083,14 +1085,11 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcgatewayattachment.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1126,7 +1125,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1167,6 +1165,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1255,6 +1254,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1320,7 +1320,6 @@ "aws-networkmanager-vpcattachment.json", "aws-oam-link.json", "aws-oam-sink.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -1352,6 +1351,7 @@ "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", @@ -1440,7 +1440,6 @@ "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-hub.json", "aws-securityhub-insight.json", @@ -1473,6 +1472,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..f4b93a4397 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-internetgateway.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-networkaclentry.json deleted file mode 100644 index 593534ccbd..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceNetworkAclEntry", - "ec2:DescribeNetworkAcls" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-globalcluster.json deleted file mode 100644 index 9cf0aaadab..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 33218f8ef5..d3d53ebbed 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -803,6 +803,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -827,6 +830,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1018,7 +1022,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1345,7 +1348,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1381,7 +1383,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1530,6 +1531,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1550,6 +1552,7 @@ "aws-launchwizard-deployment.json", "aws-licensemanager-grant.json", "aws-licensemanager-license.json", + "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1616,6 +1619,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-neptune-dbcluster.json", @@ -1752,7 +1756,6 @@ "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-dataqualityjobdefinition.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -1775,7 +1778,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -1784,7 +1786,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1829,6 +1830,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", @@ -1859,6 +1863,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json deleted file mode 100644 index b41c88be08..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KeyName" - ], - "definitions": { - "ApiKeyRestrictions": { - "additionalProperties": false, - "properties": { - "AllowActions": { - "insertionOrder": false, - "items": { - "maxLength": 200, - "minLength": 5, - "pattern": "^geo:\\w*\\*?$", - "type": "string" - }, - "maxItems": 7, - "minItems": 1, - "type": "array" - }, - "AllowReferers": { - "insertionOrder": false, - "items": { - "maxLength": 253, - "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "AllowResources": { - "insertionOrder": false, - "items": { - "maxLength": 1600, - "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", - "type": "string" - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "AllowActions", - "AllowResources" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteKey", - "geo:DescribeKey" - ] - }, - "list": { - "permissions": [ - "geo:ListKeys" - ] - }, - "read": { - "permissions": [ - "geo:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateKey", - "geo:DescribeKey", - "geo:TagResource", - "geo:UntagResource", - "geo:GetMapTile", - "geo:GetMapStyleDescriptor", - "geo:GetMapSprites", - "geo:GetMapGlyphs", - "geo:SearchPlaceIndexForText", - "geo:SearchPlaceIndexForPosition", - "geo:SearchPlaceIndexForSuggestions", - "geo:GetPlace", - "geo:CalculateRoute", - "geo:CalculateRouteMatrix", - "geo:UpdateKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "ExpireTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "ForceDelete": { - "type": "boolean" - }, - "ForceUpdate": { - "type": "boolean" - }, - "KeyArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "KeyName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "NoExpiry": { - "type": "boolean" - }, - "Restrictions": { - "$ref": "#/definitions/ApiKeyRestrictions" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CreateTime", - "/properties/Arn", - "/properties/KeyArn", - "/properties/UpdateTime" - ], - "required": [ - "KeyName", - "Restrictions" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::APIKey", - "writeOnlyProperties": [ - "/properties/ForceUpdate", - "/properties/ForceDelete", - "/properties/NoExpiry" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} 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 ea754e4b3e..5e3fe7dfd9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py @@ -1126,6 +1126,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-apigatewayv2-integration.json index 99fa47be40..e7b7290e95 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-apigatewayv2-integration.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-apigatewayv2-integration.json @@ -4,44 +4,6 @@ "/properties/ApiId" ], "definitions": { - "ResponseParameter": { - "additionalProperties": false, - "properties": { - "Destination": { - "type": "string" - }, - "Source": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameterList": { - "items": { - "$ref": "#/definitions/ResponseParameter" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, "TlsConfig": { "additionalProperties": false, "properties": { @@ -52,39 +14,8 @@ "type": "object" } }, - "handlers": { - "create": { - "permissions": [ - "apigateway:POST" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE" - ] - }, - "list": { - "permissions": [ - "apigateway:GET" - ] - }, - "read": { - "permissions": [ - "apigateway:GET" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "apigateway:PUT" - ] - } - }, "primaryIdentifier": [ - "/properties/ApiId", - "/properties/IntegrationId" + "/properties/Id" ], "properties": { "ApiId": { @@ -105,7 +36,7 @@ "Description": { "type": "string" }, - "IntegrationId": { + "Id": { "type": "string" }, "IntegrationMethod": { @@ -127,31 +58,25 @@ "type": "string" }, "RequestParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "RequestTemplates": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "ResponseParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "$ref": "#/definitions/ResponseParameterList" - } - }, - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "TemplateSelectionExpression": { "type": "string" @@ -164,15 +89,11 @@ } }, "readOnlyProperties": [ - "/properties/IntegrationId" + "/properties/Id" ], "required": [ "ApiId", "IntegrationType" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "taggable": false - }, "typeName": "AWS::ApiGatewayV2::Integration" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appintegrations-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appintegrations-application.json index 534c19807e..0e815ba83f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appintegrations-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appintegrations-application.json @@ -160,6 +160,7 @@ ], "required": [ "Name", + "Namespace", "Description", "ApplicationSourceConfig" ], diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtableassociation.json index 7cfa1afd85..5f271f5d77 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtableassociation.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cleanrooms-configuredtableassociation.json @@ -296,6 +296,7 @@ "/properties/ConfiguredTableAssociationIdentifier", "/properties/Arn" ], + "replacementStrategy": "delete_then_create", "required": [ "ConfiguredTableIdentifier", "Name", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-codebuild-fleet.json index 99489ee880..cc41baae23 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-codebuild-fleet.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-codebuild-fleet.json @@ -99,6 +99,7 @@ "BUILD_GENERAL1_SMALL", "BUILD_GENERAL1_MEDIUM", "BUILD_GENERAL1_LARGE", + "BUILD_GENERAL1_XLARGE", "BUILD_GENERAL1_2XLARGE" ], "type": "string" @@ -109,7 +110,8 @@ "WINDOWS_SERVER_2022_CONTAINER", "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", - "ARM_CONTAINER" + "ARM_CONTAINER", + "MAC_ARM" ], "type": "string" }, @@ -120,6 +122,10 @@ "FleetVpcConfig": { "$ref": "#/definitions/VpcConfig" }, + "ImageId": { + "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", + "type": "string" + }, "Name": { "maxLength": 128, "minLength": 2, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-customergateway.json index 522f3d2997..741e4005ed 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-customergateway.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-customergateway.json @@ -37,8 +37,7 @@ "delete": { "permissions": [ "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" + "ec2:DescribeCustomerGateways" ] }, "list": { @@ -110,6 +109,10 @@ ], "tagging": { "cloudFormationSystemTags": true, + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-internetgateway.json index f4b93a4397..2af9455d59 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-internetgateway.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-internetgateway.json @@ -75,6 +75,10 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": true, + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkaclentry.json index e2b6e33e8c..593534ccbd 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkaclentry.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-networkaclentry.json @@ -104,6 +104,11 @@ "CidrBlock" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "taggable": false, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, "typeName": "AWS::EC2::NetworkAclEntry" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-prefixlist.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-prefixlist.json index 6f59776eac..c4141d11b0 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-prefixlist.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-prefixlist.json @@ -133,7 +133,12 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": true, + "permissions": [ + "EC2:DeleteTags", + "EC2:CreateTags" + ], "tagOnCreate": true, + "tagProperty": "/properties/Tags", "tagUpdatable": true, "taggable": true }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json index ab454061a3..7b7398ef96 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json @@ -159,7 +159,8 @@ }, "readOnlyProperties": [ "/properties/NetworkAclAssociationId", - "/properties/SubnetId" + "/properties/SubnetId", + "/properties/Ipv6CidrBlocks" ], "required": [ "VpcId" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpnconnection.json index 0e94eb57e5..078cd23161 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpnconnection.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpnconnection.json @@ -7,8 +7,15 @@ "/properties/VpnGatewayId", "/properties/TransitGatewayId", "/properties/EnableAcceleration", - "/properties/VpnTunnelOptionsSpecifications", - "/properties/StaticRoutesOnly" + "/properties/LocalIpv4NetworkCidr", + "/properties/LocalIpv6NetworkCidr", + "/properties/OutsideIpAddressType", + "/properties/RemoteIpv4NetworkCidr", + "/properties/RemoteIpv6NetworkCidr", + "/properties/StaticRoutesOnly", + "/properties/TransportTransitGatewayAttachmentId", + "/properties/TunnelInsideIpVersion", + "/properties/VpnTunnelOptionsSpecifications" ], "definitions": { "Tag": { @@ -82,6 +89,21 @@ "EnableAcceleration": { "type": "boolean" }, + "LocalIpv4NetworkCidr": { + "type": "string" + }, + "LocalIpv6NetworkCidr": { + "type": "string" + }, + "OutsideIpAddressType": { + "type": "string" + }, + "RemoteIpv4NetworkCidr": { + "type": "string" + }, + "RemoteIpv6NetworkCidr": { + "type": "string" + }, "StaticRoutesOnly": { "type": "boolean" }, @@ -96,6 +118,12 @@ "TransitGatewayId": { "type": "string" }, + "TransportTransitGatewayAttachmentId": { + "type": "string" + }, + "TunnelInsideIpVersion": { + "type": "string" + }, "Type": { "type": "string" }, @@ -123,6 +151,10 @@ ], "tagging": { "cloudFormationSystemTags": false, + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpngateway.json index 0617d2c917..908d4ea83f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpngateway.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-vpngateway.json @@ -33,8 +33,7 @@ "delete": { "permissions": [ "ec2:DeleteVpnGateway", - "ec2:DescribeVpnGateways", - "ec2:DeleteTags" + "ec2:DescribeVpnGateways" ] }, "list": { @@ -87,6 +86,10 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": true, + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecr-repository.json index 062afcc632..7b21cce0d9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecr-repository.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecr-repository.json @@ -28,7 +28,8 @@ "EncryptionType": { "enum": [ "AES256", - "KMS" + "KMS", + "KMS_DSSE" ], "type": "string" }, @@ -200,6 +201,10 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", "tagging": { "cloudFormationSystemTags": true, + "permissions": [ + "ecr:TagResource", + "ecr:UntagResource" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskdefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskdefinition.json index 5a3f95b9e9..6643ee0e99 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-taskdefinition.json @@ -203,6 +203,9 @@ }, "type": "array" }, + "RestartPolicy": { + "$ref": "#/definitions/RestartPolicy" + }, "Secrets": { "insertionOrder": false, "items": { @@ -666,6 +669,25 @@ ], "type": "object" }, + "RestartPolicy": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IgnoredExitCodes": { + "insertionOrder": false, + "items": { + "type": "integer" + }, + "type": "array" + }, + "RestartAttemptPeriod": { + "type": "integer" + } + }, + "type": "object" + }, "RuntimePlatform": { "additionalProperties": false, "properties": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-loadbalancer.json index b91b5af9ff..f9572db062 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-loadbalancer.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -192,6 +192,11 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", "tagging": { "cloudFormationSystemTags": false, + "permissions": [ + "elasticloadbalancing:AddTags", + "elasticloadbalancing:DescribeTags", + "elasticloadbalancing:RemoveTags" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, 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 44e3a080c2..65a46e40c0 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 @@ -24,6 +24,21 @@ "pattern": "^[a-zA-Z_0-9-]*$", "type": "string" }, + "IncrementalRunConfig": { + "additionalProperties": false, + "properties": { + "IncrementalRunType": { + "enum": [ + "IMMEDIATE" + ], + "type": "string" + } + }, + "required": [ + "IncrementalRunType" + ], + "type": "object" + }, "InputSource": { "additionalProperties": false, "properties": { @@ -250,14 +265,23 @@ "entityresolution:TagResource", "kms:CreateGrant", "kms:DescribeKey", - "iam:PassRole" + "iam:PassRole", + "events:PutRule", + "events:DeleteRule", + "events:PutTargets", + "events:ListTargetsByRule" ] }, "delete": { "permissions": [ "entityresolution:DeleteMatchingWorkflow", "entityresolution:GetMatchingWorkflow", - "entityresolution:UntagResource" + "entityresolution:UntagResource", + "events:PutRule", + "events:DeleteRule", + "events:PutTargets", + "events:RemoveTargets", + "events:ListTargetsByRule" ] }, "list": { @@ -280,7 +304,12 @@ "entityresolution:UntagResource", "iam:PassRole", "kms:CreateGrant", - "kms:DescribeKey" + "kms:DescribeKey", + "events:PutRule", + "events:DeleteRule", + "events:PutTargets", + "events:RemoveTargets", + "events:ListTargetsByRule" ] } }, @@ -294,6 +323,9 @@ "Description": { "$ref": "#/definitions/Description" }, + "IncrementalRunConfig": { + "$ref": "#/definitions/IncrementalRunConfig" + }, "InputSourceConfig": { "insertionOrder": false, "items": { 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 98d3a7dc74..ff9ef83e03 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 @@ -35,7 +35,7 @@ "items": { "$ref": "#/definitions/SchemaInputAttribute" }, - "maxItems": 25, + "maxItems": 35, "minItems": 2, "type": "array" }, 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 2c4244605e..228bb9d5e2 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 @@ -114,6 +114,19 @@ ], "title": "TimestreamConfig", "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "MqttTopicConfig": { + "$ref": "#/definitions/MqttTopicConfig" + } + }, + "required": [ + "MqttTopicConfig" + ], + "title": "MqttTopicConfig", + "type": "object" } ] }, @@ -132,6 +145,28 @@ ], "type": "string" }, + "MqttTopicConfig": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)$", + "type": "string" + }, + "MqttTopicArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:.*", + "type": "string" + } + }, + "required": [ + "ExecutionRoleArn", + "MqttTopicArn" + ], + "type": "object" + }, "S3Config": { "additionalProperties": false, "properties": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-decodermanifest.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-decodermanifest.json index 3228c41907..14372839be 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-decodermanifest.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotfleetwise-decodermanifest.json @@ -433,6 +433,9 @@ }, { "$ref": "#/definitions/ObdNetworkInterface" + }, + { + "$ref": "#/definitions/CustomDecodingNetworkInterface" } ] }, @@ -449,6 +452,9 @@ }, { "$ref": "#/definitions/ObdSignalDecoder" + }, + { + "$ref": "#/definitions/CustomDecodingSignalDecoder" } ] }, 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 9c22d60046..98904d38a1 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 @@ -37,10 +37,10 @@ "additionalProperties": false, "maxProperties": 50, "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { + "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { "maxLength": 256, "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-input.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-input.json index b0127f81a6..546c099534 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-input.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-input.json @@ -68,6 +68,52 @@ } }, "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": [ @@ -121,6 +167,9 @@ "type": "array", "uniqueItems": false }, + "SrtSettings": { + "$ref": "#/definitions/SrtSettingsRequest" + }, "Tags": { "format": "json", "type": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-msk-replicator.json index 2afe4070d8..19aeafdd58 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-msk-replicator.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-msk-replicator.json @@ -163,6 +163,23 @@ ], "type": "string" }, + "ReplicationTopicNameConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/ReplicationTopicNameConfigurationType" + } + }, + "required": [], + "type": "object" + }, + "ReplicationTopicNameConfigurationType": { + "enum": [ + "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS", + "IDENTICAL" + ], + "type": "string" + }, "Tag": { "additionalProperties": false, "properties": { @@ -197,6 +214,9 @@ "StartingPosition": { "$ref": "#/definitions/ReplicationStartingPosition" }, + "TopicNameConfiguration": { + "$ref": "#/definitions/ReplicationTopicNameConfiguration" + }, "TopicsToExclude": { "insertionOrder": false, "items": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-referencestore.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-referencestore.json index e04b7533c8..927b6a1928 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-referencestore.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-referencestore.json @@ -47,7 +47,8 @@ "create": { "permissions": [ "omics:CreateReferenceStore", - "omics:TagResource" + "omics:TagResource", + "kms:DescribeKey" ] }, "delete": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-sequencestore.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-sequencestore.json index dd563181c0..bff8d1664a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-sequencestore.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-omics-sequencestore.json @@ -48,7 +48,8 @@ "create": { "permissions": [ "omics:CreateSequenceStore", - "omics:TagResource" + "omics:TagResource", + "kms:DescribeKey" ] }, "delete": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json index c8aa358cc0..bedb79b6f2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json @@ -24,6 +24,9 @@ "InternalUserDatabaseEnabled": { "type": "boolean" }, + "JWTOptions": { + "$ref": "#/definitions/JWTOptions" + }, "MasterUserOptions": { "$ref": "#/definitions/MasterUserOptions" }, @@ -174,6 +177,24 @@ ], "type": "object" }, + "JWTOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "PublicKey": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, "LogPublishingOption": { "additionalProperties": false, "properties": { @@ -501,6 +522,9 @@ "ServiceSoftwareOptions": { "$ref": "#/definitions/ServiceSoftwareOptions" }, + "SkipShardMigrationWait": { + "type": "boolean" + }, "SnapshotOptions": { "$ref": "#/definitions/SnapshotOptions" }, @@ -533,6 +557,7 @@ "writeOnlyProperties": [ "/properties/AdvancedSecurityOptions/MasterUserOptions", "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", - "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole", + "/properties/AdvancedSecurityOptions/JWTOptions/PublicKey" ] } 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 268a9c2613..a383d6ca28 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 @@ -1735,7 +1735,10 @@ "logs:ListLogDeliveries", "s3:PutBucketPolicy", "s3:GetBucketPolicy", - "firehose:TagDeliveryStream" + "firehose:TagDeliveryStream", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "delete": { @@ -1756,7 +1759,8 @@ }, "read": { "permissions": [ - "pipes:DescribePipe" + "pipes:DescribePipe", + "kms:Decrypt" ] }, "update": { @@ -1777,7 +1781,10 @@ "logs:ListLogDeliveries", "s3:PutBucketPolicy", "s3:GetBucketPolicy", - "firehose:TagDeliveryStream" + "firehose:TagDeliveryStream", + "kms:DescribeKey", + "kms:Decrypt", + "kms:GenerateDataKey" ] } }, @@ -1877,6 +1884,11 @@ ], "tagging": { "cloudFormationSystemTags": false, + "permissions": [ + "pipes:TagResource", + "pipes:UntagResource", + "pipes:ListTagsForResource" + ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, 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 046c7115a1..f20250986d 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 @@ -1,7 +1,10 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/EncryptionConfiguration" + "/properties/ClientIdsForOIDC", + "/properties/EncryptionConfiguration", + "/properties/IamIdentityProviderArn", + "/properties/IdentityType" ], "definitions": { "ApplicationStatus": { @@ -33,6 +36,28 @@ ], "type": "string" }, + "AutoSubscriptionConfiguration": { + "additionalProperties": false, + "properties": { + "AutoSubscribe": { + "$ref": "#/definitions/AutoSubscriptionStatus" + }, + "DefaultSubscriptionType": { + "$ref": "#/definitions/SubscriptionType" + } + }, + "required": [ + "AutoSubscribe" + ], + "type": "object" + }, + "AutoSubscriptionStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, "EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -44,6 +69,33 @@ }, "type": "object" }, + "IdentityType": { + "enum": [ + "AWS_IAM_IDP_SAML", + "AWS_IAM_IDP_OIDC", + "AWS_IAM_IDC" + ], + "type": "string" + }, + "PersonalizationConfiguration": { + "additionalProperties": false, + "properties": { + "PersonalizationControlMode": { + "$ref": "#/definitions/PersonalizationControlMode" + } + }, + "required": [ + "PersonalizationControlMode" + ], + "type": "object" + }, + "PersonalizationControlMode": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, "QAppsConfiguration": { "additionalProperties": false, "properties": { @@ -63,6 +115,13 @@ ], "type": "string" }, + "SubscriptionType": { + "enum": [ + "Q_LITE", + "Q_BUSINESS" + ], + "type": "string" + }, "Tag": { "additionalProperties": false, "properties": { @@ -87,19 +146,21 @@ "handlers": { "create": { "permissions": [ + "iam:GetSAMLProvider", "iam:PassRole", "kms:CreateGrant", "kms:DescribeKey", "qbusiness:CreateApplication", "qbusiness:GetApplication", + "qbusiness:UpdateApplication", "qbusiness:ListTagsForResource", "qbusiness:TagResource", "sso:CreateApplication", "sso:DeleteApplication", + "sso:DescribeInstance", "sso:PutApplicationAccessScope", "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant", - "sso:DescribeInstance" + "sso:PutApplicationGrant" ] }, "delete": { @@ -131,10 +192,10 @@ "qbusiness:UpdateApplication", "sso:CreateApplication", "sso:DeleteApplication", + "sso:DescribeInstance", "sso:PutApplicationAccessScope", "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant", - "sso:DescribeInstance" + "sso:PutApplicationGrant" ] } }, @@ -157,6 +218,19 @@ "AttachmentsConfiguration": { "$ref": "#/definitions/AttachmentsConfiguration" }, + "AutoSubscriptionConfiguration": { + "$ref": "#/definitions/AutoSubscriptionConfiguration" + }, + "ClientIdsForOIDC": { + "insertionOrder": false, + "items": { + "maxLength": 255, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.:/()*?=-]*$", + "type": "string" + }, + "type": "array" + }, "CreatedAt": { "format": "date-time", "type": "string" @@ -176,6 +250,12 @@ "EncryptionConfiguration": { "$ref": "#/definitions/EncryptionConfiguration" }, + "IamIdentityProviderArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws:iam::\\d{12}:(oidc-provider|saml-provider)/[a-zA-Z0-9_\\.\\/@\\-]+$", + "type": "string" + }, "IdentityCenterApplicationArn": { "maxLength": 1224, "minLength": 10, @@ -188,6 +268,12 @@ "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", "type": "string" }, + "IdentityType": { + "$ref": "#/definitions/IdentityType" + }, + "PersonalizationConfiguration": { + "$ref": "#/definitions/PersonalizationConfiguration" + }, "QAppsConfiguration": { "$ref": "#/definitions/QAppsConfiguration" }, 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 7e35d70698..b2960ad4d1 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 @@ -4,6 +4,73 @@ "/properties/ApplicationId" ], "definitions": { + "IdentityProviderConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "SamlConfiguration": { + "$ref": "#/definitions/SamlProviderConfiguration" + } + }, + "required": [ + "SamlConfiguration" + ], + "title": "SamlConfiguration", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "OpenIDConnectConfiguration": { + "$ref": "#/definitions/OpenIDConnectProviderConfiguration" + } + }, + "required": [ + "OpenIDConnectConfiguration" + ], + "title": "OpenIDConnectConfiguration", + "type": "object" + } + ] + }, + "OpenIDConnectProviderConfiguration": { + "additionalProperties": false, + "properties": { + "SecretsArn": { + "maxLength": 1284, + "minLength": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "SecretsRole": { + "maxLength": 1284, + "minLength": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + } + }, + "required": [ + "SecretsArn", + "SecretsRole" + ], + "type": "object" + }, + "SamlProviderConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationUrl": { + "maxLength": 1284, + "minLength": 1, + "pattern": "^https://.*$", + "type": "string" + } + }, + "required": [ + "AuthenticationUrl" + ], + "type": "object" + }, "Tag": { "additionalProperties": false, "properties": { @@ -115,6 +182,9 @@ "pattern": "^(https?|ftp|file)://([^\\s]*)$", "type": "string" }, + "IdentityProviderConfiguration": { + "$ref": "#/definitions/IdentityProviderConfiguration" + }, "RoleArn": { "maxLength": 1284, "minLength": 0, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-analysis.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-analysis.json index fde8d4ee63..e2fad58fba 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-analysis.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-analysis.json @@ -1104,6 +1104,25 @@ ], "type": "string" }, + "CategoryInnerFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + } + }, + "required": [ + "Column", + "Configuration" + ], + "type": "object" + }, "ChartAxisLabelOptions": { "additionalProperties": false, "properties": { @@ -3303,6 +3322,9 @@ "CategoryFilter": { "$ref": "#/definitions/CategoryFilter" }, + "NestedFilter": { + "$ref": "#/definitions/NestedFilter" + }, "NumericEqualityFilter": { "$ref": "#/definitions/NumericEqualityFilter" }, @@ -5074,6 +5096,15 @@ ], "type": "string" }, + "InnerFilter": { + "additionalProperties": false, + "properties": { + "CategoryInnerFilter": { + "$ref": "#/definitions/CategoryInnerFilter" + } + }, + "type": "object" + }, "InsightConfiguration": { "additionalProperties": false, "properties": { @@ -6130,6 +6161,34 @@ ], "type": "string" }, + "NestedFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeInnerSet": { + "default": false, + "type": "boolean" + }, + "InnerFilter": { + "$ref": "#/definitions/InnerFilter" + } + }, + "required": [ + "Column", + "FilterId", + "IncludeInnerSet", + "InnerFilter" + ], + "type": "object" + }, "NullValueFormatConfiguration": { "additionalProperties": false, "properties": { @@ -11149,6 +11208,9 @@ "quicksight:DescribeAnalysisPermissions", "quicksight:UpdateAnalysis", "quicksight:UpdateAnalysisPermissions", + "quicksight:CreateFolderMembership", + "quicksight:DeleteFolderMembership", + "quicksight:ListFoldersForResource", "quicksight:DescribeTemplate", "quicksight:DescribeTheme", "quicksight:PassDataSet", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dashboard.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dashboard.json index bf30fd8a9e..44c0c52f7b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dashboard.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-dashboard.json @@ -985,6 +985,25 @@ ], "type": "string" }, + "CategoryInnerFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + } + }, + "required": [ + "Column", + "Configuration" + ], + "type": "object" + }, "ChartAxisLabelOptions": { "additionalProperties": false, "properties": { @@ -3482,6 +3501,9 @@ "CategoryFilter": { "$ref": "#/definitions/CategoryFilter" }, + "NestedFilter": { + "$ref": "#/definitions/NestedFilter" + }, "NumericEqualityFilter": { "$ref": "#/definitions/NumericEqualityFilter" }, @@ -5253,6 +5275,15 @@ ], "type": "string" }, + "InnerFilter": { + "additionalProperties": false, + "properties": { + "CategoryInnerFilter": { + "$ref": "#/definitions/CategoryInnerFilter" + } + }, + "type": "object" + }, "InsightConfiguration": { "additionalProperties": false, "properties": { @@ -6323,6 +6354,34 @@ ], "type": "string" }, + "NestedFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeInnerSet": { + "default": false, + "type": "boolean" + }, + "InnerFilter": { + "$ref": "#/definitions/InnerFilter" + } + }, + "required": [ + "Column", + "FilterId", + "IncludeInnerSet", + "InnerFilter" + ], + "type": "object" + }, "NullValueFormatConfiguration": { "additionalProperties": false, "properties": { @@ -11383,6 +11442,9 @@ "quicksight:DescribeTemplate", "quicksight:DescribeTheme", "quicksight:PassDataSet", + "quicksight:CreateFolderMembership", + "quicksight:DeleteFolderMembership", + "quicksight:ListFoldersForResource", "quicksight:TagResource", "quicksight:UntagResource", "quicksight:ListTagsForResource" 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 08d74fbc57..ff03632b87 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 @@ -19,7 +19,7 @@ "type": "string" }, "Expression": { - "maxLength": 4096, + "maxLength": 250000, "minLength": 1, "type": "string" } @@ -197,9 +197,6 @@ "$ref": "#/definitions/RefreshConfiguration" } }, - "required": [ - "RefreshConfiguration" - ], "type": "object" }, "DataSetUsageConfiguration": { 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 e7c03f2ae2..3274ce6f43 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 @@ -297,7 +297,9 @@ "MONGO", "MONGO_ATLAS", "DOCUMENTDB", - "APPFLOW" + "APPFLOW", + "IMPALA", + "GLUE" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-template.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-template.json index accf32f97a..06fbc4e187 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-template.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-template.json @@ -976,6 +976,25 @@ ], "type": "string" }, + "CategoryInnerFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "DefaultFilterControlConfiguration": { + "$ref": "#/definitions/DefaultFilterControlConfiguration" + } + }, + "required": [ + "Column", + "Configuration" + ], + "type": "object" + }, "ChartAxisLabelOptions": { "additionalProperties": false, "properties": { @@ -3191,6 +3210,9 @@ "CategoryFilter": { "$ref": "#/definitions/CategoryFilter" }, + "NestedFilter": { + "$ref": "#/definitions/NestedFilter" + }, "NumericEqualityFilter": { "$ref": "#/definitions/NumericEqualityFilter" }, @@ -4962,6 +4984,15 @@ ], "type": "string" }, + "InnerFilter": { + "additionalProperties": false, + "properties": { + "CategoryInnerFilter": { + "$ref": "#/definitions/CategoryInnerFilter" + } + }, + "type": "object" + }, "InsightConfiguration": { "additionalProperties": false, "properties": { @@ -5997,6 +6028,34 @@ ], "type": "string" }, + "NestedFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "IncludeInnerSet": { + "default": false, + "type": "boolean" + }, + "InnerFilter": { + "$ref": "#/definitions/InnerFilter" + } + }, + "required": [ + "Column", + "FilterId", + "IncludeInnerSet", + "InnerFilter" + ], + "type": "object" + }, "NullValueFormatConfiguration": { "additionalProperties": false, "properties": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json index d78bf78d37..12d15d18cb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json @@ -362,7 +362,8 @@ "JumpStart", "InferenceRecommender", "Endpoints", - "Projects" + "Projects", + "InferenceOptimization" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json index df84524c95..918dfdb6ff 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json @@ -257,7 +257,8 @@ "JumpStart", "InferenceRecommender", "Endpoints", - "Projects" + "Projects", + "InferenceOptimization" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-automationrule.json index 4686a4904b..dd9f1a903c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-automationrule.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-automationrule.json @@ -714,6 +714,13 @@ "/properties/UpdatedAt", "/properties/CreatedBy" ], + "required": [ + "RuleOrder", + "RuleName", + "Description", + "Criteria", + "Actions" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", "tagging": { "cloudFormationSystemTags": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-receiptrule.json index a5d4ac25eb..ef18bd7f89 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-receiptrule.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-receiptrule.json @@ -42,8 +42,8 @@ } }, "required": [ - "HeaderName", - "HeaderValue" + "HeaderValue", + "HeaderName" ], "type": "object" }, @@ -133,6 +133,9 @@ "BucketName": { "type": "string" }, + "IamRoleArn": { + "type": "string" + }, "KmsKeyArn": { "type": "string" }, @@ -212,8 +215,8 @@ "/properties/Id" ], "required": [ - "RuleSetName", - "Rule" + "Rule", + "RuleSetName" ], "typeName": "AWS::SES::ReceiptRule" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ssmquicksetup-configurationmanager.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ssmquicksetup-configurationmanager.json new file mode 100644 index 0000000000..f626ba7c2e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ssmquicksetup-configurationmanager.json @@ -0,0 +1,324 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationDefinitions/*/Type", + "/properties/ConfigurationDefinitions/*/TypeVersion" + ], + "definitions": { + "ConfigurationDefinition": { + "additionalProperties": false, + "properties": { + "LocalDeploymentAdministrationRoleArn": { + "type": "string" + }, + "LocalDeploymentExecutionRoleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/ConfigurationParametersMap" + }, + "Type": { + "pattern": "^[a-zA-Z0-9_\\-.:/]{3,200}$", + "type": "string" + }, + "TypeVersion": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": [ + "Parameters", + "Type" + ], + "type": "object" + }, + "ConfigurationParametersMap": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9+=@_\\/\\s-]+$": { + "maxLength": 40960, + "type": "string" + } + }, + "type": "object" + }, + "Status": { + "enum": [ + "INITIALIZING", + "DEPLOYING", + "SUCCEEDED", + "DELETING", + "STOPPING", + "FAILED", + "STOPPED", + "DELETE_FAILED", + "STOP_FAILED", + "NONE" + ], + "type": "string" + }, + "StatusDetails": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + }, + "StatusSummary": { + "additionalProperties": false, + "properties": { + "LastUpdatedAt": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/Status" + }, + "StatusDetails": { + "$ref": "#/definitions/StatusDetails" + }, + "StatusMessage": { + "type": "string" + }, + "StatusType": { + "$ref": "#/definitions/StatusType" + } + }, + "required": [ + "LastUpdatedAt", + "StatusType" + ], + "type": "object" + }, + "StatusType": { + "enum": [ + "Deployment", + "AsyncExecutions" + ], + "type": "string" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9+=@_\\/-:]+$": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[A-Za-z0-9+=@_\\/-:]+$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:CreateServiceLinkedRole", + "iam:ListRoles", + "iam:PassRole", + "ssm-quicksetup:CreateConfigurationManager", + "ssm-quicksetup:GetConfigurationManager", + "ssm-quicksetup:TagResource", + "ssm-quicksetup:UntagResource", + "ssm-quicksetup:UpdateConfigurationManager", + "ssm:Describe*", + "ssm:Get*", + "ssm:List*", + "ssm:DeleteAssociation", + "ssm:CreateResourceDataSync", + "ssm:UpdateResourceDataSync", + "ssm:StartAutomationExecution", + "ssm:CreateAssociation", + "ssm:StartAssociationsOnce", + "cloudformation:List*", + "cloudformation:Describe*", + "cloudformation:CreateStack", + "cloudformation:CreateStackInstances", + "cloudformation:CreateStackSet", + "cloudformation:DeleteStack", + "cloudformation:DeleteStackInstances", + "cloudformation:DeleteStackSet", + "cloudformation:UpdateStack", + "cloudformation:UpdateStackSet", + "cloudformation:StopStackSetOperation", + "cloudformation:GetTemplate", + "cloudformation:RollbackStack", + "cloudformation:TagResource", + "cloudformation:UntagResource", + "organizations:Describe*", + "organizations:List*", + "organizations:RegisterDelegatedAdministrator", + "organizations:DeregisterDelegatedAdministrator", + "organizations:EnableAWSServiceAccess" + ] + }, + "delete": { + "permissions": [ + "ssm-quicksetup:DeleteConfigurationManager", + "iam:GetRole", + "iam:CreateServiceLinkedRole", + "iam:ListRoles", + "iam:PassRole", + "ssm-quicksetup:GetConfigurationManager", + "ssm-quicksetup:ListConfigurationManagers", + "ssm-quicksetup:TagResource", + "ssm-quicksetup:UntagResource", + "ssm-quicksetup:UpdateConfigurationManager", + "ssm:Describe*", + "ssm:Get*", + "ssm:List*", + "ssm:DeleteAssociation", + "ssm:CreateResourceDataSync", + "ssm:UpdateResourceDataSync", + "ssm:StartAutomationExecution", + "ssm:CreateAssociation", + "ssm:StartAssociationsOnce", + "cloudformation:List*", + "cloudformation:Describe*", + "cloudformation:CreateStack", + "cloudformation:CreateStackInstances", + "cloudformation:CreateStackSet", + "cloudformation:DeleteStack", + "cloudformation:DeleteStackInstances", + "cloudformation:DeleteStackSet", + "cloudformation:UpdateStack", + "cloudformation:UpdateStackSet", + "cloudformation:StopStackSetOperation", + "cloudformation:GetTemplate", + "cloudformation:RollbackStack", + "cloudformation:TagResource", + "cloudformation:UntagResource", + "organizations:Describe*", + "organizations:List*", + "organizations:RegisterDelegatedAdministrator", + "organizations:DeregisterDelegatedAdministrator", + "organizations:EnableAWSServiceAccess" + ] + }, + "list": { + "permissions": [ + "ssm-quicksetup:ListConfigurationManagers" + ] + }, + "read": { + "permissions": [ + "ssm-quicksetup:GetConfigurationManager", + "iam:GetRole", + "iam:PassRole", + "iam:ListRoles", + "ssm:DescribeDocument", + "ssm:GetDocument" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:CreateServiceLinkedRole", + "iam:ListRoles", + "iam:PassRole", + "ssm-quicksetup:GetConfigurationManager", + "ssm-quicksetup:TagResource", + "ssm-quicksetup:UntagResource", + "ssm-quicksetup:UpdateConfigurationManager", + "ssm-quicksetup:UpdateConfigurationDefinition", + "ssm:Describe*", + "ssm:Get*", + "ssm:List*", + "ssm:DeleteAssociation", + "ssm:CreateResourceDataSync", + "ssm:UpdateResourceDataSync", + "ssm:StartAutomationExecution", + "ssm:CreateAssociation", + "ssm:StartAssociationsOnce", + "cloudformation:List*", + "cloudformation:Describe*", + "cloudformation:CreateStack", + "cloudformation:CreateStackInstances", + "cloudformation:CreateStackSet", + "cloudformation:DeleteStack", + "cloudformation:DeleteStackInstances", + "cloudformation:DeleteStackSet", + "cloudformation:UpdateStack", + "cloudformation:UpdateStackSet", + "cloudformation:StopStackSetOperation", + "cloudformation:GetTemplate", + "cloudformation:RollbackStack", + "cloudformation:TagResource", + "cloudformation:UntagResource", + "organizations:Describe*", + "organizations:List*", + "organizations:RegisterDelegatedAdministrator", + "organizations:DeregisterDelegatedAdministrator", + "organizations:EnableAWSServiceAccess" + ] + } + }, + "primaryIdentifier": [ + "/properties/ManagerArn" + ], + "properties": { + "ConfigurationDefinitions": { + "items": { + "$ref": "#/definitions/ConfigurationDefinition" + }, + "type": "array" + }, + "CreatedAt": { + "type": "string" + }, + "Description": { + "pattern": "^.{0,512}$", + "type": "string" + }, + "LastModifiedAt": { + "type": "string" + }, + "ManagerArn": { + "type": "string" + }, + "Name": { + "pattern": "^[ A-Za-z0-9_-]{1,50}$", + "type": "string" + }, + "StatusSummaries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/StatusSummary" + }, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/LastModifiedAt", + "/properties/ManagerArn", + "/properties/StatusSummaries", + "/properties/ConfigurationDefinitions/*/id" + ], + "required": [ + "ConfigurationDefinitions" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "ssm-quicksetup:TagResource", + "ssm-quicksetup:UntagResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SSMQuickSetup::ConfigurationManager" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-canary.json index 0b1a6b8383..274392c7eb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-canary.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-canary.json @@ -50,10 +50,6 @@ "type": "string" }, "S3Bucket": { - "relationshipRef": { - "propertyPath": "/properties/BucketName", - "typeName": "AWS::S3::Bucket" - }, "type": "string" }, "S3Key": { @@ -151,20 +147,6 @@ "SecurityGroupIds": { "format": "AWS::EC2::SecurityGroup.Ids", "items": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/DefaultSecurityGroup", - "typeName": "AWS::EC2::VPC" - } - } - ], "format": "AWS::EC2::SecurityGroup.GroupId", "type": "string" }, @@ -172,20 +154,12 @@ }, "SubnetIds": { "items": { - "relationshipRef": { - "propertyPath": "/properties/SubnetId", - "typeName": "AWS::EC2::Subnet" - }, "type": "string" }, "type": "array" }, "VpcId": { "format": "AWS::EC2::VPC.Id", - "relationshipRef": { - "propertyPath": "/properties/VpcId", - "typeName": "AWS::EC2::VPC" - }, "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-group.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-group.json index 7923befb46..66d7a5ef08 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-group.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-synthetics-group.json @@ -5,7 +5,7 @@ ], "definitions": { "ResourceArn": { - "pattern": "arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]", + "pattern": "arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b|e|f?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]", "type": "string" }, "Tag": { diff --git a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py index b0f0e5e053..047688d7bc 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py @@ -971,6 +971,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1457,6 +1458,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1531,7 +1533,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1566,7 +1567,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1637,6 +1637,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1782,6 +1783,7 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1878,6 +1880,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1917,7 +1920,6 @@ "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", "aws-opensearchserverless-vpcendpoint.json", - "aws-opensearchservice-domain.json", "aws-opsworks-app.json", "aws-opsworks-elasticloadbalancerattachment.json", "aws-opsworks-instance.json", @@ -2085,7 +2087,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -2130,6 +2131,7 @@ "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", @@ -2162,6 +2164,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..c8aa358cc0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-opensearchservice-domain.json @@ -0,0 +1,538 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpointV2": { + "type": "string" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "IPAddressType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ses-receiptrule.json deleted file mode 100644 index 8de28f7601..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-ses-receiptrule.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RuleSetName" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AddHeaderAction": { - "$ref": "#/definitions/AddHeaderAction" - }, - "BounceAction": { - "$ref": "#/definitions/BounceAction" - }, - "LambdaAction": { - "$ref": "#/definitions/LambdaAction" - }, - "S3Action": { - "$ref": "#/definitions/S3Action" - }, - "SNSAction": { - "$ref": "#/definitions/SNSAction" - }, - "StopAction": { - "$ref": "#/definitions/StopAction" - }, - "WorkmailAction": { - "$ref": "#/definitions/WorkmailAction" - } - }, - "type": "object" - }, - "AddHeaderAction": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderValue", - "HeaderName" - ], - "type": "object" - }, - "BounceAction": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Sender": { - "type": "string" - }, - "SmtpReplyCode": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Sender", - "SmtpReplyCode", - "Message" - ], - "type": "object" - }, - "LambdaAction": { - "additionalProperties": false, - "properties": { - "FunctionArn": { - "type": "string" - }, - "InvocationType": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "FunctionArn" - ], - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Enabled": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Recipients": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ScanEnabled": { - "type": "boolean" - }, - "TlsPolicy": { - "enum": [ - "Optional", - "Require" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Action": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "KmsKeyArn": { - "type": "string" - }, - "ObjectKeyPrefix": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "SNSAction": { - "additionalProperties": false, - "properties": { - "Encoding": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "type": "object" - }, - "StopAction": { - "additionalProperties": false, - "properties": { - "Scope": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "Scope" - ], - "type": "object" - }, - "WorkmailAction": { - "additionalProperties": false, - "properties": { - "OrganizationArn": { - "type": "string" - }, - "TopicArn": { - "type": "string" - } - }, - "required": [ - "OrganizationArn" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "After": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/Rule" - }, - "RuleSetName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Rule", - "RuleSetName" - ], - "typeName": "AWS::SES::ReceiptRule" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py index a99aaffa49..a6075c4eef 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py @@ -72,6 +72,7 @@ "AWS::ApplicationInsights::Application", "AWS::Athena::DataCatalog", "AWS::Athena::NamedQuery", + "AWS::Athena::PreparedStatement", "AWS::Athena::WorkGroup", "AWS::AutoScaling::AutoScalingGroup", "AWS::AutoScaling::LaunchConfiguration", @@ -707,6 +708,7 @@ "aws-apigateway-usageplankey.json", "aws-apigateway-vpclink.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-stage.json", "aws-appconfig-application.json", "aws-appconfig-configurationprofile.json", @@ -736,6 +738,7 @@ "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", + "aws-athena-preparedstatement.json", "aws-athena-workgroup.json", "aws-autoscaling-autoscalinggroup.json", "aws-autoscaling-warmpool.json", @@ -836,6 +839,8 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", + "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -861,7 +866,6 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", @@ -892,11 +896,8 @@ "aws-ec2-vpcendpointservice.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", "aws-ec2-vpngatewayroutepropagation.json", - "aws-ecr-repository.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", @@ -920,7 +921,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1028,9 +1028,11 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", "aws-lakeformation-resource.json", + "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-permission.json", "aws-lambda-version.json", @@ -1134,17 +1136,14 @@ "aws-s3outposts-endpoint.json", "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", - "aws-sagemaker-domain.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sdb-domain.json", "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1211,8 +1210,6 @@ "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", - "aws-synthetics-canary.json", - "aws-synthetics-group.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-apigatewayv2-integration.json deleted file mode 100644 index e7b7290e95..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "RequestTemplates": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "ResponseParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-canary.json new file mode 100644 index 0000000000..0b1a6b8383 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-canary.json @@ -0,0 +1,382 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/S3Encryption" + } + }, + "type": "object" + }, + "BaseScreenshot": { + "properties": { + "IgnoreCoordinates": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ScreenshotName": { + "type": "string" + } + }, + "required": [ + "ScreenshotName" + ], + "type": "object" + }, + "Code": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "S3Bucket", + "S3Key" + ] + }, + { + "required": [ + "Script" + ] + } + ], + "properties": { + "Handler": { + "type": "string" + }, + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + }, + "Script": { + "type": "string" + }, + "SourceLocationArn": { + "type": "string" + } + }, + "required": [ + "Handler" + ], + "type": "object" + }, + "RunConfig": { + "additionalProperties": false, + "properties": { + "ActiveTracing": { + "type": "boolean" + }, + "EnvironmentVariables": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z][a-zA-Z0-9_]+": { + "type": "string" + } + }, + "type": "object" + }, + "MemoryInMB": { + "type": "integer" + }, + "TimeoutInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "string" + }, + "Expression": { + "type": "string" + } + }, + "required": [ + "Expression" + ], + "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" + }, + "VPCConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/DefaultSecurityGroup", + "typeName": "AWS::EC2::VPC" + } + } + ], + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, + "type": "string" + } + }, + "required": [ + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + }, + "VisualReference": { + "additionalProperties": false, + "properties": { + "BaseCanaryRunId": { + "type": "string" + }, + "BaseScreenshots": { + "items": { + "$ref": "#/definitions/BaseScreenshot" + }, + "type": "array" + } + }, + "required": [ + "BaseCanaryRunId" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/DeleteLambdaResourcesOnCanaryDeletion" + ], + "handlers": { + "create": { + "permissions": [ + "synthetics:CreateCanary", + "synthetics:StartCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "s3:CreateBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:CreateFunction", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "synthetics:DeleteCanary", + "synthetics:GetCanary" + ] + }, + "list": { + "permissions": [ + "synthetics:DescribeCanaries" + ] + }, + "read": { + "permissions": [ + "synthetics:GetCanary", + "synthetics:DescribeCanaries", + "synthetics:ListTagsForResource", + "iam:ListRoles", + "s3:ListAllMyBuckets", + "s3:GetBucketLocation" + ] + }, + "update": { + "permissions": [ + "synthetics:UpdateCanary", + "synthetics:StartCanary", + "synthetics:StopCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "synthetics:UntagResource", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/ArtifactConfig" + }, + "ArtifactS3Location": { + "pattern": "^(s3|S3)://", + "type": "string" + }, + "Code": { + "$ref": "#/definitions/Code" + }, + "DeleteLambdaResourcesOnCanaryDeletion": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FailureRetentionPeriod": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Name": { + "pattern": "^[0-9a-z_\\-]{1,21}$", + "type": "string" + }, + "RunConfig": { + "$ref": "#/definitions/RunConfig" + }, + "RuntimeVersion": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule" + }, + "StartCanaryAfterCreation": { + "type": "boolean" + }, + "State": { + "type": "string" + }, + "SuccessRetentionPeriod": { + "type": "integer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VPCConfig": { + "$ref": "#/definitions/VPCConfig" + }, + "VisualReference": { + "$ref": "#/definitions/VisualReference" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/State", + "/properties/Code/SourceLocationArn" + ], + "required": [ + "Name", + "Code", + "ArtifactS3Location", + "ExecutionRoleArn", + "Schedule", + "RuntimeVersion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-synthetics", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Synthetics::Canary", + "writeOnlyProperties": [ + "/properties/Code/S3Bucket", + "/properties/Code/S3Key", + "/properties/Code/S3ObjectVersion", + "/properties/Code/Script", + "/properties/DeleteLambdaResourcesOnCanaryDeletion", + "/properties/StartCanaryAfterCreation", + "/properties/RunConfig/EnvironmentVariables", + "/properties/VisualReference" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-synthetics-group.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-group.json similarity index 98% rename from src/cfnlint/data/schemas/providers/me_central_1/aws-synthetics-group.json rename to src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-group.json index ed8a3c39af..7923befb46 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-synthetics-group.json +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-synthetics-group.json @@ -104,5 +104,8 @@ "Name" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-synthetics", + "tagging": { + "taggable": true + }, "typeName": "AWS::Synthetics::Group" } diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py index a3da6ac223..50e2507eaf 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py @@ -77,6 +77,7 @@ "AWS::ApplicationInsights::Application", "AWS::Athena::DataCatalog", "AWS::Athena::NamedQuery", + "AWS::Athena::PreparedStatement", "AWS::Athena::WorkGroup", "AWS::AutoScaling::AutoScalingGroup", "AWS::AutoScaling::LaunchConfiguration", @@ -558,6 +559,7 @@ "AWS::Oam::Link", "AWS::Oam::Sink", "AWS::OpenSearchServerless::AccessPolicy", + "AWS::OpenSearchServerless::Collection", "AWS::OpenSearchServerless::LifecyclePolicy", "AWS::OpenSearchServerless::SecurityConfig", "AWS::OpenSearchServerless::SecurityPolicy", @@ -688,6 +690,7 @@ "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", + "AWS::SSO::Instance", "AWS::SSO::InstanceAccessControlAttributeConfiguration", "AWS::SSO::PermissionSet", "AWS::SageMaker::App", @@ -826,6 +829,7 @@ "aws-apigateway-usageplankey.json", "aws-apigateway-vpclink.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-stage.json", "aws-appconfig-application.json", "aws-appconfig-configurationprofile.json", @@ -858,6 +862,7 @@ "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", + "aws-athena-preparedstatement.json", "aws-athena-workgroup.json", "aws-autoscaling-autoscalinggroup.json", "aws-autoscaling-warmpool.json", @@ -906,6 +911,8 @@ "aws-cognito-identitypool.json", "aws-cognito-identitypoolprincipaltag.json", "aws-cognito-identitypoolroleattachment.json", + "aws-cognito-logdeliveryconfiguration.json", + "aws-cognito-userpool.json", "aws-cognito-userpoolclient.json", "aws-cognito-userpooldomain.json", "aws-cognito-userpoolgroup.json", @@ -993,6 +1000,7 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1007,17 +1015,18 @@ "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", + "aws-ec2-networkaclentry.json", "aws-ec2-networkinterface.json", "aws-ec2-networkinterfacepermission.json", "aws-ec2-placementgroup.json", "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", - "aws-ec2-subnet.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -1047,10 +1056,7 @@ "aws-ec2-vpcendpointservice.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ec2-vpcpeeringconnection.json", - "aws-ec2-vpnconnection.json", "aws-ec2-vpnconnectionroute.json", - "aws-ec2-vpngateway.json", - "aws-ecr-repository.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", "aws-ecs-clustercapacityproviderassociations.json", @@ -1074,7 +1080,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1207,9 +1212,11 @@ "aws-kinesisvideo-stream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", "aws-lakeformation-resource.json", + "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-permission.json", "aws-lambda-version.json", @@ -1257,6 +1264,7 @@ "aws-oam-link.json", "aws-oam-sink.json", "aws-opensearchserverless-accesspolicy.json", + "aws-opensearchserverless-collection.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-opensearchserverless-securityconfig.json", "aws-opensearchserverless-securitypolicy.json", @@ -1306,8 +1314,12 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-optiongroup.json", + "aws-redshift-cluster.json", "aws-redshift-clustersecuritygroup.json", "aws-redshift-clustersecuritygroupingress.json", + "aws-redshift-clustersubnetgroup.json", + "aws-redshift-eventsubscription.json", + "aws-redshift-scheduledaction.json", "aws-rekognition-collection.json", "aws-resiliencehub-app.json", "aws-resiliencehub-resiliencypolicy.json", @@ -1349,7 +1361,6 @@ "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-image.json", @@ -1362,14 +1373,12 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-project.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-sdb-domain.json", "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", "aws-securityhub-findingaggregator.json", @@ -1429,14 +1438,13 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-activity.json", "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", - "aws-synthetics-canary.json", - "aws-synthetics-group.json", "aws-timestream-database.json", "aws-timestream-scheduledquery.json", "aws-timestream-table.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-apigatewayv2-integration.json deleted file mode 100644 index e7b7290e95..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "RequestTemplates": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "ResponseParameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-logdeliveryconfiguration.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-logdeliveryconfiguration.json deleted file mode 100644 index a83e0bcce0..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-logdeliveryconfiguration.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId" - ], - "definitions": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "$ref": "#/definitions/CloudWatchLogsConfiguration" - }, - "EventSource": { - "type": "string" - }, - "LogLevel": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfigurations": { - "items": { - "$ref": "#/definitions/LogConfiguration" - }, - "type": "array" - } - }, - "handlers": { - "create": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - }, - "delete": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - }, - "read": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration" - ] - }, - "update": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "LogConfigurations": { - "$ref": "#/definitions/LogConfigurations" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Cognito::LogDeliveryConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpool.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpool.json deleted file mode 100644 index d035f0721a..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpool.json +++ /dev/null @@ -1,529 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AccountRecoverySetting": { - "additionalProperties": false, - "properties": { - "RecoveryMechanisms": { - "items": { - "$ref": "#/definitions/RecoveryOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "integer" - } - }, - "type": "object" - }, - "CustomEmailSender": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "CustomSMSSender": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "DeviceConfiguration": { - "additionalProperties": false, - "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" - }, - "DeviceOnlyRememberedOnUserPrompt": { - "type": "boolean" - } - }, - "type": "object" - }, - "EmailConfiguration": { - "additionalProperties": false, - "properties": { - "ConfigurationSet": { - "type": "string" - }, - "EmailSendingAccount": { - "type": "string" - }, - "From": { - "type": "string" - }, - "ReplyToEmailAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - } - }, - "type": "object" - }, - "InviteMessageTemplate": { - "additionalProperties": false, - "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { - "type": "string" - }, - "SMSMessage": { - "type": "string" - } - }, - "type": "object" - }, - "LambdaConfig": { - "additionalProperties": false, - "properties": { - "CreateAuthChallenge": { - "type": "string" - }, - "CustomEmailSender": { - "$ref": "#/definitions/CustomEmailSender" - }, - "CustomMessage": { - "type": "string" - }, - "CustomSMSSender": { - "$ref": "#/definitions/CustomSMSSender" - }, - "DefineAuthChallenge": { - "type": "string" - }, - "KMSKeyID": { - "type": "string" - }, - "PostAuthentication": { - "type": "string" - }, - "PostConfirmation": { - "type": "string" - }, - "PreAuthentication": { - "type": "string" - }, - "PreSignUp": { - "type": "string" - }, - "PreTokenGeneration": { - "type": "string" - }, - "PreTokenGenerationConfig": { - "$ref": "#/definitions/PreTokenGenerationConfig" - }, - "UserMigration": { - "type": "string" - }, - "VerifyAuthChallengeResponse": { - "type": "string" - } - }, - "type": "object" - }, - "NumberAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxValue": { - "type": "string" - }, - "MinValue": { - "type": "string" - } - }, - "type": "object" - }, - "PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "integer" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - }, - "TemporaryPasswordValidityDays": { - "type": "integer" - } - }, - "type": "object" - }, - "Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/PasswordPolicy" - } - }, - "type": "object" - }, - "PreTokenGenerationConfig": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "RecoveryOption": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Priority": { - "type": "integer" - } - }, - "type": "object" - }, - "SchemaAttribute": { - "additionalProperties": false, - "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" - }, - "Mutable": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/StringAttributeConstraints" - } - }, - "type": "object" - }, - "SmsConfiguration": { - "additionalProperties": false, - "properties": { - "ExternalId": { - "type": "string" - }, - "SnsCallerArn": { - "type": "string" - }, - "SnsRegion": { - "type": "string" - } - }, - "type": "object" - }, - "StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { - "type": "string" - }, - "MinLength": { - "type": "string" - } - }, - "type": "object" - }, - "UserAttributeUpdateSettings": { - "additionalProperties": false, - "properties": { - "AttributesRequireVerificationBeforeUpdate": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "AttributesRequireVerificationBeforeUpdate" - ], - "type": "object" - }, - "UserPoolAddOns": { - "additionalProperties": false, - "properties": { - "AdvancedSecurityMode": { - "type": "string" - } - }, - "type": "object" - }, - "UsernameConfiguration": { - "additionalProperties": false, - "properties": { - "CaseSensitive": { - "type": "boolean" - } - }, - "type": "object" - }, - "VerificationMessageTemplate": { - "additionalProperties": false, - "properties": { - "DefaultEmailOption": { - "type": "string" - }, - "EmailMessage": { - "type": "string" - }, - "EmailMessageByLink": { - "type": "string" - }, - "EmailSubject": { - "type": "string" - }, - "EmailSubjectByLink": { - "type": "string" - }, - "SmsMessage": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "cognito-idp:CreateUserPool", - "iam:PassRole", - "cognito-idp:SetUserPoolMfaConfig", - "cognito-idp:DescribeUserPool", - "kms:CreateGrant", - "iam:CreateServiceLinkedRole" - ], - "timeoutInMinutes": 2 - }, - "delete": { - "permissions": [ - "cognito-idp:DeleteUserPool" - ], - "timeoutInMinutes": 2 - }, - "list": { - "permissions": [ - "cognito-idp:ListUserPools" - ] - }, - "read": { - "permissions": [ - "cognito-idp:DescribeUserPool" - ] - }, - "update": { - "permissions": [ - "cognito-idp:UpdateUserPool", - "cognito-idp:ListTagsForResource", - "cognito-idp:UntagResource", - "cognito-idp:TagResource", - "cognito-idp:SetUserPoolMfaConfig", - "cognito-idp:AddCustomAttributes", - "cognito-idp:DescribeUserPool", - "iam:PassRole" - ], - "timeoutInMinutes": 2 - } - }, - "primaryIdentifier": [ - "/properties/UserPoolId" - ], - "properties": { - "AccountRecoverySetting": { - "$ref": "#/definitions/AccountRecoverySetting" - }, - "AdminCreateUserConfig": { - "$ref": "#/definitions/AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "enum": [ - "email", - "phone_number", - "preferred_username" - ], - "type": "string" - }, - "type": "array" - }, - "Arn": { - "type": "string" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeletionProtection": { - "type": "string" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/EmailConfiguration" - }, - "EmailVerificationMessage": { - "maxLength": 20000, - "minLength": 6, - "type": "string" - }, - "EmailVerificationSubject": { - "maxLength": 140, - "minLength": 1, - "type": "string" - }, - "EnabledMfas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LambdaConfig": { - "$ref": "#/definitions/LambdaConfig" - }, - "MfaConfiguration": { - "enum": [ - "OFF", - "ON", - "OPTIONAL" - ], - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/Policies" - }, - "ProviderName": { - "type": "string" - }, - "ProviderURL": { - "type": "string" - }, - "Schema": { - "items": { - "$ref": "#/definitions/SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "maxLength": 140, - "minLength": 6, - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/SmsConfiguration" - }, - "SmsVerificationMessage": { - "maxLength": 140, - "minLength": 6, - "type": "string" - }, - "UserAttributeUpdateSettings": { - "$ref": "#/definitions/UserAttributeUpdateSettings" - }, - "UserPoolAddOns": { - "$ref": "#/definitions/UserPoolAddOns" - }, - "UserPoolId": { - "type": "string" - }, - "UserPoolName": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "UserPoolTags": { - "additionalProperties": false, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { - "type": "string" - } - }, - "type": "object" - }, - "UsernameAttributes": { - "items": { - "enum": [ - "email", - "phone_number" - ], - "type": "string" - }, - "type": "array" - }, - "UsernameConfiguration": { - "$ref": "#/definitions/UsernameConfiguration" - }, - "VerificationMessageTemplate": { - "$ref": "#/definitions/VerificationMessageTemplate" - } - }, - "propertyTransform": { - "/properties/Schema/*/Name": "'custom:' & '' & Name" - }, - "readOnlyProperties": [ - "/properties/ProviderName", - "/properties/UserPoolId", - "/properties/ProviderURL", - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/UserPoolTags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Cognito::UserPool", - "writeOnlyProperties": [ - "/properties/EnabledMfas" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-networkaclentry.json deleted file mode 100644 index f802674f09..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-networkaclentry.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Egress", - "/properties/RuleNumber", - "/properties/NetworkAclId" - ], - "definitions": { - "Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "integer" - }, - "Type": { - "type": "integer" - } - }, - "type": "object" - }, - "PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "integer" - }, - "To": { - "type": "integer" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { - "type": "boolean" - }, - "Icmp": { - "$ref": "#/definitions/Icmp" - }, - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "PortRange": { - "$ref": "#/definitions/PortRange" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "enum": [ - "allow", - "deny" - ], - "type": "string" - }, - "RuleNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "NetworkAclId", - "RuleAction", - "RuleNumber", - "Protocol" - ], - "requiredXor": [ - "Ipv6CidrBlock", - "CidrBlock" - ], - "typeName": "AWS::EC2::NetworkAclEntry" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..ab454061a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnet.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "EnableLniAtDeviceIndex": { + "type": "integer" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/EnableLniAtDeviceIndex", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..0e94eb57e5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpnconnection.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "EnableAcceleration": { + "type": "boolean" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..0617d2c917 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpngateway.json @@ -0,0 +1,96 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/Type" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteVpnGateway", + "ec2:DescribeVpnGateways", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeVpnGateways", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/VPNGatewayId" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "VPNGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/VPNGatewayId" + ], + "required": [ + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/FunctionName" - ], - "definitions": { - "AliasRoutingConfiguration": { - "additionalProperties": false, - "properties": { - "AdditionalVersionWeights": { - "items": { - "$ref": "#/definitions/VersionWeight" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "AdditionalVersionWeights" - ], - "type": "object" - }, - "ProvisionedConcurrencyConfiguration": { - "additionalProperties": false, - "properties": { - "ProvisionedConcurrentExecutions": { - "type": "integer" - } - }, - "required": [ - "ProvisionedConcurrentExecutions" - ], - "type": "object" - }, - "VersionWeight": { - "additionalProperties": false, - "properties": { - "FunctionVersion": { - "type": "string" - }, - "FunctionWeight": { - "type": "number" - } - }, - "required": [ - "FunctionVersion", - "FunctionWeight" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Description": { - "type": "string" - }, - "FunctionName": { - "type": "string" - }, - "FunctionVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ProvisionedConcurrencyConfig": { - "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" - }, - "RoutingConfig": { - "$ref": "#/definitions/AliasRoutingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "FunctionName", - "FunctionVersion", - "Name" - ], - "typeName": "AWS::Lambda::Alias" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-cluster.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-cluster.json deleted file mode 100644 index 41541b0e45..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-cluster.json +++ /dev/null @@ -1,330 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ClusterIdentifier", - "/properties/OwnerAccount", - "/properties/SnapshotIdentifier", - "/properties/DBName", - "/properties/SnapshotClusterIdentifier", - "/properties/ClusterSubnetGroupName", - "/properties/MasterUsername" - ], - "definitions": { - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "LoggingProperties": { - "additionalProperties": false, - "properties": { - "BucketName": { - "type": "string" - }, - "S3KeyPrefix": { - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 127, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "redshift:DescribeClusters", - "redshift:CreateCluster", - "redshift:RestoreFromClusterSnapshot", - "redshift:EnableLogging", - "redshift:DescribeTags" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "redshift:DescribeTags", - "redshift:DescribeClusters", - "redshift:DeleteCluster" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "redshift:DescribeTags", - "redshift:DescribeClusters" - ] - }, - "read": { - "permissions": [ - "redshift:DescribeClusters", - "redshift:DescribeLoggingStatus", - "redshift:DescribeSnapshotCopyGrant", - "redshift:DescribeClusterDbRevisions", - "redshift:DescribeTags" - ] - }, - "update": { - "permissions": [ - "redshift:DescribeClusters", - "redshift:ModifyCluster", - "redshift:ModifyClusterIamRoles", - "redshift:EnableLogging", - "redshift:CreateTags", - "redshift:DeleteTags", - "redshift:DescribeTags", - "redshift:DisableLogging", - "redshift:RebootCluster", - "redshift:EnableSnapshotCopy", - "redshift:DisableSnapshotCopy", - "redshift:ModifySnapshotCopyRetentionPeriod", - "redshift:ModifyAquaConfiguration", - "redshift:ResizeCluster", - "redshift:ModifyClusterMaintenance", - "redshift:DescribeClusterDbRevisions", - "redshift:ModifyClusterDbRevisions", - "redshift:PauseCluster", - "redshift:ResumeCluster", - "redshift:RotateEncryptionKey", - "redshift:FailoverPrimaryCompute" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/ClusterIdentifier" - ], - "properties": { - "AllowVersionUpgrade": { - "type": "boolean" - }, - "AquaConfigurationStatus": { - "type": "string" - }, - "AutomatedSnapshotRetentionPeriod": { - "type": "integer" - }, - "AvailabilityZone": { - "type": "string" - }, - "AvailabilityZoneRelocation": { - "type": "boolean" - }, - "AvailabilityZoneRelocationStatus": { - "type": "string" - }, - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "maxLength": 63, - "type": "string" - }, - "ClusterParameterGroupName": { - "maxLength": 255, - "type": "string" - }, - "ClusterSecurityGroups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ClusterSubnetGroupName": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "ClusterVersion": { - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DeferMaintenance": { - "type": "boolean" - }, - "DeferMaintenanceDuration": { - "type": "integer" - }, - "DeferMaintenanceEndTime": { - "type": "string" - }, - "DeferMaintenanceIdentifier": { - "type": "string" - }, - "DeferMaintenanceStartTime": { - "type": "string" - }, - "DestinationRegion": { - "type": "string" - }, - "ElasticIp": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "EnhancedVpcRouting": { - "type": "boolean" - }, - "HsmClientCertificateIdentifier": { - "type": "string" - }, - "HsmConfigurationIdentifier": { - "type": "string" - }, - "IamRoles": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 50, - "type": "array" - }, - "Id": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "LoggingProperties": { - "$ref": "#/definitions/LoggingProperties" - }, - "MaintenanceTrackName": { - "type": "string" - }, - "ManualSnapshotRetentionPeriod": { - "type": "integer" - }, - "MasterUserPassword": { - "maxLength": 64, - "type": "string" - }, - "MasterUsername": { - "maxLength": 128, - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "OwnerAccount": { - "type": "string" - }, - "Port": { - "type": "integer" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ResourceAction": { - "type": "string" - }, - "RevisionTarget": { - "type": "string" - }, - "RotateEncryptionKey": { - "type": "boolean" - }, - "SnapshotClusterIdentifier": { - "type": "string" - }, - "SnapshotCopyGrantName": { - "type": "string" - }, - "SnapshotCopyManual": { - "type": "boolean" - }, - "SnapshotCopyRetentionPeriod": { - "type": "integer" - }, - "SnapshotIdentifier": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": false - }, - "VpcSecurityGroupIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/DeferMaintenanceIdentifier", - "/properties/Endpoint/Port", - "/properties/Endpoint/Address" - ], - "required": [ - "MasterUserPassword", - "NodeType", - "MasterUsername", - "DBName", - "ClusterType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "taggable": true - }, - "typeName": "AWS::Redshift::Cluster", - "writeOnlyProperties": [ - "/properties/MasterUserPassword", - "/properties/Classic", - "/properties/SnapshotIdentifier" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-clustersubnetgroup.json deleted file mode 100644 index 582e3c008f..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-clustersubnetgroup.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 127, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "redshift:CreateClusterSubnetGroup", - "redshift:CreateTags", - "redshift:DescribeClusterSubnetGroups", - "redshift:DescribeTags", - "ec2:AllocateAddress", - "ec2:AssociateAddress", - "ec2:AttachNetworkInterface", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAddresses", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs" - ] - }, - "delete": { - "permissions": [ - "redshift:DeleteClusterSubnetGroup", - "redshift:DescribeClusterSubnetGroups", - "redshift:DescribeTags", - "ec2:AllocateAddress", - "ec2:AssociateAddress", - "ec2:AttachNetworkInterface", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAddresses", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs" - ] - }, - "list": { - "permissions": [ - "redshift:DescribeClusterSubnetGroups", - "redshift:DescribeTags", - "ec2:AllocateAddress", - "ec2:AssociateAddress", - "ec2:AttachNetworkInterface", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAddresses", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs" - ] - }, - "read": { - "permissions": [ - "redshift:DescribeClusterSubnetGroups", - "redshift:DescribeTags", - "ec2:AllocateAddress", - "ec2:AssociateAddress", - "ec2:AttachNetworkInterface", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAddresses", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs" - ] - }, - "update": { - "permissions": [ - "redshift:ModifyClusterSubnetGroup", - "redshift:DescribeClusterSubnetGroups", - "redshift:DescribeTags", - "redshift:CreateTags", - "redshift:DeleteTags", - "ec2:AllocateAddress", - "ec2:AssociateAddress", - "ec2:AttachNetworkInterface", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAddresses", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs" - ] - } - }, - "primaryIdentifier": [ - "/properties/ClusterSubnetGroupName" - ], - "properties": { - "ClusterSubnetGroupName": { - "maxLength": 255, - "type": "string" - }, - "Description": { - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 20, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ClusterSubnetGroupName" - ], - "required": [ - "Description", - "SubnetIds" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", - "tagging": { - "taggable": true - }, - "typeName": "AWS::Redshift::ClusterSubnetGroup", - "writeOnlyProperties": [ - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-eventsubscription.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-eventsubscription.json deleted file mode 100644 index 0b443a1b7b..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-eventsubscription.json +++ /dev/null @@ -1,181 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SubscriptionName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "redshift:CreateEventSubscription", - "redshift:CreateTags", - "redshift:DescribeTags", - "redshift:DescribeEventSubscriptions" - ] - }, - "delete": { - "permissions": [ - "redshift:DescribeEventSubscriptions", - "redshift:DeleteEventSubscription", - "redshift:DescribeTags", - "redshift:DeleteTags" - ] - }, - "list": { - "permissions": [ - "redshift:DescribeTags", - "redshift:DescribeEventSubscriptions" - ] - }, - "read": { - "permissions": [ - "redshift:DescribeEventSubscriptions", - "redshift:DescribeTags" - ] - }, - "update": { - "permissions": [ - "redshift:ModifyEventSubscription", - "redshift:CreateTags", - "redshift:DescribeTags", - "redshift:DescribeEventSubscriptions", - "redshift:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/SubscriptionName" - ], - "properties": { - "CustSubscriptionId": { - "type": "string" - }, - "CustomerAwsId": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "EventCategories": { - "insertionOrder": false, - "items": { - "enum": [ - "configuration", - "management", - "monitoring", - "security", - "pending" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EventCategoriesList": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Severity": { - "enum": [ - "ERROR", - "INFO" - ], - "type": "string" - }, - "SnsTopicArn": { - "type": "string" - }, - "SourceIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "SourceIdsList": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "SourceType": { - "enum": [ - "cluster", - "cluster-parameter-group", - "cluster-security-group", - "cluster-snapshot", - "scheduled-action" - ], - "type": "string" - }, - "Status": { - "enum": [ - "active", - "no-permission", - "topic-not-exist" - ], - "type": "string" - }, - "SubscriptionCreationTime": { - "type": "string" - }, - "SubscriptionName": { - "pattern": "^(?=^[a-z][a-z0-9]*(-[a-z0-9]+)*$).{1,255}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/CustomerAwsId", - "/properties/CustSubscriptionId", - "/properties/Status", - "/properties/SubscriptionCreationTime", - "/properties/SourceIdsList", - "/properties/EventCategoriesList" - ], - "required": [ - "SubscriptionName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", - "tagging": { - "taggable": true - }, - "typeName": "AWS::Redshift::EventSubscription", - "writeOnlyProperties": [ - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-scheduledaction.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-scheduledaction.json deleted file mode 100644 index 4e33dbaea7..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-scheduledaction.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ScheduledActionName" - ], - "definitions": { - "PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "integer" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "ScheduledActionType": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "ResizeCluster": { - "$ref": "#/definitions/ResizeClusterMessage" - } - } - }, - { - "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/PauseClusterMessage" - } - } - }, - { - "additionalProperties": false, - "properties": { - "ResumeCluster": { - "$ref": "#/definitions/ResumeClusterMessage" - } - } - } - ], - "type": "object" - }, - "timestamp": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "redshift:CreateScheduledAction", - "redshift:DescribeScheduledActions", - "redshift:DescribeTags", - "redshift:PauseCluster", - "redshift:ResumeCluster", - "redshift:ResizeCluster", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "redshift:DescribeTags", - "redshift:DescribeScheduledActions", - "redshift:DeleteScheduledAction" - ] - }, - "list": { - "permissions": [ - "redshift:DescribeTags", - "redshift:DescribeScheduledActions" - ] - }, - "read": { - "permissions": [ - "redshift:DescribeScheduledActions", - "redshift:DescribeTags" - ] - }, - "update": { - "permissions": [ - "redshift:DescribeScheduledActions", - "redshift:ModifyScheduledAction", - "redshift:PauseCluster", - "redshift:ResumeCluster", - "redshift:ResizeCluster", - "redshift:DescribeTags", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ScheduledActionName" - ], - "properties": { - "Enable": { - "type": "boolean" - }, - "EndTime": { - "$ref": "#/definitions/timestamp" - }, - "IamRole": { - "type": "string" - }, - "NextInvocations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/timestamp" - }, - "type": "array" - }, - "Schedule": { - "type": "string" - }, - "ScheduledActionDescription": { - "pattern": "^(?=^[\\x09\\x0a\\x0d\\x20-\\xff]*$).{1,255}$", - "type": "string" - }, - "ScheduledActionName": { - "pattern": "^(?=^[a-z][a-z0-9]*(-[a-z0-9]+)*$).{1,60}$", - "type": "string" - }, - "StartTime": { - "$ref": "#/definitions/timestamp" - }, - "State": { - "enum": [ - "ACTIVE", - "DISABLED" - ], - "type": "string" - }, - "TargetAction": { - "$ref": "#/definitions/ScheduledActionType" - } - }, - "readOnlyProperties": [ - "/properties/State", - "/properties/NextInvocations" - ], - "required": [ - "ScheduledActionName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Redshift::ScheduledAction" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-canary.json new file mode 100644 index 0000000000..0b1a6b8383 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-canary.json @@ -0,0 +1,382 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/S3Encryption" + } + }, + "type": "object" + }, + "BaseScreenshot": { + "properties": { + "IgnoreCoordinates": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ScreenshotName": { + "type": "string" + } + }, + "required": [ + "ScreenshotName" + ], + "type": "object" + }, + "Code": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "S3Bucket", + "S3Key" + ] + }, + { + "required": [ + "Script" + ] + } + ], + "properties": { + "Handler": { + "type": "string" + }, + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + }, + "Script": { + "type": "string" + }, + "SourceLocationArn": { + "type": "string" + } + }, + "required": [ + "Handler" + ], + "type": "object" + }, + "RunConfig": { + "additionalProperties": false, + "properties": { + "ActiveTracing": { + "type": "boolean" + }, + "EnvironmentVariables": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z][a-zA-Z0-9_]+": { + "type": "string" + } + }, + "type": "object" + }, + "MemoryInMB": { + "type": "integer" + }, + "TimeoutInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "string" + }, + "Expression": { + "type": "string" + } + }, + "required": [ + "Expression" + ], + "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" + }, + "VPCConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/DefaultSecurityGroup", + "typeName": "AWS::EC2::VPC" + } + } + ], + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, + "type": "string" + } + }, + "required": [ + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + }, + "VisualReference": { + "additionalProperties": false, + "properties": { + "BaseCanaryRunId": { + "type": "string" + }, + "BaseScreenshots": { + "items": { + "$ref": "#/definitions/BaseScreenshot" + }, + "type": "array" + } + }, + "required": [ + "BaseCanaryRunId" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/DeleteLambdaResourcesOnCanaryDeletion" + ], + "handlers": { + "create": { + "permissions": [ + "synthetics:CreateCanary", + "synthetics:StartCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "s3:CreateBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:CreateFunction", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "synthetics:DeleteCanary", + "synthetics:GetCanary" + ] + }, + "list": { + "permissions": [ + "synthetics:DescribeCanaries" + ] + }, + "read": { + "permissions": [ + "synthetics:GetCanary", + "synthetics:DescribeCanaries", + "synthetics:ListTagsForResource", + "iam:ListRoles", + "s3:ListAllMyBuckets", + "s3:GetBucketLocation" + ] + }, + "update": { + "permissions": [ + "synthetics:UpdateCanary", + "synthetics:StartCanary", + "synthetics:StopCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "synthetics:UntagResource", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/ArtifactConfig" + }, + "ArtifactS3Location": { + "pattern": "^(s3|S3)://", + "type": "string" + }, + "Code": { + "$ref": "#/definitions/Code" + }, + "DeleteLambdaResourcesOnCanaryDeletion": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FailureRetentionPeriod": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Name": { + "pattern": "^[0-9a-z_\\-]{1,21}$", + "type": "string" + }, + "RunConfig": { + "$ref": "#/definitions/RunConfig" + }, + "RuntimeVersion": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule" + }, + "StartCanaryAfterCreation": { + "type": "boolean" + }, + "State": { + "type": "string" + }, + "SuccessRetentionPeriod": { + "type": "integer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VPCConfig": { + "$ref": "#/definitions/VPCConfig" + }, + "VisualReference": { + "$ref": "#/definitions/VisualReference" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/State", + "/properties/Code/SourceLocationArn" + ], + "required": [ + "Name", + "Code", + "ArtifactS3Location", + "ExecutionRoleArn", + "Schedule", + "RuntimeVersion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-synthetics", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Synthetics::Canary", + "writeOnlyProperties": [ + "/properties/Code/S3Bucket", + "/properties/Code/S3Key", + "/properties/Code/S3ObjectVersion", + "/properties/Code/Script", + "/properties/DeleteLambdaResourcesOnCanaryDeletion", + "/properties/StartCanaryAfterCreation", + "/properties/RunConfig/EnvironmentVariables", + "/properties/VisualReference" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-group.json similarity index 97% rename from src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json rename to src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-group.json index 66d7a5ef08..7923befb46 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-synthetics-group.json @@ -5,7 +5,7 @@ ], "definitions": { "ResourceArn": { - "pattern": "arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b|e|f?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]", + "pattern": "arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]", "type": "string" }, "Tag": { diff --git a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py index 70aa8ad524..cd8a7c0560 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py @@ -757,6 +757,9 @@ "AWS::SES::ContactList", "AWS::SES::DedicatedIpPool", "AWS::SES::EmailIdentity", + "AWS::SES::ReceiptFilter", + "AWS::SES::ReceiptRule", + "AWS::SES::ReceiptRuleSet", "AWS::SES::Template", "AWS::SES::VdmAttributes", "AWS::SNS::Subscription", @@ -781,6 +784,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -970,7 +974,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1190,6 +1193,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1264,7 +1268,6 @@ "aws-ecr-pullthroughcacherule.json", "aws-ecr-registrypolicy.json", "aws-ecr-replicationconfiguration.json", - "aws-ecr-repository.json", "aws-ecr-repositorycreationtemplate.json", "aws-ecs-capacityprovider.json", "aws-ecs-cluster.json", @@ -1300,7 +1303,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", - "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1350,6 +1352,7 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", + "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1449,6 +1452,7 @@ "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", + "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", @@ -1517,6 +1521,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", "aws-neptune-dbcluster.json", @@ -1677,7 +1682,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-secrettargetattachment.json", - "aws-securityhub-automationrule.json", "aws-securityhub-configurationpolicy.json", "aws-securityhub-delegatedadmin.json", "aws-securityhub-findingaggregator.json", @@ -1722,6 +1726,9 @@ "aws-ses-contactlist.json", "aws-ses-dedicatedippool.json", "aws-ses-emailidentity.json", + "aws-ses-receiptfilter.json", + "aws-ses-receiptrule.json", + "aws-ses-receiptruleset.json", "aws-ses-template.json", "aws-ses-vdmattributes.json", "aws-shield-drtaccess.json", @@ -1751,6 +1758,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..805f0006b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-apigatewayv2-integration.json @@ -0,0 +1,187 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-ipam.json deleted file mode 100644 index 69ed6aeb61..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-ipam.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "IpamOperatingRegion": { - "additionalProperties": false, - "properties": { - "RegionName": { - "type": "string" - } - }, - "required": [ - "RegionName" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "DefaultResourceDiscoveryAssociationId": { - "type": "string" - }, - "DefaultResourceDiscoveryId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IpamId": { - "type": "string" - }, - "OperatingRegions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IpamOperatingRegion" - }, - "type": "array", - "uniqueItems": true - }, - "PrivateDefaultScopeId": { - "type": "string" - }, - "PublicDefaultScopeId": { - "maxLength": 255, - "type": "string" - }, - "ResourceDiscoveryAssociationCount": { - "type": "integer" - }, - "ScopeCount": { - "type": "integer" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Tier": { - "enum": [ - "free", - "advanced" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::IPAM" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-ecr-repository.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ecr-repository.json new file mode 100644 index 0000000000..062afcc632 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-ecr-repository.json @@ -0,0 +1,212 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RepositoryName", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration/EncryptionType", + "/properties/EncryptionConfiguration/KmsKey" + ], + "definitions": { + "EmptyOnDelete": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "$ref": "#/definitions/EncryptionType" + }, + "KmsKey": { + "$ref": "#/definitions/KmsKey" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "EncryptionType": { + "enum": [ + "AES256", + "KMS" + ], + "type": "string" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "$ref": "#/definitions/ScanOnPush" + } + }, + "type": "object" + }, + "KmsKey": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "$ref": "#/definitions/LifecyclePolicyText" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "type": "object" + }, + "LifecyclePolicyText": { + "maxLength": 30720, + "minLength": 100, + "type": "string" + }, + "RegistryId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "ScanOnPush": { + "type": "boolean" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRepository", + "kms:RetireGrant" + ] + }, + "list": { + "permissions": [ + "ecr:DescribeRepositories" + ] + }, + "read": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:GetLifecyclePolicy", + "ecr:GetRepositoryPolicy", + "ecr:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ecr:DescribeRepositories", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "ecr:ListTagsForResource", + "ecr:TagResource", + "ecr:UntagResource", + "ecr:DeleteLifecyclePolicy", + "ecr:DeleteRepositoryPolicy", + "ecr:PutImageScanningConfiguration", + "ecr:PutImageTagMutability", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:RetireGrant" + ] + } + }, + "primaryIdentifier": [ + "/properties/RepositoryName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EmptyOnDelete": { + "$ref": "#/definitions/EmptyOnDelete" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration" + }, + "ImageTagMutability": { + "enum": [ + "MUTABLE", + "IMMUTABLE" + ], + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "RepositoryName": { + "maxLength": 256, + "minLength": 2, + "pattern": "^(?=.{2,256}$)((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)$", + "type": "string" + }, + "RepositoryPolicyText": { + "type": [ + "object", + "string" + ] + }, + "RepositoryUri": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/RepositoryUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECR::Repository", + "writeOnlyProperties": [ + "/properties/EmptyOnDelete" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..b91b5af9ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,201 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "definitions": { + "LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "application", + "network", + "gateway" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "requiredXor": [ + "Subnets", + "SubnetMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-glue-database.json deleted file mode 100644 index 6e618ae270..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-glue-database.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "FederatedDatabase": { - "$ref": "#/definitions/FederatedDatabase" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "FederatedDatabase": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Identifier": { - "type": "string" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-kms-replicakey.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-kms-replicakey.json deleted file mode 100644 index 2e2f867928..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-kms-replicakey.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PrimaryKeyArn" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "kms:ReplicateKey", - "kms:CreateKey", - "kms:DescribeKey", - "kms:DisableKey", - "kms:TagResource" - ] - }, - "delete": { - "permissions": [ - "kms:DescribeKey", - "kms:ScheduleKeyDeletion" - ] - }, - "list": { - "permissions": [ - "kms:ListKeys", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kms:DescribeKey", - "kms:GetKeyPolicy", - "kms:ListResourceTags" - ] - }, - "update": { - "permissions": [ - "kms:DescribeKey", - "kms:DisableKey", - "kms:EnableKey", - "kms:PutKeyPolicy", - "kms:TagResource", - "kms:UntagResource", - "kms:UpdateKeyDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/KeyId" - ], - "properties": { - "Arn": { - "type": "string" - }, - "Description": { - "maxLength": 8192, - "minLength": 0, - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "KeyId": { - "type": "string" - }, - "KeyPolicy": { - "type": [ - "object", - "string" - ] - }, - "PendingWindowInDays": { - "maximum": 30, - "minimum": 7, - "type": "integer" - }, - "PrimaryKeyArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/KeyId" - ], - "required": [ - "PrimaryKeyArn", - "KeyPolicy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::KMS::ReplicaKey", - "writeOnlyProperties": [ - "/properties/PendingWindowInDays" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-msk-replicator.json deleted file mode 100644 index 442dc3b3a8..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-msk-replicator.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn", - "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-automationrule.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-automationrule.json new file mode 100644 index 0000000000..4686a4904b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-automationrule.json @@ -0,0 +1,726 @@ +{ + "additionalProperties": false, + "definitions": { + "AutomationRulesAction": { + "properties": { + "FindingFieldsUpdate": { + "$ref": "#/definitions/AutomationRulesFindingFieldsUpdate" + }, + "Type": { + "enum": [ + "FINDING_FIELDS_UPDATE" + ], + "type": "string" + } + }, + "required": [ + "Type", + "FindingFieldsUpdate" + ], + "type": "object" + }, + "AutomationRulesFindingFieldsUpdate": { + "properties": { + "Confidence": { + "$ref": "#/definitions/int100" + }, + "Criticality": { + "$ref": "#/definitions/int100" + }, + "Note": { + "$ref": "#/definitions/NoteUpdate", + "type": "object" + }, + "RelatedFindings": { + "items": { + "$ref": "#/definitions/RelatedFinding" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "Severity": { + "$ref": "#/definitions/SeverityUpdate", + "type": "object" + }, + "Types": { + "items": { + "pattern": "^([^/]+)(/[^/]+){0,2}$", + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserDefinedFields": { + "$ref": "#/definitions/map" + }, + "VerificationState": { + "enum": [ + "UNKNOWN", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "BENIGN_POSITIVE" + ], + "type": "string" + }, + "Workflow": { + "$ref": "#/definitions/WorkflowUpdate", + "type": "object" + } + }, + "type": "object" + }, + "AutomationRulesFindingFilters": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "CompanyName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceAssociatedStandardsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceSecurityControlId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ComplianceStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Confidence": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "CreatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Criticality": { + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Description": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "GeneratorId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Id": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteText": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "NoteUpdatedBy": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ProductName": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RecordState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "RelatedFindingsProductArn": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceDetailsOther": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "ResourcePartition": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceRegion": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SeverityLabel": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "SourceUrl": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 100, + "type": "array" + }, + "Type": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 20, + "type": "array" + }, + "UserDefinedFields": { + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 20, + "type": "array" + }, + "VerificationState": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + }, + "WorkflowStatus": { + "items": { + "$ref": "#/definitions/StringFilter" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "BooleanFilter": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "boolean" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "DateFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "DateRange" + ] + }, + { + "allOf": [ + { + "required": [ + "Start" + ] + }, + { + "required": [ + "End" + ] + } + ] + } + ], + "properties": { + "DateRange": { + "$ref": "#/definitions/DateRange" + }, + "End": { + "$ref": "#/definitions/ISO8601DateString" + }, + "Start": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "type": "object" + }, + "DateRange": { + "additionalProperties": false, + "properties": { + "Unit": { + "enum": [ + "DAYS" + ], + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "ISO8601DateString": { + "pattern": "^(\\d\\d\\d\\d)-([0][1-9]|[1][0-2])-([0][1-9]|[1-2](\\d)|[3][0-1])[T](?:([0-1](\\d)|[2][0-3]):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?([Z]|[+-](\\d\\d)(:?(\\d\\d))?)$", + "type": "string" + }, + "MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Key", + "Value" + ], + "type": "object" + }, + "NonEmptyString": { + "minLength": 1, + "type": "string" + }, + "NoteUpdate": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "UpdatedBy": { + "$ref": "#/definitions/arnOrId" + } + }, + "required": [ + "Text", + "UpdatedBy" + ], + "type": "object" + }, + "NumberFilter": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Eq" + ] + }, + { + "anyOf": [ + { + "required": [ + "Gte" + ] + }, + { + "required": [ + "Lte" + ] + } + ] + } + ], + "properties": { + "Eq": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "Lte": { + "type": "number" + } + }, + "type": "object" + }, + "RelatedFinding": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/arnOrId" + }, + "ProductArn": { + "$ref": "#/definitions/arn" + } + }, + "required": [ + "ProductArn", + "Id" + ], + "type": "object" + }, + "SeverityUpdate": { + "additionalProperties": false, + "properties": { + "Label": { + "enum": [ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string" + }, + "Normalized": { + "$ref": "#/definitions/int100" + }, + "Product": { + "type": "number" + } + }, + "type": "object" + }, + "StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/StringFilterComparison" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "StringFilterComparison": { + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + "PREFIX_NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]{1,128}$": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "WorkflowUpdate": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "arn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso-?[a-z]{0,2}):[A-Za-z0-9]{1,63}:[a-z]+-([a-z]{1,10}-)?[a-z]+-[0-9]+:([0-9]{12})?:.+$", + "type": "string" + }, + "arnOrId": { + "anyOf": [ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "$ref": "#/definitions/arn" + } + ] + }, + "int100": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "map": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^[-_+=.:/@\\w\\s]{1,128}$": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "timestamp": { + "format": "date-time", + "pattern": "(\\d\\d\\d\\d)-[0-1](\\d)-[0-3](\\d)[Tt](?:[0-2](\\d):[0-5](\\d):[0-5](\\d)|23:59:60)(?:\\.(\\d)+)?(?:[Zz]|[+-](\\d\\d)(?::?(\\d\\d))?)$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "securityhub:CreateAutomationRule", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:BatchDeleteAutomationRules", + "securityhub:BatchGetAutomationRules" + ] + }, + "list": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:ListAutomationRules", + "securityhub:BatchGetAutomationRules", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:BatchUpdateAutomationRules", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AutomationRulesAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "CreatedAt": { + "$ref": "#/definitions/ISO8601DateString" + }, + "CreatedBy": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Criteria": { + "$ref": "#/definitions/AutomationRulesFindingFilters" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "IsTerminal": { + "type": "boolean" + }, + "RuleArn": { + "pattern": "arn:aws\\S*:securityhub:\\S*", + "type": "string" + }, + "RuleName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "RuleOrder": { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "RuleStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "UpdatedAt": { + "$ref": "#/definitions/ISO8601DateString" + } + }, + "readOnlyProperties": [ + "/properties/RuleArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/CreatedBy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::AutomationRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py index 08d130e947..96072b920a 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py @@ -1112,6 +1112,7 @@ "AWS::SSMContacts::Rotation", "AWS::SSMIncidents::ReplicationSet", "AWS::SSMIncidents::ResponsePlan", + "AWS::SSMQuickSetup::ConfigurationManager", "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", @@ -1326,12 +1327,12 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "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", @@ -1415,21 +1416,16 @@ "aws-backup-restoretestingplan.json", "aws-backup-restoretestingselection.json", "aws-backupgateway-hypervisor.json", - "aws-batch-computeenvironment.json", "aws-batch-jobdefinition.json", "aws-batch-jobqueue.json", "aws-batch-schedulingpolicy.json", "aws-bedrock-agent.json", "aws-bedrock-agentalias.json", "aws-bedrock-datasource.json", - "aws-bedrock-flow.json", - "aws-bedrock-flowalias.json", - "aws-bedrock-flowversion.json", "aws-bedrock-guardrail.json", "aws-bedrock-guardrailversion.json", "aws-bedrock-knowledgebase.json", "aws-bedrock-prompt.json", - "aws-bedrock-promptversion.json", "aws-budgets-budget.json", "aws-budgets-budgetsaction.json", "aws-cassandra-keyspace.json", @@ -1494,6 +1490,7 @@ "aws-codeartifact-domain.json", "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", + "aws-codebuild-fleet.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", "aws-codebuild-sourcecredential.json", @@ -1772,6 +1769,7 @@ "aws-elasticloadbalancingv2-listener.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-elasticloadbalancingv2-listenerrule.json", + "aws-elasticloadbalancingv2-loadbalancer.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-elasticloadbalancingv2-truststore.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1957,9 +1955,6 @@ "aws-iotanalytics-datastore.json", "aws-iotanalytics-pipeline.json", "aws-iotcoredeviceadvisor-suitedefinition.json", - "aws-iotevents-alarmmodel.json", - "aws-iotevents-detectormodel.json", - "aws-iotevents-input.json", "aws-iotfleethub-application.json", "aws-iotsitewise-accesspolicy.json", "aws-iotsitewise-asset.json", @@ -2049,6 +2044,7 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", "aws-location-apikey.json", + "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", "aws-location-routecalculator.json", @@ -2097,10 +2093,7 @@ "aws-mediapackage-originendpoint.json", "aws-mediapackage-packagingconfiguration.json", "aws-mediapackage-packaginggroup.json", - "aws-mediapackagev2-channel.json", - "aws-mediapackagev2-channelgroup.json", "aws-mediapackagev2-channelpolicy.json", - "aws-mediapackagev2-originendpoint.json", "aws-mediapackagev2-originendpointpolicy.json", "aws-mediastore-container.json", "aws-mediatailor-channel.json", @@ -2116,6 +2109,7 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", + "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -2153,7 +2147,9 @@ "aws-oam-link.json", "aws-oam-sink.json", "aws-omics-annotationstore.json", + "aws-omics-referencestore.json", "aws-omics-rungroup.json", + "aws-omics-sequencestore.json", "aws-omics-variantstore.json", "aws-omics-workflow.json", "aws-opensearchserverless-accesspolicy.json", @@ -2339,7 +2335,6 @@ "aws-sagemaker-dataqualityjobdefinition.json", "aws-sagemaker-device.json", "aws-sagemaker-devicefleet.json", - "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -2362,7 +2357,6 @@ "aws-sagemaker-project.json", "aws-sagemaker-space.json", "aws-sagemaker-studiolifecycleconfig.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2456,6 +2450,7 @@ "aws-ssmcontacts-rotation.json", "aws-ssmincidents-replicationset.json", "aws-ssmincidents-responseplan.json", + "aws-ssmquicksetup-configurationmanager.json", "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", @@ -2469,6 +2464,7 @@ "aws-supportapp-accountalias.json", "aws-supportapp-slackchannelconfiguration.json", "aws-supportapp-slackworkspaceconfiguration.json", + "aws-synthetics-canary.json", "aws-synthetics-group.json", "aws-systemsmanagersap-application.json", "aws-timestream-database.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..d8c2deb9da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-integration.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameterList": { + "items": { + "$ref": "#/definitions/ResponseParameter" + }, + "type": "array" + }, + "ResponseParameterMap": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + }, + "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" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ResponseParameterMap" + } + }, + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationId" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-vpclink.json deleted file mode 100644 index 73f797afd9..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-apigatewayv2-vpclink.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SecurityGroupIds", - "/properties/SubnetIds" - ], - "handlers": { - "create": { - "permissions": [ - "apigateway:POST", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "list": { - "permissions": [ - "apigateway:GET", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "read": { - "permissions": [ - "apigateway:GET", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - } - }, - "primaryIdentifier": [ - "/properties/VpcLinkId" - ], - "properties": { - "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" - }, - "VpcLinkId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/VpcLinkId" - ], - "required": [ - "SubnetIds", - "Name" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ApiGatewayV2::VpcLink" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-batch-computeenvironment.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-batch-computeenvironment.json new file mode 100644 index 0000000000..16a69c623c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-batch-computeenvironment.json @@ -0,0 +1,300 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ComputeEnvironmentName" + ] + ], + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ComputeResources/AllocationStrategy", + "/properties/ComputeResources/BidPercentage", + "/properties/ComputeResources/Ec2Configuration", + "/properties/ComputeResources/Ec2KeyPair", + "/properties/ComputeResources/ImageId", + "/properties/ComputeResources/InstanceRole", + "/properties/ComputeResources/InstanceTypes", + "/properties/ComputeResources/LaunchTemplate", + "/properties/ComputeResources/PlacementGroup", + "/properties/ComputeResources/SecurityGroupIds", + "/properties/ComputeResources/Subnets", + "/properties/ComputeResources/Tags", + "/properties/ComputeResources/Type" + ], + "createOnlyProperties": [ + "/properties/ComputeResources/SpotIamFleetRole", + "/properties/ComputeEnvironmentName", + "/properties/Tags", + "/properties/Type", + "/properties/EksConfiguration" + ], + "definitions": { + "ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "integer" + }, + "DesiredvCpus": { + "type": "integer" + }, + "Ec2Configuration": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ec2ConfigurationObject" + }, + "type": "array", + "uniqueItems": false + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "format": "AWS::EC2::Image.Id", + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "integer" + }, + "MinvCpus": { + "type": "integer" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UpdateToLatestImageVersion": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "Subnets", + "Type", + "MaxvCpus" + ], + "type": "object" + }, + "Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageKubernetesVersion": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "EksConfiguration": { + "additionalProperties": false, + "properties": { + "EksClusterArn": { + "default": false, + "type": "string" + }, + "KubernetesNamespace": { + "default": false, + "type": "string" + } + }, + "required": [ + "EksClusterArn", + "KubernetesNamespace" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "UpdatePolicy": { + "additionalProperties": false, + "properties": { + "JobExecutionTimeoutMinutes": { + "default": 30, + "type": "integer" + }, + "TerminateJobsOnUpdate": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "Batch:CreateComputeEnvironment", + "Batch:TagResource", + "Batch:DescribeComputeEnvironments", + "iam:CreateServiceLinkedRole", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + }, + "delete": { + "permissions": [ + "Batch:DeleteComputeEnvironment", + "Batch:DescribeComputeEnvironments", + "Batch:UpdateComputeEnvironment", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeComputeEnvironments" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeComputeEnvironments" + ] + }, + "update": { + "permissions": [ + "Batch:UpdateComputeEnvironment", + "Batch:DescribeComputeEnvironments", + "Batch:TagResource", + "Batch:UnTagResource", + "Iam:PassRole", + "Eks:DescribeCluster" + ] + } + }, + "primaryIdentifier": [ + "/properties/ComputeEnvironmentArn" + ], + "properties": { + "ComputeEnvironmentArn": { + "type": "string" + }, + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/ComputeResources" + }, + "Context": { + "type": "string" + }, + "EksConfiguration": { + "$ref": "#/definitions/EksConfiguration" + }, + "ReplaceComputeEnvironment": { + "default": true, + "type": "boolean" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UnmanagedvCpus": { + "type": "integer" + }, + "UpdatePolicy": { + "$ref": "#/definitions/UpdatePolicy" + } + }, + "readOnlyProperties": [ + "/properties/ComputeEnvironmentArn" + ], + "required": [ + "Type" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Batch::ComputeEnvironment", + "writeOnlyProperties": [ + "/properties/ComputeResources/UpdateToLatestImageVersion", + "/properties/ReplaceComputeEnvironment", + "/properties/UpdatePolicy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flow.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flow.json new file mode 100644 index 0000000000..f4f72cb39c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flow.json @@ -0,0 +1,1022 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "DefinitionSubstitutions": { + "additionalProperties": false, + "maxProperties": 500, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Storage", + "Retrieval", + "Iterator", + "Collector" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "FlowValidation": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + } + }, + "required": [ + "Message" + ], + "type": "object" + }, + "FlowValidations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FlowValidation" + }, + "type": "array" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionString": { + "maxLength": 512000, + "type": "string" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Validations": { + "$ref": "#/definitions/FlowValidations" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Validations" + ], + "required": [ + "ExecutionRoleArn", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Flow", + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowalias.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowalias.json new file mode 100644 index 0000000000..e439cc9349 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowalias.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "additionalProperties": false, + "properties": { + "FlowVersion": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowAliases" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "FlowArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Id": { + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "RoutingConfiguration": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::FlowAlias" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowversion.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowversion.json new file mode 100644 index 0000000000..7f2a3fcdc1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-flowversion.json @@ -0,0 +1,896 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "definitions": { + "AgentFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "AgentAliasArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "type": "string" + } + }, + "required": [ + "AgentAliasArn" + ], + "type": "object" + }, + "CollectorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Agent": { + "$ref": "#/definitions/AgentFlowNodeConfiguration" + } + }, + "required": [ + "Agent" + ], + "title": "Agent", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Storage": { + "$ref": "#/definitions/StorageFlowNodeConfiguration" + } + }, + "required": [ + "Storage" + ], + "title": "Storage", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Retrieval": { + "$ref": "#/definitions/RetrievalFlowNodeConfiguration" + } + }, + "required": [ + "Retrieval" + ], + "title": "Retrieval", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Iterator": { + "$ref": "#/definitions/IteratorFlowNodeConfiguration" + } + }, + "required": [ + "Iterator" + ], + "title": "Iterator", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Collector": { + "$ref": "#/definitions/CollectorFlowNodeConfiguration" + } + }, + "required": [ + "Collector" + ], + "title": "Collector", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction", + "Agent", + "Iterator", + "Collector", + "Storage", + "Retrieval" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "IteratorFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "RetrievalFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/RetrievalFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "RetrievalFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "RetrievalFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/RetrievalFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "StorageFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceConfiguration": { + "$ref": "#/definitions/StorageFlowNodeServiceConfiguration" + } + }, + "required": [ + "ServiceConfiguration" + ], + "type": "object" + }, + "StorageFlowNodeS3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "StorageFlowNodeServiceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/StorageFlowNodeS3Configuration" + } + }, + "title": "S3", + "type": "object" + } + ] + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowVersions" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "FlowArn": { + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "pattern": "^[0-9]{1,5}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "FlowArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::FlowVersion" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-promptversion.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-promptversion.json new file mode 100644 index 0000000000..7460656b1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-promptversion.json @@ -0,0 +1,296 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + }, + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "PromptArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "PromptId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants", + "/properties/CustomerEncryptionKeyArn" + ], + "required": [ + "PromptArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::Bedrock::PromptVersion" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-codebuild-fleet.json deleted file mode 100644 index 4c870f71c0..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-codebuild-fleet.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[a-zA-Z+-=._:/]+$", - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:CreateFleet", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:DeleteFleet" - ] - }, - "list": { - "permissions": [ - "codebuild:ListFleets" - ] - }, - "read": { - "permissions": [ - "codebuild:BatchGetFleets" - ] - }, - "update": { - "permissions": [ - "codebuild:BatchGetFleets", - "codebuild:UpdateFleet", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "minLength": 1, - "type": "string" - }, - "BaseCapacity": { - "minimum": 1, - "type": "integer" - }, - "ComputeType": { - "enum": [ - "BUILD_GENERAL1_SMALL", - "BUILD_GENERAL1_MEDIUM", - "BUILD_GENERAL1_LARGE", - "BUILD_GENERAL1_2XLARGE" - ], - "type": "string" - }, - "EnvironmentType": { - "enum": [ - "WINDOWS_SERVER_2019_CONTAINER", - "WINDOWS_SERVER_2022_CONTAINER", - "LINUX_CONTAINER", - "LINUX_GPU_CONTAINER", - "ARM_CONTAINER", - "MAC_ARM" - ], - "type": "string" - }, - "FleetServiceRole": { - "pattern": "^(?:arn:)[a-zA-Z+-=,._:/@]+$", - "type": "string" - }, - "FleetVpcConfig": { - "$ref": "#/definitions/VpcConfig" - }, - "ImageId": { - "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", - "type": "string" - }, - "Name": { - "maxLength": 128, - "minLength": 2, - "type": "string" - }, - "OverflowBehavior": { - "enum": [ - "QUEUE", - "ON_DEMAND" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CodeBuild::Fleet" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-alarmmodel.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-alarmmodel.json new file mode 100644 index 0000000000..a4f062d2dd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-alarmmodel.json @@ -0,0 +1,508 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AlarmModelName", + "/properties/Key" + ], + "definitions": { + "AcknowledgeFlow": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": "true", + "type": "boolean" + } + }, + "type": "object" + }, + "AlarmAction": { + "additionalProperties": false, + "properties": { + "DynamoDB": { + "$ref": "#/definitions/DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/Lambda" + }, + "Sns": { + "$ref": "#/definitions/Sns" + }, + "Sqs": { + "$ref": "#/definitions/Sqs" + } + }, + "type": "object" + }, + "AlarmActions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AlarmAction" + }, + "type": "array", + "uniqueItems": false + }, + "AlarmCapabilities": { + "additionalProperties": false, + "properties": { + "AcknowledgeFlow": { + "$ref": "#/definitions/AcknowledgeFlow" + }, + "InitializationConfiguration": { + "$ref": "#/definitions/InitializationConfiguration" + } + }, + "type": "object" + }, + "AlarmEventActions": { + "additionalProperties": false, + "properties": { + "AlarmActions": { + "$ref": "#/definitions/AlarmActions" + } + }, + "type": "object" + }, + "AlarmRule": { + "additionalProperties": false, + "properties": { + "SimpleRule": { + "$ref": "#/definitions/SimpleRule" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "Separator": { + "pattern": "([\\n\\t])|(\\r\\n)|(,)", + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "InitializationConfiguration": { + "additionalProperties": false, + "properties": { + "DisabledOnInitialization": { + "default": "true", + "type": "boolean" + } + }, + "required": [ + "DisabledOnInitialization" + ], + "type": "object" + }, + "IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AssetPropertyValue" + } + }, + "type": "object" + }, + "IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "minLength": 1, + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "SimpleRule": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "enum": [ + "GREATER", + "GREATER_OR_EQUAL", + "LESS", + "LESS_OR_EQUAL", + "EQUAL", + "NOT_EQUAL" + ], + "type": "string" + }, + "InputProperty": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Threshold": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "InputProperty", + "ComparisonOperator", + "Threshold" + ], + "type": "object" + }, + "Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TargetArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "QueueUrl": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iotevents:CreateAlarmModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeAlarmModel", + "iotevents:ListTagsForResource", + "iotevents:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "iotevents:DeleteAlarmModel", + "iotevents:DescribeAlarmModel" + ] + }, + "list": { + "permissions": [ + "iotevents:ListAlarmModels" + ] + }, + "read": { + "permissions": [ + "iotevents:DescribeAlarmModel", + "iotevents:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotevents:UpdateAlarmModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeAlarmModel", + "iotevents:ListTagsForResource", + "iotevents:UntagResource", + "iotevents:TagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/AlarmModelName" + ], + "properties": { + "AlarmCapabilities": { + "$ref": "#/definitions/AlarmCapabilities" + }, + "AlarmEventActions": { + "$ref": "#/definitions/AlarmEventActions" + }, + "AlarmModelDescription": { + "maxLength": 1024, + "type": "string" + }, + "AlarmModelName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "AlarmRule": { + "$ref": "#/definitions/AlarmRule" + }, + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w\\- ]+`)|([\\w\\-]+)))*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Severity": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "RoleArn", + "AlarmRule" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "iotevents:UntagResource", + "iotevents:TagResource", + "iotevents:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoTEvents::AlarmModel" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-detectormodel.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-detectormodel.json new file mode 100644 index 0000000000..518c9ec5ca --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-detectormodel.json @@ -0,0 +1,654 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DetectorModelName", + "/properties/Key" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "ClearTimer": { + "$ref": "#/definitions/ClearTimer" + }, + "DynamoDB": { + "$ref": "#/definitions/DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/Lambda" + }, + "ResetTimer": { + "$ref": "#/definitions/ResetTimer" + }, + "SetTimer": { + "$ref": "#/definitions/SetTimer" + }, + "SetVariable": { + "$ref": "#/definitions/SetVariable" + }, + "Sns": { + "$ref": "#/definitions/Sns" + }, + "Sqs": { + "$ref": "#/definitions/Sqs" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "ClearTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "DetectorModelDefinition": { + "additionalProperties": false, + "properties": { + "InitialStateName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "States": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/State" + }, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "States", + "InitialStateName" + ], + "type": "object" + }, + "DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "Event": { + "additionalProperties": false, + "properties": { + "Actions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": false + }, + "Condition": { + "maxLength": 512, + "type": "string" + }, + "EventName": { + "maxLength": 128, + "type": "string" + } + }, + "required": [ + "EventName" + ], + "type": "object" + }, + "Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + }, + "Separator": { + "pattern": "([\\n\\t])|(\\r\\n)|(,)", + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AssetPropertyValue" + } + }, + "required": [ + "PropertyValue" + ], + "type": "object" + }, + "IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "OnEnter": { + "additionalProperties": false, + "properties": { + "Events": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Event" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OnExit": { + "additionalProperties": false, + "properties": { + "Events": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Event" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OnInput": { + "additionalProperties": false, + "properties": { + "Events": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Event" + }, + "type": "array", + "uniqueItems": false + }, + "TransitionEvents": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TransitionEvent" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "minLength": 1, + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "ResetTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "SetTimer": { + "additionalProperties": false, + "properties": { + "DurationExpression": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Seconds": { + "maximum": 31622400, + "minimum": 60, + "type": "integer" + }, + "TimerName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "SetVariable": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "VariableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + } + }, + "required": [ + "Value", + "VariableName" + ], + "type": "object" + }, + "Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "TargetArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/Payload" + }, + "QueueUrl": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "State": { + "additionalProperties": false, + "properties": { + "OnEnter": { + "$ref": "#/definitions/OnEnter" + }, + "OnExit": { + "$ref": "#/definitions/OnExit" + }, + "OnInput": { + "$ref": "#/definitions/OnInput" + }, + "StateName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "StateName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TransitionEvent": { + "additionalProperties": false, + "properties": { + "Actions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": false + }, + "Condition": { + "maxLength": 512, + "type": "string" + }, + "EventName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NextState": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Condition", + "EventName", + "NextState" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iotevents:CreateDetectorModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeDetectorModel", + "iotevents:ListTagsForResource", + "iotevents:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "iotevents:DeleteDetectorModel", + "iotevents:DescribeDetectorModel" + ] + }, + "list": { + "permissions": [ + "iotevents:ListDetectorModels" + ] + }, + "read": { + "permissions": [ + "iotevents:DescribeDetectorModel", + "iotevents:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotevents:UpdateDetectorModel", + "iotevents:UpdateInputRouting", + "iotevents:DescribeDetectorModel", + "iotevents:ListTagsForResource", + "iotevents:UntagResource", + "iotevents:TagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DetectorModelName" + ], + "properties": { + "DetectorModelDefinition": { + "$ref": "#/definitions/DetectorModelDefinition" + }, + "DetectorModelDescription": { + "maxLength": 1024, + "type": "string" + }, + "DetectorModelName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "EvaluationMethod": { + "enum": [ + "BATCH", + "SERIAL" + ], + "type": "string" + }, + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w\\- ]+`)|([\\w\\-]+)))*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "DetectorModelDefinition", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "iotevents:UntagResource", + "iotevents:TagResource", + "iotevents:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoTEvents::DetectorModel" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-input.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-input.json new file mode 100644 index 0000000000..7213226724 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iotevents-input.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InputName" + ], + "definitions": { + "Attribute": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "maxLength": 128, + "minLength": 1, + "pattern": "^((`[a-zA-Z0-9_\\- ]+`)|([a-zA-Z0-9_\\-]+))(\\.((`[a-zA-Z0-9_\\- ]+`)|([a-zA-Z0-9_\\-]+)))*$", + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "InputDefinition": { + "additionalProperties": false, + "properties": { + "Attributes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Attribute" + }, + "maxItems": 200, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Attributes" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iotevents:CreateInput", + "iotevents:TagResource", + "iotevents:DescribeInput", + "iotevents:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iotevents:DeleteInput", + "iotevents:DescribeInput" + ] + }, + "list": { + "permissions": [ + "iotevents:ListInputs" + ] + }, + "read": { + "permissions": [ + "iotevents:DescribeInput", + "iotevents:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotevents:UpdateInput", + "iotevents:DescribeInput", + "iotevents:ListTagsForResource", + "iotevents:UntagResource", + "iotevents:TagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/InputName" + ], + "properties": { + "InputDefinition": { + "$ref": "#/definitions/InputDefinition" + }, + "InputDescription": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "InputName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "InputDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotevents.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "iotevents:UntagResource", + "iotevents:TagResource", + "iotevents:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoTEvents::Input" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-location-geofencecollection.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-location-geofencecollection.json deleted file mode 100644 index 98904d38a1..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-location-geofencecollection.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollectionName", - "/properties/KmsKeyId" - ], - "definitions": { - "PricingPlan": { - "enum": [ - "RequestBasedUsage" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", - "type": "string" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "deprecatedProperties": [ - "/properties/PricingPlan", - "/properties/PricingPlanDataSource" - ], - "handlers": { - "create": { - "permissions": [ - "geo:CreateGeofenceCollection", - "geo:DescribeGeofenceCollection", - "geo:TagResource", - "geo:UntagResource", - "kms:DescribeKey", - "kms:CreateGrant" - ] - }, - "delete": { - "permissions": [ - "geo:DeleteGeofenceCollection", - "geo:DescribeGeofenceCollection" - ] - }, - "list": { - "permissions": [ - "geo:ListGeofenceCollections" - ] - }, - "read": { - "permissions": [ - "geo:DescribeGeofenceCollection", - "kms:DescribeKey" - ] - }, - "update": { - "permissions": [ - "geo:CreateGeofenceCollection", - "geo:DescribeGeofenceCollection", - "geo:TagResource", - "geo:UntagResource", - "kms:DescribeKey", - "kms:CreateGrant", - "geo:UpdateGeofenceCollection" - ] - } - }, - "primaryIdentifier": [ - "/properties/CollectionName" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CollectionArn": { - "maxLength": 1600, - "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", - "type": "string" - }, - "CollectionName": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[-._\\w]+$", - "type": "string" - }, - "CreateTime": { - "$ref": "#/definitions/iso8601UTC" - }, - "Description": { - "maxLength": 1000, - "minLength": 0, - "type": "string" - }, - "KmsKeyId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "PricingPlan": { - "$ref": "#/definitions/PricingPlan" - }, - "PricingPlanDataSource": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "UpdateTime": { - "$ref": "#/definitions/iso8601UTC" - } - }, - "readOnlyProperties": [ - "/properties/CollectionArn", - "/properties/Arn", - "/properties/CreateTime", - "/properties/UpdateTime" - ], - "required": [ - "CollectionName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Location::GeofenceCollection" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channel.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channel.json new file mode 100644 index 0000000000..70e46bd14f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channel.json @@ -0,0 +1,169 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/InputType" + ], + "definitions": { + "IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "InputType": { + "enum": [ + "HLS", + "CMAF" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateChannel" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetChannel", + "mediapackagev2:DeleteChannel" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelGroupName": { + "$ref": "resource-schema.json#/properties/ChannelGroupName" + } + }, + "required": [ + "ChannelGroupName" + ] + }, + "permissions": [ + "mediapackagev2:ListChannels" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetChannel" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateChannel" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ChannelName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "IngestEndpointUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IngestEndpoints": { + "items": { + "$ref": "#/definitions/IngestEndpoint" + }, + "type": "array" + }, + "InputType": { + "$ref": "#/definitions/InputType" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/IngestEndpoints", + "/properties/IngestEndpointUrls", + "/properties/ModifiedAt" + ], + "required": [ + "ChannelGroupName", + "ChannelName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channelgroup.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channelgroup.json new file mode 100644 index 0000000000..840ae997a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-channelgroup.json @@ -0,0 +1,117 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateChannelGroup" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetChannelGroup", + "mediapackagev2:DeleteChannelGroup" + ] + }, + "list": { + "permissions": [ + "mediapackagev2:ListChannelGroups" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetChannelGroup" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateChannelGroup" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "EgressDomain": { + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/EgressDomain", + "/properties/ModifiedAt" + ], + "required": [ + "ChannelGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::ChannelGroup" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-originendpoint.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-originendpoint.json new file mode 100644 index 0000000000..ccb9268366 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediapackagev2-originendpoint.json @@ -0,0 +1,658 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/OriginEndpointName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName", + "/properties/OriginEndpointName" + ], + "definitions": { + "AdMarkerDash": { + "enum": [ + "BINARY", + "XML" + ], + "type": "string" + }, + "AdMarkerHls": { + "enum": [ + "DATERANGE" + ], + "type": "string" + }, + "CmafEncryptionMethod": { + "enum": [ + "CENC", + "CBCS" + ], + "type": "string" + }, + "ContainerType": { + "enum": [ + "TS", + "CMAF" + ], + "type": "string" + }, + "DashDrmSignaling": { + "enum": [ + "INDIVIDUAL", + "REFERENCED" + ], + "type": "string" + }, + "DashManifestConfiguration": { + "additionalProperties": false, + "properties": { + "DrmSignaling": { + "$ref": "#/definitions/DashDrmSignaling" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "MinBufferTimeSeconds": { + "type": "integer" + }, + "MinUpdatePeriodSeconds": { + "type": "integer" + }, + "PeriodTriggers": { + "items": { + "$ref": "#/definitions/DashPeriodTrigger" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ScteDash": { + "$ref": "#/definitions/ScteDash" + }, + "SegmentTemplateFormat": { + "$ref": "#/definitions/DashSegmentTemplateFormat" + }, + "SuggestedPresentationDelaySeconds": { + "type": "integer" + }, + "UtcTiming": { + "$ref": "#/definitions/DashUtcTiming" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "DashPeriodTrigger": { + "enum": [ + "AVAILS", + "DRM_KEY_ROTATION", + "SOURCE_CHANGES", + "SOURCE_DISRUPTIONS", + "NONE" + ], + "type": "string" + }, + "DashSegmentTemplateFormat": { + "enum": [ + "NUMBER_WITH_TIMELINE" + ], + "type": "string" + }, + "DashUtcTiming": { + "additionalProperties": false, + "properties": { + "TimingMode": { + "$ref": "#/definitions/DashUtcTimingMode" + }, + "TimingSource": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "DashUtcTimingMode": { + "enum": [ + "HTTP_HEAD", + "HTTP_ISO", + "HTTP_XSDATE", + "UTC_DIRECT" + ], + "type": "string" + }, + "DrmSystem": { + "enum": [ + "CLEAR_KEY_AES_128", + "FAIRPLAY", + "PLAYREADY", + "WIDEVINE", + "IRDETO" + ], + "type": "string" + }, + "Encryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "maxLength": 32, + "minLength": 32, + "pattern": "^[0-9a-fA-F]+$", + "type": "string" + }, + "EncryptionMethod": { + "$ref": "#/definitions/EncryptionMethod" + }, + "KeyRotationIntervalSeconds": { + "maximum": 31536000, + "minimum": 300, + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "EncryptionMethod", + "SpekeKeyProvider" + ], + "type": "object" + }, + "EncryptionContractConfiguration": { + "additionalProperties": false, + "properties": { + "PresetSpeke20Audio": { + "$ref": "#/definitions/PresetSpeke20Audio" + }, + "PresetSpeke20Video": { + "$ref": "#/definitions/PresetSpeke20Video" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "EncryptionMethod": { + "additionalProperties": false, + "properties": { + "CmafEncryptionMethod": { + "$ref": "#/definitions/CmafEncryptionMethod" + }, + "TsEncryptionMethod": { + "$ref": "#/definitions/TsEncryptionMethod" + } + }, + "type": "object" + }, + "EndpointErrorCondition": { + "enum": [ + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT" + ], + "type": "string" + }, + "FilterConfiguration": { + "additionalProperties": false, + "properties": { + "End": { + "format": "date-time", + "type": "string" + }, + "ManifestFilter": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Start": { + "format": "date-time", + "type": "string" + }, + "TimeDelaySeconds": { + "maximum": 1209600, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "ForceEndpointErrorConfiguration": { + "additionalProperties": false, + "properties": { + "EndpointErrorConditions": { + "items": { + "$ref": "#/definitions/EndpointErrorCondition" + }, + "type": "array" + } + }, + "type": "object" + }, + "HlsManifestConfiguration": { + "additionalProperties": false, + "properties": { + "ChildManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "ScteHls": { + "$ref": "#/definitions/ScteHls" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "LowLatencyHlsManifestConfiguration": { + "additionalProperties": false, + "properties": { + "ChildManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "integer" + }, + "ScteHls": { + "$ref": "#/definitions/ScteHls" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ManifestName" + ], + "type": "object" + }, + "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" + }, + "Scte": { + "additionalProperties": false, + "properties": { + "ScteFilter": { + "items": { + "$ref": "#/definitions/ScteFilter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScteDash": { + "additionalProperties": false, + "properties": { + "AdMarkerDash": { + "$ref": "#/definitions/AdMarkerDash" + } + }, + "type": "object" + }, + "ScteFilter": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY", + "PROGRAM" + ], + "type": "string" + }, + "ScteHls": { + "additionalProperties": false, + "properties": { + "AdMarkerHls": { + "$ref": "#/definitions/AdMarkerHls" + } + }, + "type": "object" + }, + "Segment": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/Encryption" + }, + "IncludeIframeOnlyStreams": { + "type": "boolean" + }, + "Scte": { + "$ref": "#/definitions/Scte" + }, + "SegmentDurationSeconds": { + "maximum": 30, + "minimum": 1, + "type": "integer" + }, + "SegmentName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "TsIncludeDvbSubtitles": { + "type": "boolean" + }, + "TsUseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "DrmSystems": { + "items": { + "$ref": "#/definitions/DrmSystem" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/EncryptionContractConfiguration" + }, + "ResourceId": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[0-9a-zA-Z_-]+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DrmSystems", + "EncryptionContractConfiguration", + "ResourceId", + "RoleArn", + "Url" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TsEncryptionMethod": { + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:CreateOriginEndpoint", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "mediapackagev2:GetOriginEndpoint", + "mediapackagev2:DeleteOriginEndpoint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelGroupName": { + "$ref": "resource-schema.json#/properties/ChannelGroupName" + }, + "ChannelName": { + "$ref": "resource-schema.json#/properties/ChannelName" + } + }, + "required": [ + "ChannelGroupName", + "ChannelName" + ] + }, + "permissions": [ + "mediapackagev2:ListOriginEndpoints" + ] + }, + "read": { + "permissions": [ + "mediapackagev2:GetOriginEndpoint" + ] + }, + "update": { + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource", + "mediapackagev2:UpdateOriginEndpoint", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ChannelGroupName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ChannelName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "ContainerType": { + "$ref": "#/definitions/ContainerType" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "DashManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DashManifests": { + "items": { + "$ref": "#/definitions/DashManifestConfiguration" + }, + "type": "array" + }, + "Description": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ForceEndpointErrorConfiguration": { + "$ref": "#/definitions/ForceEndpointErrorConfiguration" + }, + "HlsManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/HlsManifestConfiguration" + }, + "type": "array" + }, + "LowLatencyHlsManifestUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LowLatencyHlsManifests": { + "items": { + "$ref": "#/definitions/LowLatencyHlsManifestConfiguration" + }, + "type": "array" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "OriginEndpointName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Segment": { + "$ref": "#/definitions/Segment" + }, + "StartoverWindowSeconds": { + "maximum": 1209600, + "minimum": 60, + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/DashManifestUrls", + "/properties/HlsManifestUrls", + "/properties/LowLatencyHlsManifestUrls", + "/properties/ModifiedAt", + "/properties/LowLatencyHlsManifests/*/Url", + "/properties/HlsManifests/*/Url" + ], + "required": [ + "ChannelGroupName", + "ChannelName", + "OriginEndpointName", + "ContainerType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "mediapackagev2:TagResource", + "mediapackagev2:UntagResource", + "mediapackagev2:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::OriginEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-msk-replicator.json deleted file mode 100644 index 19aeafdd58..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-msk-replicator.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicatorName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ReplicatorName", - "/properties/Description", - "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn" - ], - "definitions": { - "AmazonMskCluster": { - "additionalProperties": false, - "properties": { - "MskClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - } - }, - "required": [ - "MskClusterArn" - ], - "type": "object" - }, - "ConsumerGroupReplication": { - "additionalProperties": false, - "properties": { - "ConsumerGroupsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ConsumerGroupsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "type": "string" - }, - "maxItems": 100, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "DetectAndCopyNewConsumerGroups": { - "type": "boolean" - }, - "SynchroniseConsumerGroupOffsets": { - "type": "boolean" - } - }, - "required": [ - "ConsumerGroupsToReplicate" - ], - "type": "object" - }, - "KafkaCluster": { - "additionalProperties": false, - "properties": { - "AmazonMskCluster": { - "$ref": "#/definitions/AmazonMskCluster" - }, - "VpcConfig": { - "$ref": "#/definitions/KafkaClusterClientVpcConfig" - } - }, - "required": [ - "AmazonMskCluster", - "VpcConfig" - ], - "type": "object" - }, - "KafkaClusterClientVpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 3, - "minItems": 2, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "ReplicationInfo": { - "additionalProperties": false, - "properties": { - "ConsumerGroupReplication": { - "$ref": "#/definitions/ConsumerGroupReplication" - }, - "SourceKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TargetCompressionType": { - "enum": [ - "NONE", - "GZIP", - "SNAPPY", - "LZ4", - "ZSTD" - ], - "type": "string" - }, - "TargetKafkaClusterArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "TopicReplication": { - "$ref": "#/definitions/TopicReplication" - } - }, - "required": [ - "SourceKafkaClusterArn", - "TargetKafkaClusterArn", - "TopicReplication", - "ConsumerGroupReplication", - "TargetCompressionType" - ], - "type": "object" - }, - "ReplicationStartingPosition": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationStartingPositionType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationStartingPositionType": { - "enum": [ - "LATEST", - "EARLIEST" - ], - "type": "string" - }, - "ReplicationTopicNameConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "$ref": "#/definitions/ReplicationTopicNameConfigurationType" - } - }, - "required": [], - "type": "object" - }, - "ReplicationTopicNameConfigurationType": { - "enum": [ - "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS", - "IDENTICAL" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TopicReplication": { - "additionalProperties": false, - "properties": { - "CopyAccessControlListsForTopics": { - "type": "boolean" - }, - "CopyTopicConfigurations": { - "type": "boolean" - }, - "DetectAndCopyNewTopics": { - "type": "boolean" - }, - "StartingPosition": { - "$ref": "#/definitions/ReplicationStartingPosition" - }, - "TopicNameConfiguration": { - "$ref": "#/definitions/ReplicationTopicNameConfiguration" - }, - "TopicsToExclude": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TopicsToReplicate": { - "insertionOrder": false, - "items": { - "maxLength": 249, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "TopicsToReplicate" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kafka:CreateReplicator", - "kafka:CreateReplicatorReference", - "kafka:DescribeClusterV2", - "kafka:DescribeReplicator", - "kafka:GetBootstrapBrokers", - "kafka:ListTagsForResource", - "kafka:TagResource" - ] - }, - "delete": { - "permissions": [ - "kafka:DeleteReplicator", - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:UntagResource" - ] - }, - "list": { - "permissions": [ - "kafka:ListReplicators" - ] - }, - "read": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "kafka:DescribeReplicator", - "kafka:ListTagsForResource", - "kafka:TagResource", - "kafka:UntagResource", - "kafka:UpdateReplicationInfo" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicatorArn" - ], - "properties": { - "CurrentVersion": { - "type": "string" - }, - "Description": { - "maxLength": 1024, - "type": "string" - }, - "KafkaClusters": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/KafkaCluster" - }, - "maxItems": 2, - "minItems": 2, - "type": "array", - "uniqueItems": true - }, - "ReplicationInfoList": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicationInfo" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ReplicatorArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", - "type": "string" - }, - "ReplicatorName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", - "type": "string" - }, - "ServiceExecutionRoleArn": { - "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ReplicatorArn" - ], - "required": [ - "ReplicatorName", - "ReplicationInfoList", - "KafkaClusters", - "ServiceExecutionRoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", - "tagging": { - "cloudFormationSystemTags": true, - "permissions": [ - "kafka:UntagResource", - "kafka:ListTagsForResource", - "kafka:TagResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::MSK::Replicator" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-omics-referencestore.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-omics-referencestore.json deleted file mode 100644 index 927b6a1928..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-omics-referencestore.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Description", - "/properties/Name", - "/properties/SseConfig", - "/properties/Tags" - ], - "definitions": { - "EncryptionType": { - "enum": [ - "KMS" - ], - "type": "string" - }, - "SseConfig": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:([^:\n]*):([^:\n]*):([^:\n]*):([0-9]{12}):([^:\n]*)", - "type": "string" - }, - "Type": { - "$ref": "#/definitions/EncryptionType" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "patternProperties": { - ".+": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "omics:CreateReferenceStore", - "omics:TagResource", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "omics:DeleteReferenceStore" - ] - }, - "list": { - "permissions": [ - "omics:ListReferenceStores" - ] - }, - "read": { - "permissions": [ - "omics:GetReferenceStore", - "omics:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReferenceStoreId" - ], - "properties": { - "Arn": { - "maxLength": 127, - "minLength": 1, - "pattern": "^arn:.+$", - "type": "string" - }, - "CreationTime": { - "format": "date-time", - "type": "string" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "Name": { - "maxLength": 127, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "ReferenceStoreId": { - "maxLength": 36, - "minLength": 10, - "pattern": "^[0-9]+$", - "type": "string" - }, - "SseConfig": { - "$ref": "#/definitions/SseConfig" - }, - "Tags": { - "$ref": "#/definitions/TagMap" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CreationTime", - "/properties/ReferenceStoreId" - ], - "required": [ - "Name" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagUpdatable": false, - "taggable": true - }, - "typeName": "AWS::Omics::ReferenceStore", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-omics-sequencestore.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-omics-sequencestore.json deleted file mode 100644 index bff8d1664a..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-omics-sequencestore.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Description", - "/properties/Name", - "/properties/FallbackLocation", - "/properties/SseConfig", - "/properties/Tags" - ], - "definitions": { - "EncryptionType": { - "enum": [ - "KMS" - ], - "type": "string" - }, - "SseConfig": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:([^:\n]*):([^:\n]*):([^:\n]*):([0-9]{12}):([^:\n]*)", - "type": "string" - }, - "Type": { - "$ref": "#/definitions/EncryptionType" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "patternProperties": { - ".+": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "omics:CreateSequenceStore", - "omics:TagResource", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "omics:DeleteSequenceStore" - ] - }, - "list": { - "permissions": [ - "omics:ListSequenceStores" - ] - }, - "read": { - "permissions": [ - "omics:GetSequenceStore", - "omics:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SequenceStoreId" - ], - "properties": { - "Arn": { - "maxLength": 127, - "minLength": 1, - "pattern": "^arn:.+$", - "type": "string" - }, - "CreationTime": { - "format": "date-time", - "type": "string" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "FallbackLocation": { - "minLength": 1, - "pattern": "^s3:\\/\\/([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])\\/?((.{1,1024})\\/)?$", - "type": "string" - }, - "Name": { - "maxLength": 127, - "minLength": 1, - "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", - "type": "string" - }, - "SequenceStoreId": { - "maxLength": 36, - "minLength": 10, - "pattern": "^[0-9]+$", - "type": "string" - }, - "SseConfig": { - "$ref": "#/definitions/SseConfig" - }, - "Tags": { - "$ref": "#/definitions/TagMap" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CreationTime", - "/properties/SequenceStoreId" - ], - "required": [ - "Name" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagUpdatable": false, - "taggable": true - }, - "typeName": "AWS::Omics::SequenceStore", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-domain.json new file mode 100644 index 0000000000..d78bf78d37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-domain.json @@ -0,0 +1,849 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "DockerSettings": { + "additionalProperties": false, + "properties": { + "EnableDockerAccess": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "VpcOnlyTrustedAccounts": { + "insertionOrder": false, + "items": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "properties": { + "DockerSettings": { + "$ref": "#/definitions/DockerSettings" + }, + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:CreateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "efs:CreateFileSystem", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlainText" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DeleteDomain", + "sagemaker:DescribeDomain" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListDomains" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeDomain" + ] + }, + "update": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:UpdateDomain", + "sagemaker:DescribeDomain", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId" + ], + "properties": { + "AppNetworkAccessType": { + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings" + }, + "DomainArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnApplicationArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..df84524c95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-userprofile.json @@ -0,0 +1,615 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "TensorBoard", + "RStudioServerPro", + "JupyterLab", + "CodeEditor", + "DetailedProfiler", + "Canvas" + ], + "type": "string" + }, + "CodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystemConfig": { + "additionalProperties": false, + "properties": { + "EFSFileSystemConfig": { + "$ref": "#/definitions/EFSFileSystemConfig" + } + }, + "type": "object" + }, + "CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "CustomPosixUserConfig": { + "additionalProperties": false, + "properties": { + "Gid": { + "maximum": 4000000, + "minimum": 1001, + "type": "integer" + }, + "Uid": { + "maximum": 4000000, + "minimum": 10000, + "type": "integer" + } + }, + "required": [ + "Uid", + "Gid" + ], + "type": "object" + }, + "DefaultEbsStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, + "EFSFileSystemConfig": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + }, + "FileSystemPath": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\/\\S*$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "JupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "MlTools": { + "enum": [ + "DataWrangler", + "FeatureStore", + "EmrClusters", + "AutoMl", + "Experiments", + "Training", + "ModelEvaluation", + "Pipelines", + "Models", + "JumpStart", + "InferenceRecommender", + "Endpoints", + "Projects" + ], + "type": "string" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "enum": [ + "system", + "ml.t3.micro", + "ml.t3.small", + "ml.t3.medium", + "ml.t3.large", + "ml.t3.xlarge", + "ml.t3.2xlarge", + "ml.m5.large", + "ml.m5.xlarge", + "ml.m5.2xlarge", + "ml.m5.4xlarge", + "ml.m5.8xlarge", + "ml.m5.12xlarge", + "ml.m5.16xlarge", + "ml.m5.24xlarge", + "ml.c5.large", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.12xlarge", + "ml.c5.18xlarge", + "ml.c5.24xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.g4dn.xlarge", + "ml.g4dn.2xlarge", + "ml.g4dn.4xlarge", + "ml.g4dn.8xlarge", + "ml.g4dn.12xlarge", + "ml.g4dn.16xlarge", + "ml.r5.large", + "ml.r5.xlarge", + "ml.r5.2xlarge", + "ml.r5.4xlarge", + "ml.r5.8xlarge", + "ml.r5.12xlarge", + "ml.r5.16xlarge", + "ml.r5.24xlarge", + "ml.p3dn.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.p4de.24xlarge", + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "StudioWebPortalSettings": { + "additionalProperties": false, + "properties": { + "HiddenAppTypes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AppType" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "HiddenMlTools": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MlTools" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserSettings": { + "additionalProperties": false, + "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "maxLength": 1023, + "type": "string" + }, + "ExecutionRole": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StudioWebPortalSettings": { + "$ref": "#/definitions/StudioWebPortalSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteUserProfile", + "sagemaker:DescribeUserProfile" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListUserProfiles" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeUserProfile" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateUserProfile", + "sagemaker:DescribeUserProfile", + "sagemaker:DescribeImage", + "sagemaker:DescribeImageVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserProfileName", + "/properties/DomainId" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/helpers.py b/src/cfnlint/helpers.py index 97d5136378..4ef472929a 100644 --- a/src/cfnlint/helpers.py +++ b/src/cfnlint/helpers.py @@ -56,6 +56,11 @@ "ap-southeast-4b", "ap-southeast-4c", ], + "ap-southeast-5": [ + "ap-southeast-5a", + "ap-southeast-5b", + "ap-southeast-5c", + ], "ca-west-1": [ "ca-west-1a", "ca-west-1b",